在台指期、台指選中,結算日通常訂為第三個禮拜三,如果我們今天有選擇權的資料,欲計算其時間價值,就需要找出結算日。
使用版本為 Python3.51
需要安裝套件 datetime
程式碼如下:
import datetime as dt
def third_wen(y,m): # 此函數需參數 年 及 月
day=21-(dt.date(y,m,1).weekday()+4)%7 # weekday函數 禮拜一為0;禮拜日為6
return dt.date(y,m,day)
print(third_wen(2016,5)) # 會 print 出 2016-5-18 為五月份第三個禮拜三
以這個月為例,五月份第一天為禮拜日,第一行dt.date(y,m,1).weekday()回傳值為6;
帶入運算 (6+4)%7 餘數為 3;
再用原來的21-3=18,得出五月份的結算日5月18日
接著來找尋剩餘天數
print(third_wen(2016,5)-dt.date.today()) # 今天持有201605 契約的時間價值
如要將此時間價值帶入B-S model 中,須再將時間年化(天數除以365)
目前測試日期都可依此函示推倒出來,不過假如結算日>21 或 小於14,
本函式將會無效,可能需要額外手動判斷。