Order.update_order 修改委託

對交易訂單進行價格或數量修改。須注意若是以市價送單,則無法修改價格。

Example 1:改價

input
trade=api.Order.update_order('Y001A',price=42) 
trade 
output
Trade( 
	order= 
		Order(order_id='Y001A',  
		action=<Action.Buy: 'B'>,  
		symbol='1102',  
		quantity=2,  
		price=41.0,  
		order_cond=<OrderCond.CASH: 0>,  
		time_in_force=<TimeInForce.ROD: 0>,  
		price_type=<PriceType.LMT: 0>,  
		odd_lot=<OddLot.Common: 0>),  
	order_status= 
		OrderStatus(nid='00007116',  
		status=<Status.Submitted>,  
		modified_time='110405',  
		modified_quantity=2,  
		modified_price=41.0,  
		deals=[]),  
	operations=[Operation(nid='00007116',  
		task=<Task.NewOrder>,  
		status=<Status.Success>,  
		op_time='110405'),  
		Operation(nid=15390405437599140003,  
		task=<Task.UpdatePrice>,  
		status=<Status.Pending>, 
		op_time='110418',  
		msg='NewPrice_42')] 
)

#陸續收到系統主動回報:改價事件-系統處理中 
Event( 
	task=<Task.UpdatePrice>,  
	status=<Status.Pending>,  
	order_id='Y001A',  
	seqno=’00006859’, 
	action=<Action.Buy: 'B'>,  
	symbol='1102',  
	quantity=2,  
	price=42,  
	order_cond=<OrderCond.CASH: 0>,  
	time_in_force=<TimeInForce.ROD: 0>,  
	odd_lot=<OddLot.Common: 0>,  
	ts='110418', 
	msg='NewPrice_42' 
) 

#陸續收到系統主動回報:改價事件-成功執行 
Event( 
	task=<Task.UpdatePrice>  
	status=<Status.Success>,  
	order_id='Y001A',  
	seqno=’00006859’, 
	action=<Action.Buy: 'B'>,  
	symbol='1102',  
	quantity=2,  
	price=42.0,  
	order_cond=<OrderCond.CASH: 0>,  
	time_in_force=<TimeInForce.ROD: 0>,  
	odd_lot=<OddLot.Common: 0>,  
	ts='110417', 
	msg=’ 'NewPrice_42' 
) 

Example 2:改量

input
trade=api.Order.update_order('Y000Y',qty=4) 
trade
output
Trade( 
	order=Order(order_id='Y000Y',  
		action=<Action.Buy: 'B'>,  
		symbol='1234',  
		quantity=5,  
		price=43.0,  
		order_cond=<OrderCond.CASH: 0>,  
		time_in_force=<TimeInForce.ROD: 0>,  
		price_type=<PriceType.LMT: 0>,  
		odd_lot=<OddLot.Common: 0>),  
	order_status=OrderStatus(nid='00006859',  
		status=<Status.Submitted>,  
		modified_time='172219',  
		modified_quantity=5,  
		modified_price=43.0,  
		deals=[]),  
	operations=[Operation(nid='00006859',  
		task=<Task.NewOrder>,  
		status=<Status.Success>,  
		op_time='172219'),  
		Operation(nid=15390341745114659005,  
		task=<Task.UpdateQty>,  
		status=<Status.Pending>,  
		op_time='172247',  
		msg='NewQty_1')] 
) 

#陸續收到系統主動回報:改量事件-系統處理中 
Event( 
	task=<Task.UpdateQty>,  
	status=<Status.Pending>,  
	order_id='Y001A',  
	seqno=’00006859’, 
	action=<Action.Buy: 'B'>,  
	symbol='1234',  
	quantity=1,  
	price=43.0,  
	order_cond=<OrderCond.CASH: 0>,  
	time_in_force=<TimeInForce.ROD: 0>,  
	odd_lot=<OddLot.Common: 0>,  
	ts='172247', 
	msg='NewQty_1' 
)

#陸續收到系統主動回報:改量事件-成功執行 
Event( 
	task=<Task.UpdateQty>,  
	status=<Status.Success>,  
	order_id='Y001A',  
	seqno=’00006859’, 
	action=<Action.Buy: 'B'>,  
	symbol='1234',  
	quantity=1,  
	price=43.0,  
	order_cond=<OrderCond.CASH: 0>,  
	time_in_force=<TimeInForce.ROD: 0>,  
	odd_lot=<OddLot.Common: 0>,  
	ts='172247', 
	msg='NewQty_1' 
) 

Attribute

參數 資料型態 說明
order_id str 需要修改訂單的orderId。
price kgi.Price or float 欲改變的價格,默認為None,可參照create_order用法。
qty int 欲減少的數量,默認為None。

※注意,price和qty僅能輸入一個,qty僅能設定不超過當前剩餘待成交數量。

Return Attribute

當用戶提交改單請求後,系統將返回該筆委託對應的 Trade 物件,以便用戶持續追蹤該委託的最新狀態。
隨後,當市場處理完成並回報結果時,系統會主動推送對應的 Event 物件,用於通知改單是否成功以及相關資訊。