代表交易事件回報物件,每當交易系統發生特定事件時(例如 下單、刪單、改單、成交),
系統將會主動回傳event,用於通知使用者當前操作或市場的狀態。
| 參數 | 資料型態 | 說明 |
|---|---|---|
| task | kgi.Task |
委託的操作類型,同 Operation.task Task.NewOrder — 新單 Task.CancelOrder — 刪單 Task.UpdateQty — 改量 Task.Deal — 成交 |
| status | kgi.Status | str |
委託狀態,同 Operation.status 初始狀態為 Status.Pending(處理中) 成功提交後的可能狀態包括: — 預約單 — 委託上手中 — 委託成功 — 委託失敗 — 逾期單 — 作廢單 — 無效單 — 已下單至交易室 — 處理失敗 — 上手系統處理中 |
| org_seqnum | str | 原始單號,同 Order.org_seqnum |
| order_id | str | 委託單號,在 event 為 Task.Deal |
| seqno | str | 下單序號,在 event 非 Task.Deal |
| action | kgi.Action |
委託方向,同 Order.action Action.Buy 為多方向 Action.Sell 為空方向 |
| market | kgi.Market |
市場 Market.US |
| symbol | str | 交易標的代碼 |
| quantity | int |
委託數量 在 Task.Deal 情況下為成交數量 |
| price | float |
委託價格 在 Task.Deal 情況下為成交價格 |
| ts | str | 回報時間 |
| msg | str | 補充資訊,"改價"及"委託失敗"會記錄資訊 |
若已送出一筆新委託後,將會陸續收到系統主動回報四筆event
第一筆代表收到新委託資訊,系統處理中(status='處理中')
此時無order_id(尚未確認委託成功),可用seqno進行後續比對
Event(
task =Task.NewOrder,
status='處理中',
org_seqnum='1004006',
seqno='250702000070',
action=<Action.Sell: 'S'>,
market=<Market.US: 1>,
symbol='AAPL',
quantity=300.0,
price=440.0,
ts='1511560'
)
第二筆代表系統已將委託送至交易室(status='已下單至交易室')
Event(
task =Task.NewOrder,
status='已下單至交易室',
org_seqnum='1004006',
seqno='250702000070',
action=<Action.Sell: 'S'>,
market=<Market.US: 1>,
symbol='AAPL',
quantity=300.0,
price=440.0,
ts='1511560'
)
第三筆代表系統已將委託轉給境外合作券商(status='委託上手中')
Event(
task =Task.NewOrder,
status='委託上手中',
org_seqnum='1004006',
seqno='250702000070',
action=<Action.Sell: 'S'>,
market=<Market.US: 1>,
symbol='AAPL',
quantity=300.0,
price=440.0,
ts='1511560'
)
第四筆代表委託成功,收到委託回報(status='委託成功')
Event(
task =Task.NewOrder,
status='委託成功',
org_seqnum='1004006',
seqno='250702000070',
action=<Action.Sell: 'S'>,
market=<Market.US: 1>,
symbol='AAPL',
quantity=300.0,
price=440.0,
ts='1511560'
)