fix: keep decision estimates independent and use timed capacity in fill fixtures

This commit is contained in:
boris
2026-09-12 06:46:49 +08:00
parent 053f880e34
commit 24cb4805a7
7 changed files with 89 additions and 53 deletions
+7 -2
View File
@@ -7028,6 +7028,7 @@ mod tests {
let third = d(2025, 1, 6);
let fourth = d(2025, 1, 7);
let broker = scheduled_next_open_broker(FidcRiskControlConfig::default())
.with_volume_capacity_mode(crate::execution_capacity::VolumeCapacityMode::SessionCapacityAudit)
.with_volume_limit(true)
.with_volume_percent(0.25);
let result = run_scheduled_round_trip_next_open_with_dataset_and_broker(
@@ -7055,12 +7056,13 @@ mod tests {
}
#[test]
fn next_bar_open_sell_volume_limit_rejects_execution_day_zero_volume() {
fn next_bar_open_session_audit_flags_zero_volume_without_rewriting_fills() {
let first = d(2025, 1, 2);
let second = d(2025, 1, 3);
let third = d(2025, 1, 6);
let fourth = d(2025, 1, 7);
let broker = scheduled_next_open_broker(FidcRiskControlConfig::default())
.with_volume_capacity_mode(crate::execution_capacity::VolumeCapacityMode::SessionCapacityAudit)
.with_volume_limit(true)
.with_volume_percent(0.25);
let result = run_scheduled_round_trip_next_open_with_dataset_and_broker(
@@ -7081,7 +7083,10 @@ mod tests {
broker,
);
assert_round_trip_sell_canceled_with_reason(&result, "daily volume limit");
assert!(result.fills.iter().any(|fill| fill.side == OrderSide::Sell && fill.date == fourth));
assert_eq!(result.capacity_audit.audit_passed, Some(false));
assert_eq!(result.capacity_audit.failed_symbol_sessions, 1);
assert!(result.process_events.iter().any(|event| event.kind == ProcessEventKind::SessionCapacityAudit));
}
#[test]