iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
永豐金融APIs

永豐金API之30天不中斷Q&A系列 第 8

Day8 - 如何讀取委託回報、成交回報

你還在看,真有心,來吧! 我們一起牽手向前行!

讀取委託回報,通常下單(raplace order)的時候,就會有一個回覆了。
下單後,有下列這幾種回覆情況。

  • PendingSubmit: 傳送中
  • PreSubmitted: 預約單
  • Submitted: 傳送成功
  • Failed: 失敗
  • Cancelled: 已刪除
  • Filled: 完全成交
  • Filling: 部分成交

例如這個範例(執行前可以先改一個芭樂價例如0.1元,避免意外?):

import shioaji as sj

api = sj.Shioaji()
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD", contracts_timeout=10000)
api.activate_ca(
    ca_path="/c/your/ca/path/Sinopac.pfx",
    ca_passwd="YOUR_CA_PASSWORD",
    person_id="Person of this Ca",
)

contract = api.Contracts.Stocks.TSE.TSE2890
order = api.Order(
    price=14,
    quantity=1,
    action=sj.constant.Action.Sell,
    price_type=sj.constant.StockPriceType.LMT,
    order_type=sj.constant.TFTOrderType.ROD,
    first_sell=sj.constant.StockFirstSell.Yes,
    account=api.stock_account
)
trade = api.place_order(contract, order)
trade

正常後,執行下單後會看到回覆(當然訊息不一定相同啦,要看有沒有成交之類不同情況嘛)。例如長這樣:

紅色框框就是這個order當時狀態。對照我們上面的說明,得知狀態是"傳送中"。

如果下單執行後就成交了,應該會看到類似下列回傳訊息:

如果要查詢下單訊息,請呼叫api.update_status,就會看到了。範例如下:
api.update_status(api.stock_account)

好了,連假剛結束。今天這樣就好了,我們認真點,只要再16天就可以放國慶假了,YA~


上一篇
Day7 - 什麼是Snapshot及如何使用
下一篇
Day9 - 期貨contract及讀取報價方式
系列文
永豐金API之30天不中斷Q&A26

尚未有邦友留言

立即登入留言