pub struct Cliquet {Show 15 fields
pub resets: usize,
pub t: f64,
pub r: f64,
pub q: f64,
pub sigma: f64,
pub local_floor: f64,
pub local_cap: Option<f64>,
pub global_floor: Option<f64>,
pub global_cap: Option<f64>,
pub notional: f64,
pub heston: Option<HestonParams>,
pub style: CliquetStyle,
pub pricer: CliquetPricer,
pub paths: usize,
pub seed: u64,
}Expand description
A cliquet/ratchet option on equally-spaced resets.
Fields§
§resets: usize§t: f64Year fraction to maturity.
r: f64§q: f64§sigma: f64§local_floor: f64§local_cap: Option<f64>§global_floor: Option<f64>§global_cap: Option<f64>§notional: f64§heston: Option<HestonParams>§style: CliquetStyle§pricer: CliquetPricer§paths: usize§seed: u64Implementations§
Source§impl Cliquet
impl Cliquet
Sourcepub fn analytic_npv(&self) -> Result<f64, RustyQLibError>
pub fn analytic_npv(&self) -> Result<f64, RustyQLibError>
Black-Scholes closed form: each period’s clamped return is a forward-start call spread on the lognormal period ratio, and the periods are independent, so the sum prices term by term. Errs when a global cap/floor is present (it couples the periods) or Heston dynamics are requested.
Sourcepub fn mc_npv(&self) -> (f64, f64)
pub fn mc_npv(&self) -> (f64, f64)
Monte Carlo price with standard error: per-period lognormal sampling under GBM, full Euler paths under Heston. Deterministic per seed.
Sourcepub fn from_json(data: &CliquetOptionData) -> Box<Cliquet>
pub fn from_json(data: &CliquetOptionData) -> Box<Cliquet>
Price with the configured engine (analytic falls back to Monte
Carlo when global constraints or Heston dynamics require it).
Build from contract data, panicking on any invalid field. Fallible
callers should use Cliquet::try_from_json.
pub fn try_from_json( data: &CliquetOptionData, ) -> Result<Box<Cliquet>, RustyQLibError>
Trait Implementations§
Source§impl Instrument for Cliquet
impl Instrument for Cliquet
Source§fn price(&self) -> Result<PricingResult, RustyQLibError>
fn price(&self) -> Result<PricingResult, RustyQLibError>
Analytic where the payoff permits (falling back to Monte Carlo otherwise, mirroring the documented pricing policy); the standard error is reported whenever a simulation produced the value.
Source§fn try_npv(&self) -> Result<f64, RustyQLibError>
fn try_npv(&self) -> Result<f64, RustyQLibError>
Source§fn npv(&self) -> f64
fn npv(&self) -> f64
Instrument::try_npv.