Trade物件說明

當進行新刪改單等操作行爲,均會由系統創建並回傳Trade物件,可用來追蹤訂單實時狀態。
Trade物件由order、order_status、operations組成。

Trade Attribute

參數 資料型態 說明
order Order 訂單基本資訊
order_status OrderStatus 訂單當前狀態
operations list[Operation] 操作紀錄(如新單、刪單、改單)

Order Attribute

參數 資料型態 說明
order_id str 委託單號,委託成功後才會顯示
action kgi.Action 委託方向
Action.Buy 為多方向
Action.Sell 為空方向
category Category 商品分類
Category.FUTURE
Category.OPTION
symbol str 交易標的代碼
quantity int 委託數量
price float 委託價格
time_in_force kgi.TimeInForce 委託條件
TimeInForce.ROD
TimeInForce.FOK
TimeInForce.IOC
price_type kgi.PriceType 價格類型
PriceType.MKT — 市價
PriceType.LMT — 限價
PriceType.StopLossMarket — 停損市價
trade_hour TradeHour 盤別
TradeHour.REGULAR — 日盤
TradeHour.POSTMARKET — 夜盤

OrderStatus Attribute

參數 資料型態 說明
nid str 最新的有效下單序號
status kgi.Status 委託狀態
Status.Submitted — 已送出,等待成交
Status.Filled — 完全成交
Status.PartFilled — 部分成交,其餘部分等待成交
Status.Cancelled — 已取消
Status.PartFilled_Cancelled — 已取消且部分成交
modified_quantity int 最新數量
modified_price float | kgi.PriceType 最新價格,如為市價則顯示為「市價」
modified_time str 最新變動時間
deals [Deal] Deal 包含成交資訊
 = price:成交價格
 = quantity:成交數量
 = ts:成交時間
 = reportseq:成交單號

Operation Attribute

參數 資料型態 說明
nid str 該筆委託的下單序號
task kgi.Task 委託的操作類型
Task.NewOrder — 新單
Task.CancelOrder — 刪單
Task.UpdatePrice — 改價
Task.UpdateQty — 改量
status kgi.Status 委託狀態
Status.Pending — 處理中,系統已接收請求,但尚未完成
Status.Success — 操作成功執行
Status.Failed — 操作未成功,可能因條件不符或交易所拒絕
op_time str 操作時間
msg str 補充資訊,改單及 Status.Failed 會記錄資訊

trade物件回傳範例內容如下

若已送出一筆新委託後,可藉由trade物件來追蹤委託單實時狀態

Example

#一筆部分成交範例 
Trade( 
	order= 
		Order( 
		order_id='wAaar',  
		action=<Action.Buy: 'B'>,  
		category=<Category.FUTURE: 0>,  
		symbol='TXFI5',  
		quantity=3,  
		price=23000.0,  
		time_in_force=<TimeInForce.ROD: 0>, 
		price_type=<PriceType.LMT: 0>,  
		trade_hour=<TradeHour.REGULAR: 'R'>),  
	order_status= 
		OrderStatus( 
		nid='00009821',  
		status=<Status.PartFilled>,  
		modified_time='100342',  
		modified_quantity=2,  
		modified_price=23000.0,  
		deals=[Deal( 
		quantity=1,  
		price=23000.0,  
		ts='100353650',  
		reportseq='00009821')]),  
	operations=[ 
		Operation( 
		nid='00009821',  
		task=<Task.NewOrder>,  
		status=<Status.Success>,  
		op_time='100342')] 
)