Function binomial_tree::compute_price_american [−][src]
pub fn compute_price_american(
alpha_over_sigma: &Fn(f64, f64, f64, usize) -> f64,
sigma_prime: &Fn(f64, f64, f64, usize) -> f64,
sigma_inverse: &Fn(f64, f64, f64, usize) -> f64,
payoff: &Fn(f64, f64, f64, usize) -> f64,
discount: &Fn(f64, f64, f64, usize) -> f64,
y0: f64,
maturity: f64,
n_time_periods: usize
) -> f64
Returns American option price using tree method
Examples
//Black Scholes tree let r:f64 = 0.05; let sig:f64 = 0.3; let asset:f64 = 50.0; let strike:f64 = 50.0; let alpha_div_sigma = |_t:f64, _underlying:f64, _dt:f64, _width:usize| r/sig; let sigma_pr = |_t:f64, _underlying:f64, _dt:f64, _width:usize| sig; let sigma_inv = |_t:f64, x:f64, _dt:f64, _width:usize| (x*sig).exp(); let py_off = |_t:f64, underlying:f64, _dt:f64, _width:usize| { if strike>underlying {strike-underlying} else {0.0} }; let disc=|_t:f64, _underlying:f64, dt:f64, _width:usize| (-r*dt).exp(); let y0 = asset.ln()/sig; //inverse of signa_inv let maturity = 0.9; let n_time_periods = 50; let price = binomial_tree::compute_price_american( &alpha_div_sigma, &sigma_pr, &sigma_inv, &py_off, &disc, y0, maturity, n_time_periods );