修正季节清仓执行时间

This commit is contained in:
boris
2026-07-06 10:23:23 +08:00
parent 8c5a2ef611
commit 60bfa28ef0
@@ -7965,6 +7965,7 @@ impl Strategy for PlatformExprStrategy {
}
if in_skip_window {
let seasonal_exit_time = self.intraday_execution_start_time();
let mut pending_highlimit_kept = 0usize;
for symbol in ctx.portfolio.positions().keys() {
if delayed_sold_symbols.contains(symbol) {
@@ -7981,8 +7982,8 @@ impl Strategy for PlatformExprStrategy {
symbol: symbol.clone(),
target_value: 0.0,
style: AlgoOrderStyle::Twap,
start_time: Some(delayed_limit_exit_time),
end_time: Some(delayed_limit_exit_time),
start_time: Some(seasonal_exit_time),
end_time: Some(seasonal_exit_time),
reason: "seasonal_stop_window".to_string(),
});
self.forget_position_entry_date(symbol);
@@ -11980,8 +11981,8 @@ mod tests {
..
} if symbol == other_symbol
&& *target_value == 0.0
&& *start_time == Some(NaiveTime::from_hms_opt(9, 31, 0).unwrap())
&& *end_time == Some(NaiveTime::from_hms_opt(9, 31, 0).unwrap())
&& *start_time == Some(NaiveTime::from_hms_opt(10, 18, 0).unwrap())
&& *end_time == Some(NaiveTime::from_hms_opt(10, 18, 0).unwrap())
&& reason == "seasonal_stop_window"
)),
"{:?}",
@@ -12274,8 +12275,8 @@ mod tests {
..
} if symbol == other_symbol
&& *target_value == 0.0
&& *start_time == Some(NaiveTime::from_hms_opt(9, 31, 0).unwrap())
&& *end_time == Some(NaiveTime::from_hms_opt(9, 31, 0).unwrap())
&& *start_time == Some(NaiveTime::from_hms_opt(10, 18, 0).unwrap())
&& *end_time == Some(NaiveTime::from_hms_opt(10, 18, 0).unwrap())
&& reason == "seasonal_stop_window"
)),
"{:?}",