設定事件回調函數,用於處理交易過程中產生的即時事件(如新單、改單、刪單、成交)。
此方法允許使用者自定義事件回調函數,系統在接收到交易相關事件時,會將事件資料物件傳遞給該回調函數進行處理。
#設定事件處理
def set_event(event):
print(f"接收到事件:{event.task}, 狀態:{event.status}")
print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
api.SubOrder.set_event(set_event)
#建立新委託
api.SubOrder.create_order(
action= kgi.Action.Buy,
symbol= 'AAPL',
qty= 4,
price= 230 )
Trade(
order=
Order(
org_seqnum='1003923',
order_id='250702000024',
action=<Action.Buy: 'B'>,
market=<Market.US: 1>,
symbol='AAPL',
quantity=4,
price=230.0),
order_status=
OrderStatus(
nid='1003923',
status=<Status.Submitted>,
modified_time='',
modified_quantity=4,
modified_price=230.0,
deals=[]),
operations=[
Operation(
nid='1003923',
task=<Task.NewOrder >,
status='委託成功')
])
接收到事件:Task.NewOrder, 狀態:處理中
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接收到事件:Task.NewOrder, 狀態:已下單至交易室
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接收到事件:Task.NewOrder, 狀態:委託上手中
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
接收到事件:Task.NewOrder, 狀態:委託成功
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| 參數 | 資料型態 | 說明 |
|---|---|---|
| event | callable | 回調函數,需接收一個Event事件資料物件。 該事件task可能為以下四種類型之一: NewOrder -新單 UpdateQty -改量 CancelOrder -取消委託 Deal -成交 |
此方法不回傳任何值,僅設定回調函數。
在未設置set event情況下,默認印出完整event。