在昨天的範本中,前提是先拿到期貨的交易資料,可是萬一是選擇權先到呢?我們那個弱弱的預設值是不太能用的,最好是一個真正的數值才是比較準。
本日程式碼使用:d23_set_default.py
這次要用的方法是使用第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,
)