pub trait RNDAnalysis {
// Required methods
fn calculate_rnd(
&self,
params: &RNDParameters,
) -> Result<RNDResult, ChainError>;
fn calculate_skew(&self) -> Result<Vec<(Positive, Decimal)>, ChainError>;
}Expand description
Trait defining Risk-Neutral Density analysis capabilities
This trait provides methods for calculating RND and analyzing volatility skew from option chain data.
Required Methods§
Sourcefn calculate_rnd(&self, params: &RNDParameters) -> Result<RNDResult, ChainError>
fn calculate_rnd(&self, params: &RNDParameters) -> Result<RNDResult, ChainError>
Calculates the Risk-Neutral Density from the option chain
Uses the Breeden-Litzenberger formula to extract implied probabilities from option prices.
§Arguments
params- Parameters controlling the RND calculation
§Returns
Result containing either RNDResult or an error
§Errors
Returns ChainError::EmptyDensities when no valid density values
can be extracted from the chain, or ChainError::OptionDataError
when individual strikes produce numerical failures during the
finite-difference second-derivative approximation.
Sourcefn calculate_skew(&self) -> Result<Vec<(Positive, Decimal)>, ChainError>
fn calculate_skew(&self) -> Result<Vec<(Positive, Decimal)>, ChainError>
Calculates the implied volatility skew
Analyzes how implied volatility varies across different strike prices, providing insight into market’s price expectations.
§Returns
Result containing vector of (strike_price, volatility) pairs or an error
§Errors
Returns ChainError::EmptySkewData when no strike in the chain
produced a valid implied-volatility sample, or
ChainError::OptionDataError if individual option records carry
invalid volatility values.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".