Function cms_option
pub fn cms_option<R: Scalar>(
index: &SwapIndex,
fixing: NaiveDate,
payment: NaiveDate,
mean_reversion: f64,
strike: f64,
kind: OptionKind,
view: &PricingView<'_, R>,
) -> Result<R, PricingError>Expand description
A CMS caplet (Call) or floorlet (Put) on index at strike, fixing
on fixing and paid on payment, as a rate: what (S − K)⁺ (or
(K − S)⁺) observed at the fixing is worth paid on the payment date, per
unit of accrual and of the payment date’s discount factor, under the
linear terminal swap rate model with mean reversion mean_reversion.
Replicated off the swaption smile: the linear TSR payoff α(S)·(S − K)⁺
is α(K) swaptions at the strike plus 2a times the integral of the
swaptions above it, [α(K)·C(K) + 2a·∫ₖ^∞ C]/α₀; the floorlet is
[α(K)·P(K) − 2a·∫^K P]/α₀. The caplet less the floorlet is the CMS rate
less the strike. A fixing today is the option’s intrinsic value.
§Errors
As cms_rate.