2013年10月23日 星期三

歷史波動率

 

接續前篇 選擇權評價-BS MODEL (with Excel) ,波動率主要有歷史波動率和隱含波動率兩種,此篇要先要紀錄的是歷史波動率。以 L 自己的交易心得來比喻波動率的話,瞭解波動率之前,看期權交易是方向和時間這二維的平面,瞭解波動率之後,看市場和策略像是立體的三維,方向、時間和波動。

 

在使用上,這個值不只對選擇權交易很重要,波動率本身就是選擇權評價重要的一個因素,不瞭解它的話,幾乎可以說別玩了。對於期貨交易也非常有參考價值,在期貨程式交易方面,也可以是不錯的濾網,甚至作為主要邏輯也可以。

 

歷史波動率的計算方法是: 一段期間內的收盤價計算的年化報酬率標準差,這句話不像中文,但其實不會很複雜,拿EXCEL作簡單的五日波動率範例,如下圖。

 

hv_EXCEL

 

步驟是

  1. 列出日期和收盤價

  2. 把收盤價取Log,紀錄在C欄,例如C7的公式是=LN(B7)

  3. 計算報酬率,就是Log相減,例如D7的公式是=C7-C6

  4. 計算五日標準差,例如E7的公式是=STDEV(D3:D7)

  5. 將標準差年化,例如F7的公式是=E7*SQRT(252)


 

這樣就計算好了,剛好可以看到這五日台指的歷史波動率算出來只有5.09%,真是低的可怕。

 

再來補充在Multicharts把歷史波動率寫成指標的語法,如下圖。

 

hv_id

 

計算就和上列的步驟一樣,這個指標可以算兩個期間的歷史波動率,參數是20和60,畫出來的圖如下。

 

hv

 

有了圖就可以觀察行情和波動率的走勢,一般來說,多頭時波動率低,空頭時波動率高。或是換個角度說,波動率高行情大,波動低行情小。以這樣的特性來說,就可以作為濾網和交易邏輯了。

 

深入一點的再紀錄,以上兩個範例計算最近的台指,五日是5.09%,二十日11.97%,表示台指波動是壓縮中(而且壓的很小),那這個波動率的數值意義是什麼?

 

以波動率10%來舉例,這是年化的(計算中有乘一個根號252),假設台指現在8400點,10%是840點,表示一年之後台指在7560~9240點(8400加減840點)的機率大約是68%,這個時間和空間可能比較沒概念。來算一個月的試試,10%是年化的,月的就再除根號12,等於2.89%,等於8400*2.89%=242點,表示一個月之後的台指在8158~8642點的機率是68%。那麼,假設你覺得台指的波動應該會大於這個幅度時,就應該作多波動率。

 

以上所述,要再嚴謹一點的說,68%就是正負一個標準差的常態分配下的機率,實際上指數分配並不是常態分配,這是另一個要深入的主題。要簡單明瞭的說,波動率越大就是波動大,比較會有行情,K線也可能比較大根,這樣就好了。

 

最後再整理一下,之後要繼續紀錄的是波動率在下列幾項的應用

  1. 作為程式的濾網

  2. 作為主要交易邏輯的測試 ( 歷史波動率策略設計 )

  3. 選擇權與隱含波動率  (隱含波動率 (with EXCEL VBA、C#) )


 

 

 

11 則留言:

  1. 站長您好,冒昧的請問一下,

    1.為什麼波動率年化是 *252的開更號?

    2.那如果不年化的話,看圖形是不是仍然能夠得到波動率大,K像長的結論(因為乘一個一樣的數值)

    回覆刪除
  2. hi,steve,
    252是交易日的日數,這篇例子是以交易日來計算的,如果你要用日曆日也可以,就乘根號365。
    若你想瞭解的是為什麼要開根號,可能就要請J來推導說明一下才會清楚,我並不是非常確定,怕會誤導。
    每個數值乘相同的數值可以看的出各別的大小,但任意數值會失去年化的意義,例子中有說明年化後的波動率代表的意思囉。

    回覆刪除
  3. 1.是的。我不明白為什麼要開更號。

    2.我會問( 如果不年化的話...)這問題,是因為我原始思考就沒有年化。當初我以為參數就已經代表一段期間了。哈哈哈

    Thanks

    回覆刪除
  4. HI,STEVE
    我問了J這個問題,他的回答是:
    "要解釋那個開根號年化的問題,關鍵是,假設每日的波動率是獨立的才成立(一般根號法的假設),
    因此變異數的可加性,使得每日標準差先平方變成變異數之後,乘上天數,再開根號就形成了。"


    這種統計公式的推論我自己有些都是記下來而已QQ

    舉個例來說明試試,如果有錯,J會糾正我。
    假設我們有了每日波動率 10,要算年化的波動率就是 10*(根號252) = 158.745

    詳細原因是,這個10是標準差,若要計算不同期間,要先轉回變異數,
    變異數就是標準差的平方 = 10*10 = 100,這個100 再乘天數 252 = 25200,
    求得年化的變異數,那年化的標準差就是再開根號,(根號25200) = 158.745,就算出來了

    這樣的解釋應該比較容易瞭解了QQ

    回覆刪除
  5. 明白。好像有勾起我統計學的一點回憶XD。

    關鍵是,假設每日的波動率是獨立的才成立(一般根號法的假設)--->這裡我在去查一下,不記得這個地方。

    感謝站長的回答。

    回覆刪除
  6. 您好,我測試了在 MC 裡的 LOG,但精確度好像只能到小數位兩位,導致結果和Excel結果差距頗大,不知道是否有可能提高 MC 的小數位呢?

    謝謝您

    回覆刪除
  7. 抱歉,我找到答案了,請您忽略我這個留言,謝謝您

    回覆刪除
  8. 請問L

    價格波動率 也就是 年度化標準差 如何計算

    stddev( c[1]/c -1 ,len )*根號 252 ;

    這樣對嗎

    另外 LEN 要取幾天ㄋ

    回覆刪除
  9. HI synn

    請參考
    歷史波動率2 – 期間選擇

    回覆刪除