From d3c36e947894fd220b62ecd6fbfe02473f70bd2c Mon Sep 17 00:00:00 2001 From: boris Date: Fri, 11 Sep 2026 09:14:58 +0800 Subject: [PATCH] fix: retain precise missing execution quote diagnostics during risk checks --- crates/fidc-core/src/broker.rs | 36 +++++++++++++++++----------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/crates/fidc-core/src/broker.rs b/crates/fidc-core/src/broker.rs index 52d4d96..2a22b65 100644 --- a/crates/fidc-core/src/broker.rs +++ b/crates/fidc-core/src/broker.rs @@ -6166,6 +6166,24 @@ where } else { rule }; + if (rule.allowed || rule.reason.as_deref() == Some("invalid execution price")) + && let Some(missing_reason) = + self.missing_daily_execution_price_reason(snapshot, algo_request) + { + Self::reject_missing_execution_price_order( + report, + date, + order_id, + symbol, + OrderSide::Buy, + requested_qty, + reason, + missing_reason, + emit_creation_events, + ); + self.clear_open_order(order_id); + return Ok(()); + } if !rule.allowed { let rule_reason = rule.reason.as_deref().unwrap_or_default().to_string(); let status = match rule.reason.as_deref() { @@ -6202,24 +6220,6 @@ where return Ok(()); } - if let Some(missing_reason) = - self.missing_daily_execution_price_reason(snapshot, algo_request) - { - Self::reject_missing_execution_price_order( - report, - date, - order_id, - symbol, - OrderSide::Buy, - requested_qty, - reason, - missing_reason, - emit_creation_events, - ); - self.clear_open_order(order_id); - return Ok(()); - } - let current_position_quantity = portfolio .position(symbol) .map(|position| position.quantity)