修复日线投影缺盘口量拒单
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user