為什麼update_order改單完,委託單就被cancel了

有任何提問的都來這
回覆文章
elsonly
文章: 18
註冊時間: 2021-09-01, 14:02

為什麼update_order改單完,委託單就被cancel了

文章 elsonly »

代碼: 選擇全部

$ help(api.update_order)

Help on method update_order in module shioaji.shioaji:

update_order(trade: shioaji.order.Trade, price: Union[pydantic.types.StrictInt, float] = None, qty: int = None, timeout: int = 5000, cb: Callable[[shioaji.order.Trade], NoneType] = None) -> shioaji.order.Trade method of shioaji.shioaji.Shioaji instance
    update the order price or qty

    Args:
        trade (:obj:Trade):
            pass place_order return Trade object to update order
        price (float): the price you want to replace
        qty (int): the qty you want to subtract
可以看到update_order的qty實際上是"減量"
qty 需小於原委託數量,如果qty=原委託數量,就相當於把這筆委託單cancel

如果只需要改價,update_order(trade, price="你要修改的價格")
如果只需要減量,update_order(trade, qty="你要減少的委託數量")
當同時要改價改量,才需要兩個參數都填上,update_order(trade, price="你要修改的價格", qty="你要減少的委託數量")
實際上上述委託會把它拆成2筆委託單分別送至交易所,如下圖
update_order.png
update_order.png (87.65 KiB) 已瀏覽 322 次
回覆文章