Skip to main content

zero_bond_option

Function zero_bond_option 

pub fn zero_bond_option<R: Scalar>(
    params: &HullWhiteParameters<R>,
    curve: &dyn YieldCurve<R>,
    expiry: NaiveDate,
    bond_maturity: NaiveDate,
    strike: f64,
    kind: OptionKind,
) -> Result<R, CurveError>
Expand description

The price of a European option on a zero-coupon bond, in mode R.

omega·[P(0,S)·N(omega·h) − K·P(0,T)·N(omega·(h − sigma_p))], with h = ln(P(0,S) / (K·P(0,T))) / sigma_p + sigma_p/2.

Both discount factors are read live off the curve, so the option’s rate sensitivity flows from the same curve the underlying bond is priced on rather than from a snapshot taken when the model was calibrated; and the parameters are in the mode too, so a volatility or mean-reversion sensitivity flows through sigma_p when they came from the market.

§Errors

Whatever the curve reports for either date.