修复日线投影缺盘口量拒单

This commit is contained in:
boris
2026-07-05 23:06:51 +08:00
parent f9f9706900
commit de1373deae
+10 -4
View File
@@ -1541,7 +1541,10 @@ impl PlatformExprStrategy {
let constraints = self.config.risk_config.trading_constraints;
let mut max_fill = requested_qty;
if self.config.quote_quantity_limit || constraints.liquidity_limit_enabled {
let enforce_top_level_liquidity = quote.is_some()
&& (self.config.quote_quantity_limit || constraints.liquidity_limit_enabled)
|| quote.is_none() && constraints.liquidity_limit_enabled;
if enforce_top_level_liquidity {
let top_level_liquidity = match (quote, side) {
(Some(quote), OrderSide::Buy) => quote
.ask1_volume
@@ -1555,8 +1558,10 @@ impl PlatformExprStrategy {
(None, OrderSide::Sell) => market.liquidity_for_sell().min(u32::MAX as u64) as u32,
};
if top_level_liquidity == 0 {
if quote.is_some() {
return None;
}
} else {
let liquidity_limited = if side == OrderSide::Sell && allow_odd_lot_sell {
top_level_liquidity
} else {
@@ -1571,6 +1576,7 @@ impl PlatformExprStrategy {
}
max_fill = max_fill.min(liquidity_limited);
}
}
if constraints.volume_limit_enabled {
let volume_basis = match quote {
@@ -21544,9 +21550,9 @@ mod tests {
ask1: 10.0,
prev_close: 9.9,
volume: 1_000_000,
minute_volume: 10_000,
bid1_volume: 2_000,
ask1_volume: 2_000,
minute_volume: 0,
bid1_volume: 0,
ask1_volume: 0,
trading_phase: Some("continuous".to_string()),
paused: false,
upper_limit: 11.0,