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.