Skip to main content

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// }