rustyqlib/cmdty/cmdty_option.rs
1// use super::super::core::termstructure::YieldTermStructure;
2// use super::super::core::quotes::Quote;
3// use super::super::core::traits::{Instrument,Greeks};
4// use crate::core::trade;
5// use crate::cmdty::black76;
6//
7// pub enum Engine{
8// Black76,
9// MonteCarlo
10// }
11//
12//
13// pub struct CmdtyOption {
14// pub option_type: trade::PutOrCall,
15// pub transection: trade::Transection,
16// pub current_price: Quote,
17// pub strike_price: f64,
18// pub volatility: f64,
19// pub time_to_maturity: f64,
20// pub time_to_future_maturity: Option<f64>,
21// pub term_structure: YieldTermStructure<f64>,
22// pub risk_free_rate: Option<f64>,
23// pub transection_price: f64,
24// pub engine: Engine,
25// pub simulation:Option<u64>
26// }
27//
28// impl Instrument for CmdtyOption {
29// fn npv(&self) -> f64 {
30// match self.engine{
31// Engine::Black76 => {
32// let value = black76::npv(&self);
33// value
34// }
35// _ => {
36// 0.0
37// }
38// }
39// }
40// }