テクニカル指標の計算

概要

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

データの取得

セントルイス連銀先生から取得.
今回は為替レート(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

Ctrl + Shift + Enterを使いこなす

概要

・意外と知られていない(自分の周りだけかもしれないが)エクセルの行列計算を使った計算について

使用例1: 条件にあう数値だけ合計する

140215_1

なんでも良いんですが例えば上図のようなデータがあったとして
「2000年より前のSalesを合計したい」
とする.そういう時は合計を表示したいセルに

と入力してCtrl + Shift + Enter
sum文の中のif文で,A列(年)が2000より小さかったら1,そうでなかったら0のフラグを立て,同時にそのフラグにB列のSalesをかけています.
条件付きのsumproductみたいなイメージですね.

使用例2: 条件にあう数値だけ平均する

averageにも同じ方法を用いると条件に満たない数値に0が代入されているため,求めたいものと異なる平均を計算してしまう.

同様に
「2000年より前のSalesの平均を計算したい」
とした場合は,以下のようになる.

計算するときにCtrl + Shift + Enterを押すのを忘れないように.
やっていることとしては,まずif文で2000年より前だったら1のフラグを立てます.ただしこの条件を満たさなかった場合はNAとします(0ではない).
average関数はNAを含むベクトルに対しては計算が出来ないので,iferror関数をつかってNAを空白セルへと置き換えます.
そして最後にaverage関数で囲ってあげることで平均を計算しています.

これからも快適なエクセルライフを!

Enjoy!!

NFP1月レビュー: VARごときでは予測できない編

概要

・NFPは意外と奥が深かった.
・詳細はプロの方がまとめてくださると思いますが,自分でも備忘録がてら色々メモ

前回の予測と結果

予測
1月分ADP: 217k
1月分NFP: 231k

結果
1月分ADP: 175k (予測比-42k)
1月分NFP: 113k (予測比-118k)

ということで目も当てられない予測結果となりました.
予測した時の記事は↓

[R]VAR(ベクトル自己回帰)で非農業部門雇用者数を予測する
http://nekopuni.holy.jp/?p=934

奥深きNFPの世界

どうやら今回1月分のNFPは曲者だったらしい

1月分 公表文
http://www.bls.gov/news.release/pdf/empsit.pdf

pdfのurlは最新の公表文のリンクとなりますので,2月分が公表されたらリンク先の内容が変わります.
過去公表分のアーカイブに関しては下記サイトを参照.
Employment Situation Archived News Releases
http://www.bls.gov/schedule/archives/empsit_nr.htm

pdf1ページ下部にありますように,

『Establishment survey data have been revised as a result of the annual benchmarking process and the updating of seasonal adjustment factors. Also, household survey data for January 2014 reflect updated population estimates. See the notes beginning on page 4 for more information about these changes.』

ということで,ベンチマーク改訂・季節調整の改訂・人口推定の改訂と3重の改訂が重なっているとのこと.
(後述しますがあとは天候要因もあるかと)

1. ベンチマーク・季節調整の改訂

今まで調査対象外であった,高齢者・障害者に対するサービス業(要は介護業ですかな)の中で,個人事業雇用(private household employment)が対象に組み入れられる.これにより,2013年3月時点で347kの上方改訂となる(季節調整後で369k).
こちらは過去データに渡り値の改定が行われる.

一応原文

『The total nonfarm employment level for March 2013 was revised upward by 369,000 (+347,000 on a not seasonally adjusted basis, or 0.3 percent). The average benchmark revision over the past 10 years was plus or minus 0.3 percent.
This revision incorporates the reclassification of jobs in the QCEW. Private household employment is out of scope for the establishment survey. The QCEW reclassified some private household employment into an industry that is in scope for the establishment survey—services for the elderly and persons with disabilities. This reclassification accounted for an increase of 466,000 jobs in the establishment survey. This increase of 466,000 associated with reclassification was offset by survey error of -119,000 for a total net benchmark revision of +347,000 on a not seasonally adjusted basis. Historical time series have been reconstructed to incorporate these revisions. 』

2. 人口推定の改訂

こちらも年1回で改定されている模様.移民・人口動態の更新・他の情報・人口推定過程の手法の変更などに伴う改訂とな.
しかもこちらはベンチマーク改訂と異なり,過去データの改訂を行なわれないとのこと.

『The change in population reflected in the new estimates results from adjustments for net international migration, updated vital statistics and other information, and some methodological changes in the estimation process.
In accordance with usual practice, BLS will not revise the official household survey estimates for December 2013 and earlier months.』

ただし,どの程度のインパクトがあるのかを見せるために,古い人口推定と,新しい人口推定での差を2013年12月に関しては示してあります.労働力人口で24kの増加.そのうち雇用者数が22kの増加分,非雇用者が2kの増加分と.また,労働力人口ではない部分で22kの減少となりまして,ネットでは2k(24k – 22k)の増加のインパクトがあるとのことですかな(― ―)

3. 悪天候

雇用統計の調査対象期間は12日を含む週(日曜からカウント)と確かなっていたはずで(調べたのですがイマイチヒットせず…),1月分に関しては12日~18日が調査週でした.
12月NFPや1月ISMや1月ADPなどなどやたら寒波のせいにされている感があるのですが今回のNFPにも影響があったのかどうかは専門家の意見待ちということで汗

でどうする

正直ベンチマーク改訂や人口推定の改訂は,雇用者数の系列の過去の推移とは関係なく外部的に与えられる影響ですしこれをモデルに組み込むのってどうなのよと思わないわけでもないわけですが,そもそも12ヶ月に1回しか改訂されないわけですしその辺の増分に関しては予測者側の立場から言えば神のみぞ知る世界的なものでありましてそこには手を出さないほうが吉かなあと思う次第.

とりあえずは,現行のVARモデルをしばらくゴニョゴニョする方向で行きたいと思います