送出委託
要送出一般證券委託委託非常容易,透過 [商品檔].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()
方法才能將委託實際送出到市場。