読者です 読者をやめる 読者になる 読者になる

株初心者が本気で儲けるブログ

株式投資に関連するテーマについて取り扱ってます。

【R言語】 Rによるヒストリカルボラティリティ(HV)の算出

 

今回はRを使ったヒストリカルボラティリティの算出方法を紹介していきます。

 

 

ヒストリカルボラティリティとは何ぞやという方は下の記事で解説しています。

 

www.dmjtmj-stock.com

 

コードは(Rでヒストリカルボラティリティの計算 - 日常メモ様)から拝借致しました。

 

 

# Calculate HV
getHV <- function(stockPrice, hvLength){
# 株価前日比
roc <- stockPrice/lag(stockPrice, k=1)

#HVを20日間計算
hv<-rollapply(roc, hvLength, sd)*sqrt(250)

return(hv)
}

 

 

これで、getHV(オブジェクト名,計算期間)で、ヒストリカルボラティリティを計算してくれます。

 

 

試しに私の持っている株価データでHV計算にしてみます。ちなみに使うのはソニーの株価データで、株価データの取得方法は下の記事で紹介しています。

 

www.dmjtmj-stock.com

 

 

 この方法で取得した株価データの終値だけ引き抜いたデータを使います。

> t.sony
Close
2005-01-04 3990.0
2005-01-05 3990.0
2005-01-06 3960.0
2005-01-07 4020.0
2005-01-11 4060.0
2005-01-12 4030.0
2005-01-13 4020.0

 

 

エクセルから読み込んだ株価データでする場合はclassが、data.frameなのでas.xts()で時系列データに変換するとうまくいきます。

 

 

この手の分析でコードは間違っていないはずなのにうまくいかないときは大抵データの種類(class)が時系列データじゃないというのが、個人的経験則から原因の80%くらいを占めると思うので、まず確認してみてください。

 

 

与太話はこのくらいにして、いざ getHV() を使ってみます。

 

> getHV(t.sony,20)


Close
2005-01-04 NA
2005-01-05 NA
2005-01-06 NA
2005-01-07 NA
2005-01-11 NA
2005-01-12 NA
2005-01-13 NA
2005-01-14 NA
2005-01-17 NA
2005-01-18 NA
2005-01-19 NA
2005-01-20 NA
2005-01-21 NA
2005-01-24 NA
2005-01-25 NA
2005-01-26 NA
2005-01-27 NA
2005-01-28 NA
2005-01-31 NA
2005-02-01 NA
2005-02-02 0.1626475
2005-02-03 0.1645267
2005-02-04 0.1706176
2005-02-07 0.1715381
2005-02-08 0.1746532
2005-02-09 0.1836491
2005-02-10 0.1841804
2005-02-14 0.1926153
2005-02-15 0.1926272
2005-02-16 0.1926300
2005-02-17 0.1924580
2005-02-18 0.1890958
2005-02-21 0.1511884
2005-02-22 0.1313569
2005-02-23 0.1359984
2005-02-24 0.1343506
2005-02-25 0.1319003
2005-02-28 0.1332500
2005-03-01 0.1341756
2005-03-02 0.1345836
2005-03-03 0.1339806
2005-03-04 0.1335197
2005-03-07 0.1236861
2005-03-08 0.1790453
2005-03-09 0.1764972
2005-03-10 0.1831721
2005-03-11 0.1807379
2005-03-14 0.1752821
2005-03-15 0.1739963
2005-03-16 0.1772381
2005-03-17 0.1808753
2005-03-18 0.1809083
2005-03-22 0.1850224
2005-03-23 0.1865531
2005-03-24 0.1960850

 

 

シンプルな計算式で実に便利です。他のプログラムに組み込んで使うときは、NAは除去しておかないとエラーの原因になるので、NAを除去させるようにしておいたほうがいいです。

 

 参考http://d.hatena.ne.jp/graySpace/touch/20160401/1459493597

 

 

 

追記:Rで金融データを解析するのであれば、この本がとても分かりやすかったので是非どうぞ

 

www.dmjtmj-stock.com

www.dmjtmj-stock.com