Revert "修正延迟卖出后的补仓槽位"

This reverts commit 0bb47812e5.
This commit is contained in:
boris
2026-07-08 03:35:03 +08:00
parent 0bb47812e5
commit da12cdddd4
@@ -8151,6 +8151,7 @@ impl Strategy for PlatformExprStrategy {
let mut intraday_attempted_buys = BTreeSet::<String>::new(); let mut intraday_attempted_buys = BTreeSet::<String>::new();
let mut same_bar_buy_symbols = BTreeSet::<String>::new(); let mut same_bar_buy_symbols = BTreeSet::<String>::new();
let mut delayed_sold_symbols = BTreeSet::<String>::new(); let mut delayed_sold_symbols = BTreeSet::<String>::new();
let mut delayed_open_exit_submitted = false;
let mut unresolved_stop_loss_symbols = BTreeSet::<String>::new(); let mut unresolved_stop_loss_symbols = BTreeSet::<String>::new();
let mut pending_risk_level_forced_exit_symbols = BTreeSet::<String>::new(); let mut pending_risk_level_forced_exit_symbols = BTreeSet::<String>::new();
let delayed_limit_exit_time = self let delayed_limit_exit_time = self
@@ -8254,6 +8255,7 @@ impl Strategy for PlatformExprStrategy {
end_time: Some(delayed_limit_exit_time), end_time: Some(delayed_limit_exit_time),
reason: "delayed_limit_open_sell".to_string(), reason: "delayed_limit_open_sell".to_string(),
}); });
delayed_open_exit_submitted = true;
delayed_sold_symbols.insert(symbol.clone()); delayed_sold_symbols.insert(symbol.clone());
self.forget_position_entry_date(&symbol); self.forget_position_entry_date(&symbol);
let projected_sold = if ctx let projected_sold = if ctx
@@ -8359,6 +8361,7 @@ impl Strategy for PlatformExprStrategy {
let mut daily_top_up_pending_buy_value = 0.0_f64; let mut daily_top_up_pending_buy_value = 0.0_f64;
let mut pending_full_close_symbols = BTreeSet::<String>::new(); let mut pending_full_close_symbols = BTreeSet::<String>::new();
let mut slot_blocking_symbols = BTreeSet::<String>::new(); let mut slot_blocking_symbols = BTreeSet::<String>::new();
let should_block_released_slots_after_top_up = delayed_open_exit_submitted;
let interleaved_pending_full_close_symbols = BTreeSet::<String>::new(); let interleaved_pending_full_close_symbols = BTreeSet::<String>::new();
let risk_level_forced_exit_time = self.risk_level_forced_exit_time(); let risk_level_forced_exit_time = self.risk_level_forced_exit_time();
self.pending_full_close_symbols.retain(|symbol| { self.pending_full_close_symbols.retain(|symbol| {
@@ -8783,6 +8786,10 @@ impl Strategy for PlatformExprStrategy {
target_value: 0.0, target_value: 0.0,
reason: "stop_loss_exit".to_string(), reason: "stop_loss_exit".to_string(),
}); });
if daily_top_up_pending_buy_value > 0.0 && should_block_released_slots_after_top_up
{
slot_blocking_symbols.insert(position.symbol.clone());
}
self.forget_position_entry_date(&position.symbol); self.forget_position_entry_date(&position.symbol);
slot_working_symbols.remove(&position.symbol); slot_working_symbols.remove(&position.symbol);
if can_sell { if can_sell {
@@ -8851,6 +8858,10 @@ impl Strategy for PlatformExprStrategy {
target_value: 0.0, target_value: 0.0,
reason: "take_profit_exit".to_string(), reason: "take_profit_exit".to_string(),
}); });
if daily_top_up_pending_buy_value > 0.0 && should_block_released_slots_after_top_up
{
slot_blocking_symbols.insert(position.symbol.clone());
}
self.forget_position_entry_date(&position.symbol); self.forget_position_entry_date(&position.symbol);
slot_working_symbols.remove(&position.symbol); slot_working_symbols.remove(&position.symbol);
if can_sell { if can_sell {