Skip to main content

strip_vol

Function strip_vol 

fn strip_vol(
    passive: &MarketView<'_, f64>,
    currency: Currency,
    point: StripPoint,
    u: &Underlying,
    forward: f64,
) -> Result<(f64, bool), CalibrationError>
Expand description

A strip point’s normal vol, and whether the surface supplied it: the flat vol pinned under the point’s label where one is, else the at-the-money vol the currency’s swaption surface reads at the point’s expiry and tenor. A lognormal surface’s read is its at-the-money normal equivalent, the vol whose Bachelier price is the Black one: F·(2N(σ√T/2) − 1) / (√T·φ(0)).

§Errors

CalibrationError::MissingQuote naming the label where neither is held; CalibrationError::SurfaceNotNormal for a lognormal surface over a forward that is not positive, where Black has no price.