Skip to main content

hypercall/rsm/portfolio_margin/
config.rs

1pub use hypercall_margin::portfolio::config::{
2    PortfolioMarginConfig, PortfolioMarginContingencyConfig, PortfolioMarginGridConfig,
3    PortfolioMarginScenario, PortfolioMarginSymbolOverride,
4};
5
6use crate::types::Config;
7
8pub fn config_from_legacy(config: &Config) -> PortfolioMarginConfig {
9    PortfolioMarginConfig::from_legacy_config(
10        config.risk_free_rate,
11        config.base_volatility,
12        config.base_skew,
13        config.base_excess_kurtosis,
14        config.delta_threshold,
15        config.strike_match_tolerance,
16        config.expiry_match_tolerance_years,
17    )
18}
19
20pub fn grid_from_legacy(config: &Config) -> PortfolioMarginGridConfig {
21    PortfolioMarginGridConfig {
22        scenarios: PortfolioMarginScenario::finalized_default_grid(),
23        base_volatility: config.base_volatility,
24        base_skew: config.base_skew,
25        base_excess_kurtosis: config.base_excess_kurtosis,
26        delta_threshold: config.delta_threshold,
27        strike_match_tolerance: config.strike_match_tolerance,
28        expiry_match_tolerance_years: config.expiry_match_tolerance_years,
29    }
30}