use crate::options::{Option, OptionPricing, OptionStrategy};
#[derive(Debug, Default)]
pub struct FiniteDiffModel {
pub risk_free_rate: f64,
pub volatility: f64,
pub steps: usize,
}
impl FiniteDiffModel {
pub fn new(risk_free_rate: f64, volatility: f64, steps: usize) -> Self {
Self {
risk_free_rate,
volatility,
steps,
}
}
}
impl OptionPricing for FiniteDiffModel {
fn price<T: Option>(&self, option: &T) -> f64 {
panic!("FiniteDiffModel does not support price calculation yet");
}
fn implied_volatility<T: Option>(&self, _option: &T, _market_price: f64) -> f64 {
panic!("FiniteDiffModel does not support implied volatility calculation yet");
}
}
impl OptionStrategy for FiniteDiffModel {}