テクニカル指標の計算

概要

・テクニカル分析でよく使われる(であろう),移動平均とリアライズド・ボラティリティの計算

データの取得

セントルイス連銀先生から取得.
今回は為替レート(USDJPY)を使ってみます.

Japan / U.S. Foreign Exchange Rate (DEXJPUS) – FRED – St. Louis Fed
http://research.stlouisfed.org/fred2/series/DEXJPUS/

適当にデータを変換し,とりあえずxts型としておきます.

移動平均の計算

過去x日間の平均を計算していったもの.ローリング平均とも呼ばれることも.
よく使われるのは「20日移動平均」「200日移動平均」といったものでしょうか

実際の計算は,ここで定義したgetMovingAverage()関数で計算します.
第1引数に元データ,第2引数はウィンドウということで何日平均を計算するかを指定します.

リアライズド・ボラティリティの計算

ヒストリカル・ボラティリティや実現ボラティリティとも呼ばれますね.
ボラティリティの計算には標準偏差を用いることが多いですが,為替レートそのものの標準偏差ではなく,通常は日次リターンの標準偏差をボラティリティとします.

移動平均のときと同様の引数を指定します.
変数retで一旦日次リターンを計算した後,volにその標準偏差を格納するようにしています.

plotしてみる

適当にまずは移動平均とボラティリティを計算し,元データ(fx)と合体させます
ボラティリティに関してはsqrt(250)を乗算することで年率化しています.250日は1年間の大体の営業日数ですね.

全期間の計算結果を表示すると以下

140222_1

移動平均が上図,ボラティリティが下図です.
上図の黒線がUSDJPYのレート,赤線が20日移動平均.緑線が200日移動平均を表しています.
過去20日(または200日)を観測し,平均を計算しているため,遅効性があることが分かります.

下図の黒線が20日ボラティリティ,赤線が200日ボラティリティです.
200日ボラティリティに関しては大体年率10%~15%くらいのところで安定していることが分かります.
ただしITバブルのあたりや,リーマン・ショックのあたりではボラティリティが20%近くまで上昇しています.

ちなみに2013年以降の分を表示すると以下

140222_2

2013年6月はFRBのバーナンキ元議長のテーパリング発言も相まって一時的に95円ほどまで円高に振れました.
ただし10月後半に200日移動平均(緑線)に触れたあたりでまた円安に転じています.
この辺りからも200日移動平均が一つの目安として使われている所以ですかね.

参考

xtsパッケージで時系列解析
http://www.slideshare.net/teramonagi/tokyo-r15-20110702