修复FIDC选股阶段风控语义
This commit is contained in:
@@ -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()]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user