記事内の画像はクリックすると拡大表示しますので見辛い場合は適宜拡大してご覧ください。クリックで拡大表示した画像は再度クリックすることで元のサイズに戻ります。
2022年からトレード履歴の画像は盗用対策の為、注目度は低いものの当事者しか知りえない情報である金利(スワップ)欄を一律黒く塗りつぶしています。金利は主にマイナスですがプラスもあり、記事の損益は金利分も合算した金額です。ご了承ください。
【無料】相関係数ランキングインジケーター(FX&CFD):kantan_CORR
相関係数ランキングインジケーター:kantan_CORR
kantan_CORRインジケーターの概要
ピアソンの積率相関係数の数式を用いて任意期間の任意銘柄(ペア)の相関係数を算出し、それを最も相関係数が強い順と最も相関係数が弱い順でそれぞれランキング形式でチャート左側に表示するMT4用(Version:4.00 build1421で動作確認済)のインジケーターです。
ピアソンの積率相関係数(Pearson Correlation Coefficient)とは
ピアソンの積率相関係数とは、2つのデータセット間に存在する線形関係の強さ及び方向性を表す指標になります。
-1から+1の範囲内でデータセットの値をとる事で次のような解釈が可能になります。
- r=+1: 完全な正の相関。データセットが完全に同じ方向に動く。
- r=−1: 完全な負の相関。データセットが完全に逆方向に動く。
- r=0: 相関がない。データセット間に線形関係がない。
ピアソンの積率相関係数の数式
ピアソンの積率相関係数は以下の数式で表す事ができます。
【分子】データポイントごとに偏差(データ値 – 平均値)を計算した上でその積を足し合わせます。これによって2つのデータセットの共分散を測定します。
【分母】偏差の2乗を合計してからそれぞれの平方根を取ります。これによってデータセットのばらつきの大きさを測定します。
MQL4における平均の計算:
for(int i = 0; i < period; i++) {
mean1 += data1[i];
mean2 += data2[i];
}
mean1 /= period;
mean2 /= period;
偏差の積分子と分母の計算:
for(int i = 0; i < period; i++) {
double dev1 = data1[i] - mean1;
double dev2 = data2[i] - mean2;
numerator += dev1 * dev2;
denom1 += dev1 * dev1;
denom2 += dev2 * dev2;
}
相関係数の計算:
if(denom1 > 0 && denom2 > 0)
return numerator / MathSqrt(denom1 * denom2);
else
return 0;
ピアソンの積率相関係数の特徴と注意点
特徴:
- 線形的な関係の強さを測定しr が1や-1に近いほど線形関係が強いことを示します。
- 値は無次元なのでスケールが異なるデータ間でも比較が可能です。
注意点:
- 非線形の関係を捉える事ができません。
- 外れ値がある場合に平均値や偏差が大きく変化すると相関係数が歪んでしまう可能性があります。
- 標本サイズが少ないと不安定になり誤った結論に至る事があります。
- 相関が高い場合でもそれ自体が因果関係を表してはいません。
ピアソンの積率相関係数の実用例
- 通貨ペアなどの相関モニタリング←今回のインジケーターはこれ!
- ポートフォリオ分散
- 予測モデルの検証
kantan_CORRインジケーターの導入
MT4にインストール後、インジケーター(kanta_CORR)をナビゲーターからチャートにドラッグアンドドロップしてください。
上図の様にチャート左側に現在最も相関係数が強い通貨ペア順と現在最も相関係数が弱い通貨ペア順(デフォルト設定ではそれぞれ上位から10個づつ)を表示します。
表示部分を拡大した画像です。相関が強い銘柄は緑色の文字、相関が弱い銘柄は赤色の文字で表示します。
パラメーター設定
kantan_CORRのパラメーター設定画面はこんな感じになっています。
【Look-back period】:デフォルトは30。過去どれくらいの期間を遡って計算するかを指定します(1時間足で期間30なら過去30時間)。基本的にはこのままでオッケーですが、期間を短くすればより直近の値動きから生ずる相関係数に敏感になりますし、期間を大きくすればその逆になります。
【Refresh rate in seconds】:デフォルトは10(秒)。kantan_CORRが相関係数を計算しチャートに表示させる時間間隔を設定する項目です。基本触る必要はありません。パソコンの動作が重たいかな?と感じた際はここの数値を大きくしてみてください。それだけ計算間隔が開くので負荷が低減されます。
【Number of correlations to display】:デフォルトは10。現在最も相関係数が強い通貨ペアと現在最も相関係数が弱い通貨ペアをそれぞれ上位から何番目までメインチャート上にリスト表示させるかを決めるパラメーターです。もっと沢山表示させたい場合は数値を増やしてください。20にすると強い弱いそれぞれ上位から20位までを表示します。或いは上位3位までで良い場合は3にしてください。
【User-defined pairs(comma-separated)】:計算する対象銘柄(通貨ペア)をここに半角英数字で入力します。ペアとペアの間は同じく半角英数のカンマで区切ってください。デフォルトではEURUSD,GBPUSD,AUDUSD,NZDUSD,EURGBP,USDJPY,EURCHF,GBPCHF,AUDCHF,NZDCHF,CADCHF,USDCHF,EURJPY,GBPJPY,AUDJPY,NZDJPY,CADJPY,CHFJPY,EURCAD,GBPCAD,AUDCAD,NZDCAD,USDCAD,AUDNZD,EURAUD,GBPAUD,EURNZD,GBPNZDを対象としています。必要性に応じて適宜増減してください。
通貨ペア以外でも利用可能
kantan_CORRをインストールしたMT4でチャート表示できる銘柄(気配値ウィンドウ一覧に表示されている銘柄)であれば、原則どれもピアソンの積率相関係数の対象となり、つまりチャート上の相関係数ランキングに登場させる事が可能です。
試しにSP(S&P500)とXAUUSD(GOLD)それにBRENTを追加したのが上図です。
尚、仮に色々と対象銘柄を増やしても最も相関が強い上位10位或いは最も相関が弱い上位10位にランクインしない限りは表示されません。またはパラメーター設定画面でランキング表示数を増やしてみても良いかもしれません。
kantan_CORRインジケーターを使ったトレード戦略
要は「相関係数が強いペア」と「相関係数が弱いペア」を上位から任意の数だけランキング表示させている訳ですので、このインジケーターをトレードで有効活用する為の使い方としては概ね以下のものが挙げられます。
トレンドフォロートレード
難易度:★☆☆☆☆
強い正の相関(または負の相関)にあるペアが同じ方向に動いている事を確認。例えばEURUSDとGBPUSDの相関が+0.9で同方向に動いている時、先にいずれかの銘柄が直近高値ブレイク或いは大きく動き出した場合に残された方(出遅れている方)の銘柄も即座にその動きに追随する可能性が高いので、そこを狙ってトレードしていく方法です。
分散トレード
難易度:★★☆☆☆
単純に相関係数から正の相関が強い銘柄と弱い銘柄そして相関関係が希薄な銘柄を抽出しリスクバランスに注意しながら建玉していく方法です。
例えばEURUSDとGBPUSDが+0.9の正の相関、USDJPYとEURUSDが-0.8の負の相関、AUDNZDが0.1の相関の時にEURUSDとGBPUSDで買いを建て、USDJPYで売りを建て更に独立系としてAUDNZDで買いを建てると言う戦略です(ポートフォリオを組むと言う事になります)。建玉後は相関係数の変動と全体の損益でリスクバランスを考慮し、予め決めておいた証拠金リスク(或いはポートフォリオ単位で決めたリスクなど)で決済する初心者向けのトレード方法と言えます。
ヘッジトレード
難易度:★★★☆☆
相関関係が強いペアを選択し片方を買い片方を売る。
例えばUSDJPYとEURUSDが-0.8以上の強い負の相関を示している時、USDJPYで買いを建てEURUSDで売りを建てます。その後相関が崩れた時の差益で両方の建玉を手仕舞い。方向性リスクを低減しつつ相関の崩れを狙う中級者以上向けのトレード戦略です。相関の崩れは往々にしてニュースイベントでよく起こりますので普段からニュースで各通貨ペアの相関がどの様に変動するのかを把握しておく必要があります。
同様に要人発言やニュースによる影響でEURが強含みGBPが弱含む場合はEURUSDを買いGBPUSDを売る事になりますが、この手の特定通貨の相関を利用する場合は相応のファンダメンタルズの知識も不可欠です。
またこれの発展形として異なる主要通貨でのバスケット売買という手法もあります。バスケットのメリットは特定の通貨に依存しないという点ですのでヘッジトレードの補完としても役立てる事できます。
スプレッドトレード
難易度:★★★★☆
相関関係が強いペア同士の価格差(スプレッド※単一銘柄のbidaskではない)を利用したトレード戦略。例えばEURUSDとGBPUSDが0.8以上の相関を示し尚且つEURUSDとGBPUSDのスプレッドが平均を逸脱した際に高値側を売り安値側を買います。実践にはこのインジケーター以外に過去データから算出したスプレッドの平均値と標準偏差を把握しておく必要があります。
仮にEURUSDとGBPUSDの平均スプレッドが10pipsで標準偏差が5pips、通常のスプレッド範囲を5~15pipsと仮定した場合、スプレッドが30pipsを計測すればそれは明らかに異常値なので高値側を売り安値側を買います。その後スプレッドが通常のスプレッドに戻れば利食いし、逆に異常値の30pipsより更に40pips50pipsと拡大すればあらかじめ決めておいたリスク水準にて損切りします。つまり異常値の最大幅も過去データから把握しておく必要があります。
決済時には片方が利益で片方が損失だが相殺して利益を得るケースが割合としては多いです。
玄人向けの戦略ですが価格変動によるリスクはかなり低減されますので好んでこの戦略を使うプロは一定数存在します。米雇用統計などマーケットインパクトが大きいニュースの前後でもしばしばスプレッドが異常値となる場合があるのでそうしたニュース機会だけを狙うスプレッドトレーダーなる存在も。
※ニュースにおけるスプレッド異常値からの平均回帰を狙うトレードでは
- 米雇用統計など特定ニュースの設定
- 過去にそのニュースで観測されたスプレッド変動の幅と平均値
- 変動の様態や平均回帰に要した時間
などのデータが追加で必要になりますし、精度向上を図るのであればニュース発表前後の動きも含めた分析を行うアルゴリズムが必要になるかもしれません。
余談ですが40歳でトレーダーに転身し引退するまでの35年間で10兆円を稼いだ天才数学者ジム・シモンズはニューストレードでこれに近いアプローチをとっていたのではないかと推察します(※スプレッドトレードは彼のアプローチの中のひとつでこれだけで10兆円稼いだ訳ではありません)。しかし彼と彼のファンドではニュース前後の値動きを、1つのニュースにつき数千以上に分類し統計データと確率を駆使して利益を取っていた様ですのでおよそ凡人には真似ができません。まぁそこまでしなくても低リスクアプローチは存在しているのでデータの質次第では近しい事ができるかと思います。
まとめ
数値で現在の相関係数を把握したい場合に適したインジケーターですが、短い時間軸ではランキングがころころとよく変わります。日足以下で時間軸が短くなればなるほどにそれが顕著になるので信頼性も当然ですが薄れてしまいます。
日足以下の時間軸で如何にノイズ(無駄な値動き)が多く含まれているかの証左とも言えますが、こうした時間軸での使用には十分注意してください。
kantan_CORRのダウンロード
相関係数ランキングインジケーター:kantan_CORRのダウンロードはこちらからどうぞ!
コメント