Event物件說明

代表交易事件回報物件,每當交易系統發生特定事件時(例如 下單、刪單、改單、成交),
系統將會主動回傳event,用於通知使用者當前操作或市場的狀態。

Event Attribute

參數 資料型態 說明
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 - 空方方向
category Category 商品分類,同Order.category
Category.FUTURE
Category.OPTION
symbol str 股票代號,同Order.symbol
quantity int 委託數量,在 Task.Deal 情況下為成交數量
price float | kgi.PriceType 委託價格,如為市價單則顯示為「市價」
在 Task.Deal 情況下為成交價格
time_in_force kgi.TimeInForce 委託條件,同Order.time_in_force
TimeInForce.ROD - 委託當日有效
TimeInForce.IOC - 立即成交,未成交部分將被
TimeInForce.FOK - 立即全部成交,否則全部將被取消
trade_hour Trade_hour 盤別
TradeHour.REGULAR - 日盤
TradeHour.POSTMARKET - 夜盤
ts str 回報時間
msg str 補充資訊,改單及 Status.Failed 會記錄資訊

event物件回傳範例內容如下
若已送出一筆新委託後,將會陸續收到系統主動回報二筆event

Example

第一筆代表收到新委託資訊,系統處理中(status=<Status.Pending>)
此時無order_id(尚未確認委託成功),可用seqno進行後續比對

Event(
	task=<Task.NewOrder>,
	status=<Status.Pending>, 
	order_id='',
	seqno=1753766222457335001,
	action=<Action.Buy: 'B'>, 
	category=<Category.FUTURE: 0>, 
	symbol='M1FH5', 
	quantity=1,
	price=19507,
	time_in_force=<TimeInForce.ROD: 0>,
	ts='131702'
)

Example

第二筆代表收到新委託資訊,收到委託回報(status=<Status.Success>)
此時產生order_id(委託成功)

Event(
	task=<Task.NewOrder>, 
	status=<Status.Success>, 
	order_id='wAaa7', 
	seqno='00009840',
	action=<Action.Buy: 'B'>, 
	category=<Category.FUTURE: 0>, 
	symbol='M1FH5',
	quantity=1,
	price=19507.0,
	time_in_force=<TimeInForce.ROD: 0>,
	trade_hour=<TradeHour.REGULAR: 'R'>,
	ts='131702'
)