Use intraday quotes before snapshot fallback
This commit is contained in:
@@ -1829,6 +1829,27 @@ where
|
||||
return None;
|
||||
}
|
||||
|
||||
let start_cursor = self
|
||||
.intraday_execution_start_time
|
||||
.map(|start_time| date.and_time(start_time));
|
||||
let quotes = data.execution_quotes_on(date, symbol);
|
||||
|
||||
if let Some(fill) = self.select_execution_fill(
|
||||
snapshot,
|
||||
quotes,
|
||||
side,
|
||||
start_cursor,
|
||||
requested_qty,
|
||||
round_lot,
|
||||
minimum_order_quantity,
|
||||
order_step_size,
|
||||
allow_odd_lot_sell,
|
||||
cash_limit,
|
||||
gross_limit,
|
||||
) {
|
||||
return Some(fill);
|
||||
}
|
||||
|
||||
if self.intraday_execution_start_time.is_some() {
|
||||
let execution_price = self.snapshot_execution_price(snapshot, side);
|
||||
let quantity = match side {
|
||||
@@ -1867,27 +1888,6 @@ where
|
||||
});
|
||||
}
|
||||
|
||||
let start_cursor = self
|
||||
.intraday_execution_start_time
|
||||
.map(|start_time| date.and_time(start_time));
|
||||
let quotes = data.execution_quotes_on(date, symbol);
|
||||
|
||||
if let Some(fill) = self.select_execution_fill(
|
||||
snapshot,
|
||||
quotes,
|
||||
side,
|
||||
start_cursor,
|
||||
requested_qty,
|
||||
round_lot,
|
||||
minimum_order_quantity,
|
||||
order_step_size,
|
||||
allow_odd_lot_sell,
|
||||
cash_limit,
|
||||
gross_limit,
|
||||
) {
|
||||
return Some(fill);
|
||||
}
|
||||
|
||||
None
|
||||
}
|
||||
|
||||
|
||||
@@ -703,7 +703,8 @@ fn broker_cancels_market_order_remainder_when_intraday_quote_liquidity_exhausted
|
||||
ChinaAShareCostModel::default(),
|
||||
ChinaEquityRuleHooks::default(),
|
||||
PriceField::Last,
|
||||
);
|
||||
)
|
||||
.with_intraday_execution_start_time(chrono::NaiveTime::from_hms_opt(10, 18, 0).unwrap());
|
||||
|
||||
let report = broker
|
||||
.execute(
|
||||
|
||||
Reference in New Issue
Block a user