(mode: BacktestMode)
| 21 | } |
| 22 | |
| 23 | fn run_cfg(mode: BacktestMode) -> BacktestRunConfig { |
| 24 | BacktestRunConfig { |
| 25 | mode_provenance: format!("afml_ch11_ch12_{mode:?}"), |
| 26 | trials_count: 19, |
| 27 | safeguards: BacktestSafeguards { |
| 28 | survivorship_bias_control: "Universe frozen at decision timestamp".to_string(), |
| 29 | look_ahead_control: "Features lagged and label horizon aligned".to_string(), |
| 30 | data_mining_control: "Validation chosen ex-ante and logged".to_string(), |
| 31 | cost_assumption: "Linear + spread impact model applied".to_string(), |
| 32 | multiple_testing_control: "Trials count tracked for post-selection stats".to_string(), |
| 33 | }, |
| 34 | } |
| 35 | } |
| 36 | |
| 37 | fn spans_overlap(lhs: (NaiveDateTime, NaiveDateTime), rhs: (NaiveDateTime, NaiveDateTime)) -> bool { |
| 38 | lhs.0 <= rhs.1 && rhs.0 <= lhs.1 |
no outgoing calls
no test coverage detected