public EqualProbabilitiesBinomialTree(StochasticProcess1D process, double end, int steps) : base(process, end, steps) { }
protected ShortRateDynamics(StochasticProcess1D process) { process_ = process; }
public LeisenReimer factory(StochasticProcess1D process, double end, int steps, double strike) { return(new LeisenReimer(process, end, steps, strike)); }
public Joshi4 factory(StochasticProcess1D process, double end, int steps, double strike) { return(new Joshi4(process, end, steps, strike)); }
public Trigeorgis factory(StochasticProcess1D process, double end, int steps, double strike) { return(new Trigeorgis(process, end, steps, strike)); }
public Tian factory(StochasticProcess1D process, double end, int steps, double strike) { return(new Tian(process, end, steps, strike)); }
public AdditiveEQPBinomialTree(StochasticProcess1D process, double end, int steps, double strike) : base(process, end, steps) { up_ = -0.5 * driftPerStep_ + 0.5 * Math.Sqrt(4.0 * process.variance(0.0, x0_, dt_) - 3.0 * driftPerStep_ * driftPerStep_); }
public AdditiveEQPBinomialTree factory(StochasticProcess1D process, double end, int steps, double strike) { return(new AdditiveEQPBinomialTree(process, end, steps, strike)); }
public JarrowRudd factory(StochasticProcess1D process, double end, int steps, double strike) { return(new JarrowRudd(process, end, steps, strike)); }
public CoxRossRubinstein factory(StochasticProcess1D process, double end, int steps, double strike) { return(new CoxRossRubinstein(process, end, steps, strike)); }
public JarrowRudd(StochasticProcess1D process, double end, int steps, double strike) : base(process, end, steps) { // drift removed up_ = process.stdDeviation(0.0, x0_, dt_); }
/*! Returns an approximation of the variance defined as * \f$ \sigma(t_0, x_0)^2 \Delta t \f$. */ public double variance(StochasticProcess1D process, double t0, double x0, double dt) { double sigma = process.diffusion(t0, x0); return(sigma * sigma * dt); }
/*! Returns an approximation of the diffusion defined as * \f$ \sigma(t_0, x_0) \sqrt{\Delta t} \f$. */ public double diffusion(StochasticProcess1D process, double t0, double x0, double dt) { return(process.diffusion(t0, x0) * Math.Sqrt(dt)); }
/*! Returns an approximation of the drift defined as * \f$ \mu(t_0, x_0) \Delta t \f$. */ public double drift(StochasticProcess1D process, double t0, double x0, double dt) { return(process.drift(t0, x0) * dt); }
public TrinomialTree(StochasticProcess1D process, TimeGrid timeGrid) : this(process, timeGrid, false) { }