代表交易事件回報物件,每當交易系統發生特定事件時(例如 下單、刪單、改單、成交),
系統將會主動回傳event,用於通知使用者當前操作或市場的狀態。
| 參數 | 資料型態 | 說明 |
|---|---|---|
| task | kgi.Task |
委託的操作類型,同 Operation.task Task.NewOrder — 新單 Task.CancelOrder — 刪單 Task.UpdatePrice — 改價 Task.UpdateQty — 改量 Task.Deal — 成交 |
| status | kgi.Status |
委託狀態,同 Operation.status Status.Pending — 處理中 Status.Success — 操作成功執行 Status.Failed — 操作未成功 |
| order_id | str | 委託單號,委託成功後才會顯示,同 Order.order_id |
| seqno | str | 該筆委託的下單序號,同 Operation.nid |
| action | kgi.Action |
委託方向,同 Order.action Action.Buy 為多方向 Action.Sell 為空方向 |
| symbol | str | 股票代碼,同 Order.symbol |
| quantity | int |
委託數量 在 Task.Deal 情況下為成交數量 |
| price | float | kgi.PriceType |
委託價格,如為市價單則顯示為「市價」 在 Task.Deal 情況下為成交價格 |
| order_cond | kgi.OrderCond |
委託類型,同 Order.order_cond OrderCond.CASH — 現股 OrderCond.MARGIN — 融資 OrderCond.SHORT_SELLING — 融券 OrderCond.Lend_SELLING — 借券賣出 OrderCond.MARGIN_DayTrade — 當沖融資 OrderCond.SHORT_DayTrade — 當沖融券 OrderCond.CASH_SELLING — 現股先賣 |
| time_in_force | kgi.TimeInForce |
委託條件,同 Order.time_in_force TimeInForce.ROD — 委託當日有效 TimeInForce.IOC — 立即成交,未成交部分將被取消 TimeInForce.FOK — 立即全部成交,否則全部將被撤銷 |
| odd_lot | kgi.OddLot |
委託別,同 Order.odd_lot OddLot.Common — 整股 OddLot.Fixing — 定盤交易 OddLot.Odd — 盤中零股 OddLot.Odd_AfterMarket — 盤後零股 |
| ts | str | 回報時間 |
| msg | str |
補充資訊 改單及 Status.Failed 會記錄資訊 |
若已送出一筆新委託後,將會陸續收到系統主動回報二筆event
第一筆代表收到新委託資訊,系統處理中(status=<Status.Pending>)
此時無order_id(尚未確認委託成功),可用seqno進行後續比對
Event(
task=<Task.NewOrder>,
status=<Status.Pending>,
seqno='15390968055475038003',
action=<Action.Buy: 'B'>,
symbol='1234',
quantity=5,
price=39.9,
order_cond=<OrderCond.CASH: 0>,
time_in_force=<TimeInForce.ROD: 0>,
odd_lot=<OddLot.Common: 0>,
ts='232117'
)
第二筆代表委託成功,收到委託回報(status=<Status.Success>)
此時產生order_id(委託成功)
Event(
task=<Task.NewOrder>,
status=<Status.Success>,
order_id='Y006Z',
seqno='00008689',
action=<Action.Buy: 'B'>,
symbol='1234',
quantity=5,
price=39.9,
order_cond=<OrderCond.CASH: 0>,
time_in_force=<TimeInForce.ROD: 0>,
odd_lot=<OddLot.Common: 0>,
ts='232122'
)