今天研究了一下CBOE的VIX算法( http://www.cboe.com/micro/vix/vixwhite.pdf )

感覺不是很難懂,但是要怎麼推出這個擬合公式呢?

不知道~ 所以就先拿著CBOE給的公式湊著用

以下是看完白皮書的流程想法,有時間把它寫出來跟台選VIX做比對

 

        //1.  選擇權行情全接,關鍵資訊為近月、次月、次二月合約的Bid1和Ask1

        //2.1 使用Q=(Bid1+Ask1)/得出所有選擇權的中間價,Bid1或Ask1任一為0則不計算Q
        //2.2 依照月份和K配對,C跟P的Q(簡寫為Qc, Qp)算得CP價差(Qd)=Abs(Qc-Qp)
        //2.3 取該月份Qd最小者之K的C和P為F的計算依據,不同月份可能會得到不同的K
        //2.4 使用F=K+exp(r*T)*(C-P),C-P可能為負是正常的,F通常會帶一串無限小數
        //2.5 使用F向下取最接近的K作為K0(F使用的依據K跟K0可能是不同的履約價)

        //3.0 判斷各選擇權的Bid1是否可以被納入計算
        //3.1 K0為價平,該K的中間價為Qk0=(Qc+Qp)/2
        //3.2 Call向上取價外,遇到Bid1=0跳過,遇到連續兩個Bid1=0之後就不再向上取合約
        //3.3 Put 向下取價外,遇到Bid1=0跳過,遇到連續兩個Bid1=0之後就不再向下取合約(Put一樣使用Bid做判斷)

        //4.0 dK是依照被選取後的序列進行上下合約之K的差進行計算
        //4.1 舉例,因有Bid1而可以被選到的K有10500, 10550, 10650,再向上因10700, 10750的Bid1都是0而往上都不再被納入,
        //    則10550的dK=Abs((10500-10650)/2)=75,而10650因是最高K合約,所以簡單向下取與K(i-1)之K差,即dK=10650-10550=100
        //4.2 同理,下行的中間合約之dK也受上下合約之K影響,而最低K之dK則是取與K(i+1)之k=K差

        //5.0 T是以分鐘計算,分三部分:
        //5.1 Tc=今天至明天00:00的剩餘分鐘數(Current Day)
        //5.2 Ts=結算那天的分鐘數,因為有換約機制,所以CBOE不會遇到Tc和Ts是同一天的問題,台指期的尚待確定
        //5.3 To=其他剩餘交易日(完整日)
        //5.4 N=Tc+Ts+To, T=N/一年(365天)的分鐘數(T365)(525600)[常數]
        //5.5 可以預先計算並每分鐘更新[(Nt2-N30)/(Nt2-Nt1)]和[(N30-Nt1)/(Nt2-Nt1)]兩個值

        //6.0 R是無風險利率,CBOE使用美國國庫券殖利率,而不同月份的合約會使用到不同的殖利率
        //6.1 台灣我會使用台銀活期存款利率,計算有明顯偏誤再調整,利率對結果影響不大

        //6.2 感謝期交所的回覆,讓我得知這邊使用的是TAIBIR,依照月選當前的剩餘日曆日天期以四捨五入選擇最接近的TAIBIR天期利率

        //7.0 取得所有參數值之後,可以開始進入公式計算
        //7.1 sigma1^2 = (2/T1)*Summation{(dKi/(Ki^2))*exp(r1*T1)*Qki} - (1/T1)*[(F1/K0_1)-1]^2  
        //    [Tip:實際程式碼內可以不除上T1,因為在第8點會乘回來]
        //7.2 上段公式之參數名稱的"1"指近月,若是次近月則參數名稱都會帶"2"
        //7.3 (1/T1)*[(F1/K0_1)-1]^2可先單獨計算,每個月份當下各只有一個數值
        //7.4 CVi=(dKi/(Ki^2))*exp(r1*T1)*Qki為每個選擇權合約的貢獻值(Contribute Value),可記為Cache以便快速利用,
        //    其中r1, T1為每個月份的共有值,dKi, Ki, Qki為選擇權合約的自有資料,不共用
        //7.5 每分鐘因T1, T2, T3的改變,需要全部重算一遍之外,其餘時間除非該選擇權合約有行情進入,造成以下情況才須部分重算:
        //7.5.1 Bid1和Ask1改變,造成Qki改變,需自我重算
        //7.5.2 若行情是F的參考K之C或P,則F要重算
        //7.5.2 新的Qki產生後需要比對CP價差(Qd),若有產生新的最小Qd,則會影響F的參考依據,進而影響K0的位置(可能變可能不變)
        //7.5.3 若因K0位置改變,則須重新計算新的K0之Qki(改為(Qc+Qp)/2),原本的K0'則要改成可能純用Qc或純用Qp
        //7.5.4 若有Bid1新出現或在後續行情完全消失,則會影響自己本身,連同上下兩檔合約的dK需做調整

        //8.0 使用內插法取得VIX
        //8.1 取得sigma1^2和sigma2^2之後,使用Sqrt({T1*sigma1^2*[(Nt2-N30)/(Nt2-Nt1)]+T2*simga2^2*[(N30-Nt1)/(Nt2-Nt1)]}*(N365/N30))*100可得VIX
        //8.2 T1*sigma1^2*[(Nt2-N30)/(Nt2-Nt1)]為近月sigma1內插至30天後的擬和VIX佔比 [Tip:如果在第7.1點沒除上T1的話,這裡就可以不用乘上T1]
        //8.3 T2*simga2^2*[(N30-Nt1)/(Nt2-Nt1)]同理於8.2
        //8.4 使用(N365/N30)將內插後的sigma30^2年化,最後開平方根再乘上100可得VIX

2019.07.10 我寫信給期交所請教一些問題,沒想到隔天中午馬上收到期交所的回電,對話中釋疑了部分的問題:

1. 換月問題:期交所目前的換月機制是近月用到底,但不會用到最後一天,這部分仍是沒有說明得非常切確。期交所解釋主要是依照OI的轉倉量來決定哪一天修改VIX的組合月份,我聽他這樣說的意思再反推市場的現況,通常是持有到到期前一天才會有大量轉倉。綜上所述,合理推估應是使用到每個月第三個禮拜「二」,禮拜三直接換次月和次二月,到了禮拜四近月已經在禮拜三結算,所以就又會變回近月跟次月的關係。

2.T_CurrentDay跟T_SettlementDay同一天的問題:如第一點所述,因為不會用到最後一天,所以不會發生這個問題,因此T_CurrentDay就是一定為當天至午夜,T_SettlementDay就一定是結算當天的分鐘數。

3.利率(R)的選擇:6.1我原本預設是想用台銀活期存款利率(很Low哈哈),經期交所解釋,使用的是集保結算所的TAIBIR,上網查了可以發現有不同天期可供選擇,考量到利率內插實在是吃力不討好(也許用Matlab會輕鬆些XD),就直接用最近天期來計算就好,其實可以這樣隨興,很大的原因在於利率的影響不會非常大,或許未來台灣有出以台指VIX為標的的ETF時,就會需要更加精算了。

arrow
arrow
    文章標籤
    VIX
    全站熱搜

    wings890109 發表在 痞客邦 留言(0) 人氣()