在下單之前,我們得先定義委託單
一樣以"永豐金"為例,代碼「2890」
我們要先建立委託單物件並命名為order
程式碼如下
contract = api.Contracts.Stocks["2890"] #用contract取得股票資訊
order = api.Order(
price=13.9, #委託買入價格
quantity=1, #委託買入張數
action="Buy", # 買or賣
price_type="LMT", #價格類別
order_type="ROD", #訂單類型
order_lot="Common", # 整股or零股
account=api.stock_account #代入帳號
)
接下來就可以進行下單了
下單的程式碼如下
trade = api.place_order(contract, order) #將contract及order丟入place_order方法中並命名為trade
print(trade) # 輸出trade結果
輸出結果如下
為了更清楚表示輸出結果,另外打在下面
#股票資訊
contract=Stock(
exchange=<Exchange.TSE: 'TSE'>, #TSE: 上市公司(OTC為上櫃,OES為興櫃)
code='2890', #代碼
symbol='TSE2890', #股票代碼
name='永豐金', #股票名稱
category='17', #股票類別
unit=1000, #單位數量
limit_up=15.25, #漲停價
limit_down=12.55, #跌停價
reference=13.9, #參考價
update_date='2021/10/07', #最後更新日期
day_trade=<DayTrade.Yes: 'Yes'>) #可否當沖
#委託單資訊
order=Order(
action=<Action.Buy: 'Buy'>, #買or賣
price=13.9, #委託買入價格
quantity=1, #委託買入張數
id='0c78626e', #識別號
seqno='099185', #流水編號
ordno='WA041', #訂單編號
account=Account(
account_type=<AccountType.Stock: 'S'>, #帳號類型
person_id='PAPIUSER02', #個人帳號
broker_id='9A95', #委託商帳號
account_id='0504486', #帳號識別碼
signed=True), #是否簽署
price_type=<StockPriceType.LMT: 'LMT'>, #價格類別
order_type=<FuturesOrderType.ROD: 'ROD'>) #訂單類型
#目前委託狀態
status=OrderStatus(
id='0c78626e', #識別碼
status=<Status.PendingSubmit: 'PendingSubmit'>, #委託單狀態
status_code='0', #狀態碼
order_datetime=datetime.datetime(2021, 10, 7, 16, 54, 49), #委託時間
deals=[]) #成交狀態