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 為空方向
symbol str 股票代碼
quantity int 委託數量
price float 委託價格,如果是非限價單則顯示 0.0
order_cond Kgi.OrderCond 委託類型
OrderCond.CASH — 現股
OrderCond.MARGIN — 融資
OrderCond.SHORT_SELLING — 融券
OrderCond.Lend_SELLING — 借券賣出
OrderCond.MARGIN_DayTrade — 當沖融資
OrderCond.SHORT_DayTrade — 當沖融券
OrderCond.CASH_SELLING — 現股先賣
time_in_force kgi.TimeInForce 委託條件
TimeInForce.ROD — 委託當日有效
TimeInForce.IOC — 立即成交,未成交部分將被取消
TimeInForce.FOK — 立即全部成交,否則全部撤銷
price_type kgi.PriceType 價格類型
PriceType.LMT — 限價
PriceType.MKT — 市價
PriceType.LimitUp — 漲停價
PriceType.LimitDown — 跌停價
PriceType.Reference — 平盤價

補充:漲跌停後僅分別限價及市價。
odd_lot kgi.OddLot 委託別
OddLot.Common — 整股
OddLot.Fixing — 定盤交易
OddLot.Odd — 盤中零股
OddLot.Odd_AfterMarket — 零股盤後

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 list[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='Y002M', 
		action=<Action.Buy: 'B'>,  
		symbol='1234',  
		quantity=5,  
		price=0.0,  
		order_cond=<OrderCond.CASH: 0>,  
		time_in_force=<TimeInForce.ROD: 0>,  
		price_type= <PriceType.MKT>,  
		odd_lot=<OddLot.Common: 0>),  
	order_status= 
		OrderStatus(nid= '00004123',  
		status= <Status.Submitted>,  
		modified_time= '100844',  
		modified_quantity=5,  
		modified_price='市價',  
		deals=[]),  
	operations= 
		[Operation(nid= '00004123',  
		task=<Task.NewOrder>, 
		status=<Status.Success>,  
		op_time='104608')] 
	)