修复FIDC选股阶段风控语义

This commit is contained in:
boris
2026-07-05 14:51:54 +08:00
parent d3c986e1f2
commit 00c9042c15
8 changed files with 307 additions and 88 deletions
+15 -20
View File
@@ -2978,30 +2978,25 @@ mod tests {
let (default_selected, _) = default_strategy
.select_symbols(&ctx, dates[2], 0.0, 100.0)
.expect("default selection");
assert!(default_selected.is_empty());
assert_eq!(default_selected, vec![symbol.to_string()]);
let default_risk_decisions = default_strategy.selection_risk_decisions(&ctx, dates[2]);
assert_eq!(default_risk_decisions.len(), 1);
assert_eq!(default_risk_decisions[0].symbol, symbol);
assert_eq!(default_risk_decisions[0].rule_code, "kcb");
assert!(default_risk_decisions.is_empty());
let mut cfg = default_cfg;
cfg.risk_config.static_rules.reject_kcb_selection = true;
let strict_strategy = OmniMicroCapStrategy::new(cfg);
let (selected, _) = strict_strategy
.select_symbols(&ctx, dates[2], 0.0, 100.0)
.expect("strict selection");
assert!(selected.is_empty());
let strict_risk_decisions = strict_strategy.selection_risk_decisions(&ctx, dates[2]);
assert_eq!(strict_risk_decisions.len(), 1);
assert_eq!(strict_risk_decisions[0].symbol, symbol);
assert_eq!(strict_risk_decisions[0].rule_code, "kcb");
assert!(
default_risk_decisions[0]
strict_risk_decisions[0]
.diagnostic_line()
.starts_with("risk_decision=")
);
let mut cfg = default_cfg;
cfg.risk_config.static_rules.reject_kcb_selection = false;
cfg.risk_config.static_rules.reject_kcb_buy = false;
let configured_strategy = OmniMicroCapStrategy::new(cfg);
let (selected, _) = configured_strategy
.select_symbols(&ctx, dates[2], 0.0, 100.0)
.expect("configured selection");
assert!(
configured_strategy
.selection_risk_decisions(&ctx, dates[2])
.is_empty()
);
assert_eq!(selected, vec![symbol.to_string()]);
}
}