保留模型评分显式调仓日期
This commit is contained in:
@@ -1905,7 +1905,15 @@ fn signal_rebalance_dates(rebalance: &StrategyRebalanceSpec) -> Option<BTreeSet<
|
||||
.unwrap_or("")
|
||||
.trim()
|
||||
.to_ascii_lowercase();
|
||||
if frequency != "signal_dates" && frequency != "signal-dates" && frequency != "signal dates" {
|
||||
if !matches!(
|
||||
frequency.as_str(),
|
||||
"signal_dates"
|
||||
| "signal-dates"
|
||||
| "signal dates"
|
||||
| "daily_model_score_rank"
|
||||
| "dynamic_model_score_rank"
|
||||
| "model_rank_rotation"
|
||||
) {
|
||||
return None;
|
||||
}
|
||||
let dates = rebalance
|
||||
@@ -2416,6 +2424,26 @@ mod tests {
|
||||
assert_eq!(cfg.signal_rebalance_dates.len(), 2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_dynamic_model_score_dates_into_platform_config() {
|
||||
let spec = serde_json::json!({
|
||||
"rebalance": {
|
||||
"frequency": "daily_model_score_rank",
|
||||
"dates": ["2025-11-10", "2025-11-17"]
|
||||
}
|
||||
});
|
||||
|
||||
let cfg = platform_expr_config_from_value("", "", &spec).expect("config");
|
||||
|
||||
assert_eq!(
|
||||
cfg.signal_rebalance_dates,
|
||||
BTreeSet::from([
|
||||
NaiveDate::from_ymd_opt(2025, 11, 10).unwrap(),
|
||||
NaiveDate::from_ymd_opt(2025, 11, 17).unwrap(),
|
||||
])
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn parses_execution_cost_overrides_into_platform_config() {
|
||||
let spec = serde_json::json!({
|
||||
|
||||
Reference in New Issue
Block a user