設定事件回調函數,用於處理交易過程中產生的即時事件(如新單、改單、刪單、成交)。
此方法允許使用者自定義事件回調函數,系統在接收到交易相關事件時,會將事件資料物件傳遞給該回調函數進行處理。
#設定事件處理
event_counter = 0
def my_event_handler(event):
global event_counter
event_counter += 1 # 每次事件進來 +1
print(f"[{event_counter}] 接收到事件:{event.task}, 狀態:{event.status}")
api.Order.set_event(my_event_handler)
#建立新委託
trade = api.Order.create_order(action =kgi.Action.Buy,
symbol= '1234',
qty= 5,
price= kgi.PriceType.MKT,
time_in_force= kgi.TimeInForce.ROD,
order_cond= kgi.OrderCond.CASH,
odd_lot = kgi.OddLot.Common
)
[1] 接收到事件:Task.NewOrder, 狀態:Status.Pending
[2] 接收到事件:Task.NewOrder, 狀態:Status.Success
| 參數 | 資料型態 | 說明 |
|---|---|---|
| event | callable | 回調函數,需接收一個Event事件資料物件。 該事件task可能為以下五種類型之一: NewOrder -新單 UpdatePrice -改價 UpdateQty -改量 CancelOrder -取消委託 Deal -成交 |
此方法不回傳任何值,僅設定回調函數。
在未設置set event情況下,默認印出完整event。