こんにちは。こゆき(@yukilog00)です。
為替レートの相関行列をヒートマップで可視化しました。
ユーロズロチのスワップさや取りという戦略がありますが、
他の通貨ペアでも、相関が強くスワップ方向が合えば、同じ戦略がとれるのでは?
と思ったのが事の発端です。
条件
以下の条件でやります。
項目 | 条件 |
---|---|
通貨ペア | 私が裁量トレードで使用している「LIGHT FX」で取り扱っている通貨ペア。 ただし、TRY/JPY、ZAR/JPYとCNH/JPY(何故か取得できなかった)は除いています。 |
データソース | Yahooファイナンスから終値を取得。 |
期間 | 直近10年・5年・1年の3種類。 |
実装(python)
興味のない方は飛ばして、結果をご覧ください。
Jupyter Notebook(python)でやります。
ちなみに、私が普段、実績報告で載せているグラフもJupyterで作成しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
!pip install pandas-datareader #pandas_datareader.data のインポート import pandas_datareader.data as pdd import datetime # ヒートマップ作成用のインポート import seaborn as sns import pandas as pd import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt %matplotlib inline # ============================================================ # 通貨ペア定義 # ============================================================ # TRY/JPY,ZAR/JPYは除外 # CNH/JPYはなぜか取得できないため、除外 columns = ['USD/JPY(B)','EUR/JPY(S)','GBP/JPY(B)','AUD/JPY(B)','NZD/JPY(B)','MXN/JPY(B)','CHF/JPY(S)','CAD/JPY(B)','HKD/JPY(B)','SGD/JPY(-)','PLN/JPY(B)','NOK/JPY(S)','SEK/JPY(-)','EUR/USD(S)','GBP/USD(S)','AUD/USD(S)','NZD/USD(B)','EUR/GBP(S)','EUR/AUD(S)','GBP/AUD(S)','AUD/NZD(S)','USD/CHF(B)','EUR/CHF(B)','GBP/CHF(B)'] symbols = ['JPY=X', 'EURJPY=X', 'GBPJPY=X', 'AUDJPY=X', 'NZDJPY=X', 'MXNJPY=X', 'CHFJPY=X', 'CADJPY=X', 'HKDJPY=X', 'SGDJPY=X', 'PLNJPY=X' ,'NOKJPY=X' ,'SEKJPY=X', 'EURUSD=X', 'GBPUSD=X', 'AUDUSD=X', 'NZDUSD=X', 'EURGBP=X', 'EURAUD=X', 'GBPAUD=X', 'AUDNZD=X', 'CHF=X', 'EURCHF=X' ,'GBPCHF=X' ] # ============================================================ # 過去10年 # ============================================================ end = datetime.date.today() start = end + datetime.timedelta(weeks=-520) # 520週 = 10年 # Yahooファイナンスから、為替レートの取得 # https://finance.yahoo.com/lookup のSymbolから指定する df = pdd.get_data_yahoo(symbols, start, end)['Adj Close'] df.columns = columns # 相関行列 corr = df.corr() # ヒートマップ描画 plt.figure(figsize = (15,12)) plt.title('◆為替レート相関のヒートマップ(過去10年)◆', fontsize=20) sns.heatmap(data = corr, annot=True, cmap = "coolwarm", vmin=-1, vmax=1) |
startのweeks=-520を調整すれば、5年・1年に変更できます。
また、為替以外のSymbol を指定すれば、株などもヒートマップ化が可能です。
結果(相関行列ヒートマップ)
通貨ペアの括弧内は、プラススワップ方向を記載しています。(B:買い、S:売り)
直近10年

直近5年

直近1年

USD/JPY・HKD/JPYの相関が強すぎて、なにかの間違いかと思いましたが、
これは香港ドルが米ドルとのペッグ制を採用していることが理由でした。
みんなのFXのこちらのページに詳しく記載されています。勉強になりました。
欧州通貨のNOK/JPY(ノルウェークローネ)、SEK/JPY(スウェーデンクローナ)は
ユーロよりもAUD/JPY、NZD/JPY、CAD/JPYといった資源国通貨のほうが相関が強いということもわかりました。
NOK/JPYは売り方向がプラススワップなので、スワップさや取りに使えるかも。
コメント