iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
永豐金融APIs

當金融與API相遇會擦出什麼火花?系列 第 23

<Day23> 如何 更新 or 修改or 取消 委託單?

● 這章會示範如何更新及修改委託單

接續上一章
我們學會了如何下單
這章會示範怎麼去更新及修改已下好的委託單

更新委託單

如果想得知委託單最新的狀態
勢必得更新委託單的資訊
更新委託單的程式碼如下

api.update_status(api.stock_account)   #更新委託單狀態
print(trade)

顯示結果如下

 status=OrderStatus(
 id='61508caf', 
 status=<Status.Submitted: 'Submitted'>, 
 status_code='00', 
 order_datetime=datetime.datetime(2021, 10, 7, 18, 2, 24), 
 deals=[])

可以看到委託單的狀態由原本的PendingSubmit更新為Submitted

交易狀態有以下幾種

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

修改委託單

假設我們想修改委託單的內容、價格、數量
程式碼如下

api.update_order(trade=trade, price=12, qty=2) #修改委託單,將買入價改為12,數量改2張
api.update_status(api.stock_account) #更新委託單狀態
print(trade)

顯示結果如下

status=OrderStatus(
id='d0a68538', 
status=<Status.Submitted: 'Submitted'>, 
status_code='00', 
order_datetime=datetime.datetime(2021, 10, 7, 18, 31, 51), 
modified_price=12.0, 
deals=[])

取消委託單

如要取消委託單請參考以下程式碼

api.cancel_order(trade)
api.update_status(api.stock_account)
print(trade)

顯示結果如下

 status=OrderStatus(id='baa2a8d0', status=<Status.Cancelled: 'Cancelled'>, status_code='00', order_datetime=datetime.datetime(2021, 10, 7, 18, 43, 13), modified_price=12.0, cancel_quantity=1, deals=[])

上一篇
<Day22>用Shioaji API模擬帳戶做台股下單
下一篇
<Day24> 什麼是上市、上櫃、興櫃?什麼是ROD、IOC、FOK?
系列文
當金融與API相遇會擦出什麼火花?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言