iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
永豐金融APIs

永豐證API X Python系列 第 23

【D23】修改食譜#3:不知道來的客人是誰,先設定預設值

  • 分享至 

  • xImage
  •  

前言

在昨天的範本中,前提是先拿到期貨的交易資料,可是萬一是選擇權先到呢?我們那個弱弱的預設值是不太能用的,最好是一個真正的數值才是比較準。

本日程式碼使用:d23_set_default.py


增加功能函式-init_pirce

這次要用的方法是使用第12天的snapshot,就是把選擇權和期貨當下的值取得,然後當作我們的預設值,而這個函式就是init_pirce()

在這個方法中,會帶入兩個參數,分別是期貨和選擇權的合約,也就是昨天訂閱用的api.Contracts.Futures.TXF["TXF202110"]以及api.Contracts.Options.TX2.TX2202110016300C。詳細的程式碼如下:

def init_pirce(self, contract_txf, contract_opt):
    snapshot_txf = self.api.snapshots([contract_txf])
    snapshot_opt = self.api.snapshots([contract_opt])

    self.txf = snapshot_txf[0]["close"]
    self.diff = snapshot_txf[0]["change_pric"]
    print(f"The TXF price={self.txf}")

    self.txo = snapshot_opt[0]["close"]
    print(f"The TXO price={self.txo}")
)

取得snapshot資料後,就把這個收盤價當作預設值,並且記錄價差。這邊會記錄期貨和選擇權的收盤價價格,主要用來確定我們的資料是否正確。像是收到:

The TXF price=16777.0
The TXO price=515.0

於是上網檢查價格和點數是否正確,結果都正確,表示這個snapshot是可以用的!

修改主程式

增加新功能函式後, 我們就把這個加到我們主程式中,就可以設定我們的預設值囉~記得要在訂閱之前,不然預設值就是為0。

t = trader()
t.login()

t.init_pirce(
    t.api.Contracts.Futures.TXF["TXF202110"],
    t.api.Contracts.Options.TX2.TX2202110016300C,
)

上一篇
【D22】修改食譜#2:根據市價,模擬選擇權下單
下一篇
【D24】使用新廚具:bid and ask
系列文
永豐證API X Python31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言