pub struct AutocallablePayoff {
pub exercise_style: ContractStyle,
pub autocall_barrier: f64,
pub protection_barrier: f64,
pub coupon: f64,
pub observations: usize,
pub observation_times: Option<Vec<f64>>,
pub notional: f64,
pub initial_fixing: f64,
pub coupon_barrier: Option<f64>,
pub memory: bool,
}Fields§
§exercise_style: ContractStyle§autocall_barrier: f64Early-redemption trigger level (absolute).
protection_barrier: f64Knock-in barrier for the capital protection (absolute).
coupon: f64Coupon (rebate) accrued per observation period, paid at call.
observations: usizeNumber of observations over the life (last = expiry). Equally
spaced unless observation_times is set.
observation_times: Option<Vec<f64>>Explicit observation times as year fractions from valuation,
strictly increasing, last at expiry — e.g. from a
Schedule of business-day
adjusted call dates. None keeps equal spacing.
notional: f64§initial_fixing: f64Contractual initial fixing for the downside participation ratio.
coupon_barrier: Option<f64>Phoenix feature: when set, the coupon is paid at each
observation with S >= coupon_barrier (independently of the
autocall), instead of accruing as a rebate paid only at call.
memory: boolPhoenix memory feature: missed coupons are recovered at the next observation above the coupon barrier.
Implementations§
Trait Implementations§
Source§impl Clone for AutocallablePayoff
impl Clone for AutocallablePayoff
Source§fn clone(&self) -> AutocallablePayoff
fn clone(&self) -> AutocallablePayoff
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AutocallablePayoff
impl Debug for AutocallablePayoff
Source§impl Payoff for AutocallablePayoff
impl Payoff for AutocallablePayoff
Source§fn payoff(&self, _spot: f64, _strike: f64) -> f64
fn payoff(&self, _spot: f64, _strike: f64) -> f64
Degenerate single-point value: zero (all value is path- and schedule-dependent).
Source§fn path_payoff(&self, _path: &[f64], _strike: f64) -> f64
fn path_payoff(&self, _path: &[f64], _strike: f64) -> f64
Source§fn is_path_dependent(&self) -> bool
fn is_path_dependent(&self) -> bool
fn payoff_kind(&self) -> PayoffType
fn put_or_call(&self) -> &PutOrCall
fn exercise_style(&self) -> &ContractStyle
Source§fn as_any(&self) -> &dyn Any
fn as_any(&self) -> &dyn Any
Source§fn clone_box(&self) -> Box<dyn Payoff>
fn clone_box(&self) -> Box<dyn Payoff>
Box<dyn Payoff> are cloneable (repricing a contract under another
market clones the instrument). Implementors write
Box::new(self.clone()).Source§fn payoff_amount(&self, spot: f64, strike: f64) -> f64
fn payoff_amount(&self, spot: f64, strike: f64) -> f64
Source§fn path_payoff_var<'t>(
&self,
_path: &[Var<'t>],
_strike: f64,
) -> Option<Var<'t>>
fn path_payoff_var<'t>( &self, _path: &[Var<'t>], _strike: f64, ) -> Option<Var<'t>>
path_payoff over tape variables, used by
the adjoint Monte Carlo Greeks
(montecarlo::aad_greeks). None
(the default) opts a payoff out: discontinuous payoffs (barrier,
binary, autocallable) must stay out, because the
almost-everywhere derivative of an indicator is zero — their
Greeks come from the bump stencils instead.