rustyqlib/equity/
build_contracts.rs1use super::vanilla_option::{EquityOption};
5use crate::core::utils::Contract;
6use crate::core::data_models::ProductData;
7
8pub fn build_eq_contracts_from_json(data: Vec<Contract>) -> Vec<Box<EquityOption>> {
9 let derivatives:Vec<Box<EquityOption>> = data.iter().map(|x| {
10 let ProductData::Option(opt_data) = &x.product_type else {
11 panic!("Not an option!");
12 };
13 let mut opt_data = opt_data.clone();
17 if opt_data.volatility.is_none() && opt_data.vol_surface.is_none() {
18 opt_data.volatility = Some(0.2);
19 }
20 EquityOption::from_json(&opt_data)
21 }).collect();
22 return derivatives;
23}