Emit futures order process events
This commit is contained in:
@@ -971,6 +971,9 @@ fn engine_executes_futures_order_intents_against_future_account() {
|
||||
assert!(result.fills.iter().any(|fill| {
|
||||
fill.symbol == "IF2501" && fill.quantity == 1 && (fill.commission - 12.0).abs() < 1e-6
|
||||
}));
|
||||
assert!(result.process_events.iter().any(|event| {
|
||||
event.symbol.as_deref() == Some("IF2501") && event.kind == ProcessEventKind::Trade
|
||||
}));
|
||||
let futures_account = engine.futures_account().expect("future account");
|
||||
let position = futures_account
|
||||
.position("IF2501", FuturesDirection::Long)
|
||||
|
||||
@@ -85,6 +85,12 @@ fn futures_order_execution_splits_close_between_old_and_today_quantity() {
|
||||
|
||||
assert_eq!(report.order_events.len(), 1);
|
||||
assert_eq!(report.order_events[0].status, OrderStatus::Filled);
|
||||
assert!(
|
||||
report
|
||||
.process_events
|
||||
.iter()
|
||||
.any(|event| event.kind == fidc_core::ProcessEventKind::Trade)
|
||||
);
|
||||
assert_eq!(report.fill_events[0].quantity, 4);
|
||||
assert!((report.fill_events[0].net_cash_flow - 19_196.0).abs() < 1e-6);
|
||||
let position = account
|
||||
@@ -120,6 +126,12 @@ fn futures_close_today_rejects_when_today_quantity_is_insufficient() {
|
||||
|
||||
assert_eq!(report.order_events.len(), 1);
|
||||
assert_eq!(report.order_events[0].status, OrderStatus::Rejected);
|
||||
assert!(
|
||||
report
|
||||
.process_events
|
||||
.iter()
|
||||
.any(|event| event.kind == fidc_core::ProcessEventKind::OrderCreationReject)
|
||||
);
|
||||
assert!(
|
||||
report.order_events[0]
|
||||
.reason
|
||||
@@ -174,6 +186,14 @@ fn futures_expiration_settlement_closes_all_contract_directions() {
|
||||
|
||||
assert_eq!(report.order_events.len(), 2);
|
||||
assert_eq!(report.fill_events.len(), 2);
|
||||
assert_eq!(
|
||||
report
|
||||
.process_events
|
||||
.iter()
|
||||
.filter(|event| event.kind == fidc_core::ProcessEventKind::Trade)
|
||||
.count(),
|
||||
2
|
||||
);
|
||||
assert!(
|
||||
report
|
||||
.order_events
|
||||
|
||||
Reference in New Issue
Block a user