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

Hack for Trade

トレーディング素人のエンジニアがフルスクラッチでシストレツールを開発・運用する予定のブログです。

AUDUSD&USDJPYが最強? - どの通貨ペアを使ってポートフォリオを組むべきか

予測精度が良いモデルを組めたとして、どの通貨ペアを使ってポートフォリオを組むべきなのか?はポートフォリオ全体としてのリスクを減らして安定運用するために非常に重要な問題です。通貨ペア間の間には様々な関連性があり、良い通貨ペアを選択することは難しい問題だと思っています。今回は、暴落暴騰時の通貨ペア間の相関性という観点から好ましい通貨ペアを見つけるという試みを試してみようと思います。

仮説

暴落・暴騰時に影響を受けにくい(=相関性の低い)通貨ペアをポートフォリオとして組むことにより、ポートフォリオの安定性は向上するはず。

検証方法

今回は、暴落・暴騰時の相関性の低い通貨ペアを探すことにのみフォーカスします。検証する通貨ペアは手元にデータのある6ペアAUDJPY, AUDUSD, EURJPY, GBPJPY, GBPUSD, USDJPY, 時間軸は1時間足。検証期間は2007~2017年の10年間です。各通貨ペアにおいて、0.0001, 0.001, 0.01, 0.1パーセンタイル以上の値動きの幅(abs(Close(t) - Close(t-1)))のときの他の通貨ペアとの相関を見ます。

  • 実際に発見した通貨ペアでのポートフォリオを組んでバックテストを走らせた上でシャープレシオの比較を行うことができればベストなのですが、僕はまだ安定して利益の出るモデルを組めてないので今回は省略します。悲しい。

前提

各通貨ペアのボラティリティがどのようなものになっているかプロットしておきます。window=9のヒストリカル・ボラティリティの1ヶ月平均のはこのようになっています。

Pair Avg.Volatility
AUDJPY 0.137
AUDUSD 0.110
EURJPY 0.104
GBPJPY 0.110
GBPUSD 0.077
USDJPY 0.085

時系列で見ると

Kobito.ABzcps.png

ヒストグラムはこちら

Kobito.4A00Pz.png

結果

at/通貨ペアのカラムが暴落・暴騰しているペア、各行がその時の他の通貨ペアという表示になっています。非常に面白い結果が見えたなと思いますがいかがでしょうか?

threshold = 0.1

Kobito.6iOO3D.png

AUDJPY & GBPUSD, AUDUSD & USDJPY, USDJPY & GBPUSDがとても良さそうなペアですね。

threshold = 0.01

Kobito.1C44sU.png AUDUSD & USDJPY, USDJPY & GBPUSD は続けて好調。一方AUDJPY & GBPUSDの相関性は比較的大きくなってます。

threshold = 0.001

Kobito.oGy7v9.png AUDUSD & USDJPY, USDJPY & GBPUSDは続けて好調。他の通貨ペアは軒並み相関係数0.8超えているものが多いですね。

threshold = 0.0001

Kobito.Qje142.png サンプル数がかなり少ないのでアレですが参考までに。AUDUSD & USDJPYは続けて好調。USDJPY & GBPUSDも比較的良さそうですね。ただし、USDJPYが暴落暴騰した際にはすべての通貨ペアが高い相関を持っています。

結論

AUDUSD & USDJPYペアが最も安定して相関が低く良いポートフォリオを組めるのではないか。という結果になりました。次点でAUDJPY & GBPUSD, AUDUSD & USDJPYのペアでしょうか。

Appendix 1

参考までにUSDJPYの暴騰暴落時の他の通貨ペアとの相関の様子をプロット+回帰したものをこちらに。

threshold=0.1

f:id:yss44:20170427123725p:plain

threshold=0.01

f:id:yss44:20170427123810p:plain

threshold=0.001

f:id:yss44:20170427123835p:plain

threshold=0.0001

f:id:yss44:20170427123853p:plain

Appendix 2

最近はずっとトレンド推定用のDeepLearningモデルの構築をしていて気がついたら全然ブログを書けてなかった。現在開発しているモデルは1時間後のトレンドを70-75%の精度で予測してくれるのですが、トレンドの推定だけでは勝てないのがまた面白いところ。つらい。別の切り口からモデルの再構築をしています。その話もいずれ記事にしたいところですね。

移動平均乖離率インジケータとして優秀なの?リターンの相関関係について調べてみたよ。

今回はUSDJPYの移動平均乖離率とリターンとの関係性について調べて見ました。移動平均乖離率はうまく機能するとの文面を見受けましたが、実際にどれくらい機能しているものなのかよくわからないサイトが多く見受けられたので、実際にどんなものになるのか試して見ました。

使用したデータは前回と同様histdata.comから。

仮説

移動平均乖離率が有効に機能しているならば、N期間後のリターンとの間に何らかの相関関係が存在しているはず。因果関係があると言えるかはまた別の問題となりますが、まずは取っ掛かりとしては十分でしょう。 定常的な相関関係になってはいないはず。そんな簡単に定常的な相関になっていたら予測なんてもっと簡単にできてるはずだよね。

検証方法

年(2014-2016)、タイムフレーム(10Min-1D)、移動平均期間(5-200)、リターン計測期間(1-100)、の4項目(計4284)で相関係数を算出してみました。

結果

興味深い結果になりました。年によって大きく相関のトレンドが変わっているみたいですね。2014, 2016年は負の相関関係、2015年度は性の相関関係の年だったようですね。

相関分布図 2014-2016/USDJPY/1Hour

青=2016, 赤=2015, 緑=2014年になります。年に酔って大きく相関の方向性が変わっていることがよくわかりますね。

Kobito.WErWQU.png

相関分布図 2016/USDJPY/10Min,15Min,30Min

10Min=赤, 15Min=緑, 30Min=青

Kobito.tPv5OE.png 15-25の移動平均期間、リターン計測期間あたりに負の相関が強そうな箇所が散見されますね。

相関分布図 2016/USDJPY/1H,3H,6H

1H=赤, 3H=緑, 6H=青

Kobito.o0avtd.png

6Hの外れ値は計測期間がタイムフレームに対して短すぎたための結果ですかね。全体的に見にくくなってはいますが、長期のリターン計測期間ほど、負の相関関係になっている傾向がありますね。

考察

  • 相関の強い期間、弱い期間が時期、移動平均期間、リターン計測期間によって分布している。
  • 同一時期でも、移動平均期間やリターン計測期間によっては相関が逆になる場所も存在している。
  • 期間によって相関の方向や、強さが大きく変化しているのでマーケットの特徴をよく表してくれているような気がします。単体では全く使い物にならないので、他のインジケータと組み合わせて使いましょう。

以上。

あとがき

先週末に、予測性能が90%以上出るモデルができて、未来の値の先読みをしているバグを見つけるために2,3時間費やしました。辛い。jupyter notebookで気軽に書いているとたまにこういうことになって、ユニットテストの大切さが身にしみます。

AutoEncoderで次元圧縮して、K-Meansで分類して勝てるマーケットを探すみたいなことをしていたのですが、あまり成果はよくありませんでした。取引機会の~2%で56%で予測できるはできるモデルができた気がしたのですが、あまりにも取引頻度が少なすぎたのでウォークスルーテスト走らせる前に一度断念して、迷走中です。

そのことについてもブログ書きたいなと思いつつ。