Skip to content

送出委託

要送出一般證券委託委託非常容易,透過 [商品檔].order(...).send() 即可

如果你要指定證券帳號,就在 send() 中放入使用者 ID

在還沒有 send 之前, 你會拿到 PendingOrder, Send 出去後會拿到的是 Order

python
api.logger.show = True

@api.start
def main():
    user: User = api.login(userId="A123456789", password="*************", tag="me")

    stock: Stock = api.stocks["2888"]
    order = stock.order(cst.ORDER.ACTION.BUY, 7.5, 1).send(user.id)
    
    print(f"order: {order}")
    print(f"order.price: {order.price}")
    print(f"order.status: {order.status}")
    print(f"order.qty: {order.qty}")
    print(f"order.deal_qty: {order.deal_qty}")
    print(f"order.remain_qty: {order.remain_qty}")
    print(f"order.canceled_qty: {order.canceled_qty}")
    
    
if __name__ == "__main__":
    main()

委託送出操作

stock.order(...) 函數對指定的 stock 建立一筆新的證券委託。

它接受數個參數來定義委託的具體屬性,例如買賣方向、價格、數量以及其他交易條件。

以下是 stock.order 函數常用的參數,其中部分參數需使用 委託常數 來指定:

參數說明範例
action委託方向 (買進/賣出)ORDER.ACTION.BUY
price委託價格 (元)10.5
qty委託數量 (張)1
period盤別 (盤中/盤後)ORDER.PERIOD.INTRA_DAY
flag委託類別 (現股/融資/融券/無券)ORDER.FLAG.CASH
price_type價格類別 (限價/市價)ORDER.PRICE.LIMIT
order_type交易類別 (ROD/IOC/FOK)ORDER.TRADE.ROD

委託範例

python
from eskmo import api

ORDER = api.const.ORDER

# ...

pending_order = stock.order(
    price=10.5,
    qty=1,
    action=ORDER.ACTION.BUY,        # 委託方向
  period=ORDER.PERIOD.INTRA_DAY,  # 盤別
  flag=ORDER.FLAG.CASH,           # 委託類別
  price_type=ORDER.PRICE.LIMIT,   # 價格類別
  order_type=ORDER.TRADE.ROD)     # 交易類別

# 若要實際送出委託,需要呼叫 .send()

stock.order(...) 本身只會建立 PendingOrder 物件,代表準備中但尚未送出的委託。

需要接著呼叫 .send() 方法才能將委託實際送出到市場。