python历史波动率_历史波动率计算(旧文)
按照豆粕期權(quán)的說明,掛盤基準(zhǔn)價使用的波動率是按照波動率取期貨合約90天的歷史波動率
那么問題來了,如何計算波動率呢? 學(xué)過金融的朋友可能會覺得很容易,當(dāng)然的確很容易。但是如果是從計算機等學(xué)科過來的朋友,對于波動率可能不太熟悉。那么這篇文章就是簡單地介紹了歷史波動率的計算方式。具體實現(xiàn)可以用你熟悉的任何語言,我這里使用python偽代碼計算,里面的函數(shù)僅僅是表示概念,正確的函數(shù)名還需要去查程序包說明。
我們學(xué)過統(tǒng)計學(xué),知道給定一組數(shù)據(jù),什么叫做它均值,什么叫做它的標(biāo)準(zhǔn)差。均值的就是平均值,當(dāng)然也會被叫做期望,這就是它用E來表示的意思。E=Expectation。標(biāo)準(zhǔn)差表示這組數(shù)據(jù)偏離均值的程度,標(biāo)準(zhǔn)差的平方叫做方差(沒錯,就是標(biāo)準(zhǔn)差平方的縮寫),方差用Var表示,V=Variance。 而標(biāo)準(zhǔn)差 standard deviation 通常用希臘字母 Sigma的小寫表示。所以1個sigma的意思就是一個標(biāo)準(zhǔn)差。
均值和標(biāo)準(zhǔn)差都是標(biāo)準(zhǔn)的數(shù)學(xué)函數(shù)。在金融數(shù)學(xué)里,價格變化的標(biāo)準(zhǔn)差就被叫做波動率。當(dāng)然實際計算起來,并非直接把價格數(shù)據(jù)求標(biāo)準(zhǔn)差這么簡單。由于B-S公式假設(shè)了價格變化是對數(shù)正態(tài)分布,所以歷史波動率是對數(shù)價格差的標(biāo)準(zhǔn)差。再次聲明,代碼只是啟發(fā)性的,借用了Python的語法罷了。實際計算請自行編程。
def ComputeVolatility (contractData):
//包含多少天的標(biāo)的合約價格
nDays=contractData.length
//獲取每日收盤價(或者結(jié)算價)并存入數(shù)組
priceArray=contractData.close
//對價格取自然對數(shù)
lnPriceArray=[ln(x) for x in priceArray]
//以下表示取對數(shù)價格的差,并存在diffPriceArray數(shù)組中,
//我們忽略了邊界條件,實際 得到數(shù)組長度為nDays-1
for i in range(nDays)
diffPriceArray[i]=lnPriceArray[i]-lnPriceArray[i-1]
//計算波動率
sigma=standard_deviation(diffPriceArray) * sqrt(250/nDays)
return sigma
波動率就這么計算出來了。這里有兩點需要注意。歷史波動率使用的是收盤價還是結(jié)算價,更多取決于交易所的規(guī)定。時間長度也是根據(jù)合約的存續(xù)期自行決策,通常可以用30,60,90這些天數(shù)。你一定看出來了,這就是表示1,2,3個月的天數(shù)。
總結(jié)
以上是生活随笔為你收集整理的python历史波动率_历史波动率计算(旧文)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 拦截导弹
- 下一篇: python输出程序运行时间_叨叨 Py