FX、株、商品で分散投資:相関係数の推移をまとめてみた

FX、株、商品で分散投資:相関係数の推移をまとめてみた
分散投資――。やってる人はけっこういると思います。が、「この銘柄同士は逆相関の傾向が強いよね――」とか、「株と金は逆相関らしいから――」という感覚で分散している人がけっこう多いのではないでしょうか。今回は、「相関ってしっかり測るとどんな感じなの?」について掘り下げてみようと思います。

相関係数の推移をまとめてみた

  1. 相関係数とは
  2. 相関係数の推移
  3. 算出方法
  4. インタラクティブなグラフ
  5. 日々の相関係数はこちら
  6. まとめ

1.相関係数とは

*「相関係数知ってるよ」という方は、飛ばしてください。

「分散投資」という言葉を聞いたことがある方は多いと思います。それに対して、「相関係数」という言葉を知っている方は意外と少ないんじゃないでしょうか――?

株と金は「逆の動きをする傾向が強い」です。だから分散投資に最適――。この点に間違いはないです。
――でも、例えばリーマン・ショックのときのような、あらゆる市場がリスクオフになるような局面では、その傾向が崩れることがあります。「逆の動きをする」と思っていた株と金が、「同じ動きをする」ことがあるんです。そして、そういう場面は意外と多いです。というか、しばしばあります(測ってみるとよく分かります)。

「逆の動きをする傾向が強い」と考えて組んでいたポジションがあるとして、もし、その傾向が崩れたとき、はたして、そのポジションはどうなるでしょうか。

リスクが軽減されると考えていたのに――。
一転、リスクになります。

場合によってはリスクが倍増することだってあります。

「自分の知らないところでリスクが倍増する――」
これがどんなに危険なことか、容易に想像つくと思います。

* 「別に大したことないでしょ」と思われる方はコチラの記事をどうぞ。

相関係数は、

  • 「なんとなく似た動きしてる――」を、数値で明確に表す
  • リスクの度合いを数値で判断する

こんな感じでしょうか。こういうことができます。

目次へ

2.相関係数の推移

では、さっそく相関係数の推移をみてみたいと思います。

株価指数と金の相関係数の推移

* 2000年から2015年までの相関係数の推移。1年分の相関係数を1週間毎に計測した。

* 縦軸、1が同じ動き。−1は逆の動き。

株と金は逆の動きをする傾向が強い――。直近でみると、まさにその通り。でも、全体でみると、意外とそうでもないですよね。ほぼ相関係数が1。つまり、ほぼ同じ値動きをした場面も多くあります。このグラフでみると、短期間のようにみえますが、一山数ヶ月、場合によっては1年前後の長期間に渡ってそういう値動きをしたことがあります。

全銘柄・全期間の平均的相関係数の推移

* 株価指数と金の相関係数と同様の条件で、それぞれ、対16銘柄の数値を算出し、その平均の推移をグラフにした。

相関係数の推移はこんな感じです。ちっちゃい字でややこしいことを書きましたが、読み取れることはシンプルです。
と、いうか、読み取るまでもなく、ごく当たり前のことですね。

  • 分散できるときと、できないときがある
  • いわゆる「金融ショック」のときは、ほとんどの銘柄が似たような動きになる(分散できない)
  • 逆の動きをする銘柄より、似た動きをする銘柄の方が多い

こんなところでしょうか――。

目次へ

3.算出方法

相関係数の算出方法をいくつかご紹介します。

Excelで相関係数を算出する

説明は、この画像だけでこと足りると思いますが、ちょっとだけ――。
配列Aと配列Bは、数値こそ違えど似た動きをしているのがわかると思います。関数で相関係数を出してみると0.99。強い相関の関係にあることが分かります。それに対して、配列Bと配列Cは通知も、動きも違います。よって、相関係数も0.35となり、相関のない動きであることを示しました。
これはめちゃくちゃ簡単です。価格データを用意して関数をつかうだけ――!今日からでも使えちゃいますね!

Google apps script(JavaScript)で相関係数を算出する

* わからない方はスルーしてください。

相関係数の計算

function Correl(xx,yy){ //xx yy is array.
  var m = Math
     ,n;
  if (xx.length==yy.length){
    n = xx.length;
    var sumx=0, sumy=0, sumxx=0, sumyy=0, sumxy=0 
       ,xm ,ym ,xxi ,yyi
       ,sumxxm=0, sumyym=0, sumxym=0
       ,i;
    for(i=0; i<n; i++){
      sumx += (xx[i]-0); //xxの総和
      sumy += (yy[i]-0); //yyの総和
    }
    xm = sumx/n; //xxの平均
    ym = sumy/n; //yyの平均
    for(i=0; i<n; i++){
      xxi = (xx[i]-0);
      yyi = (yy[i]-0);
      sumxxm += (xxi-xm) * (xxi-xm); //(xi-average(x))^2
      sumyym += (yyi-ym) * (yyi-ym);
      sumxym += (xxi-xm) * (yyi-ym); //(xi-average(x))*(yi-average(y))
    }                                  
    return sumxym / m.sqrt(sumxxm) / m.sqrt(sumyym); // = sumxym/Math.sqrt(sumxxm*sumyym); //sqrtは平方根を返す
  }else{
    throw new Error("Array length is not same.");
  }
}

Google apps scriptを使用すると、かなりできることが増えます。「日足の価格データをネット上から自動で取得して相関係数を計算させる」なんてこともできるようになります。プログラムは大変働き者です。

目次へ

4.インタラクティブなグラフ

今回使用したデータをインタラクティブなグラフでみることができます。

* スマホでもみれますが、PCの方がみやすいです。

この相関係数の推移は多銘柄を同時にバックテストするために作成しました。この相関係数をもとにリスクを算出して、分散投資させています。

目次へ

5.日々の相関係数はこちら

毎日、相関係数を算出して、サイト上で公開しています。

  • 分散投資をする
  • 指標としている銘柄の信頼度を確かめる(先行性≒似た動きをする)
  • 多銘柄間のリスクを測る

用途は上記のような感じでしょうか。なかなか役に立ちます。
僕のトレードにおいては、縁の下の力持ち的な存在です。ないと困る。

目次へ

6.まとめ

相関係数がなくてもトレードはできますが、あると、トレードの幅がグッと広がります。

例えば、ある期待値の手法があるとして、単一銘柄だと、どうしても一定期間の取引回数が限られてしまいます。しかし、相関係数を確認しながら分散投資することで、同じ期待値の手法の取引回数、収益機会を増やすことができます。

ぜひ、相関係数を活用して、分散投資をしてみてください。

わからないこと、聞きたいこと、感想など、絶賛受付中です!
どしどし、お寄せください(^^)!

目次へ

Back to Top

Investment Tech Hack

Sorry... doesn't support your browser

To get the best possible experience using our site we recommend that you upgrade to a modern web browser. Investment Tech Hackではご利用中のブラウザサポートはしていません。
Internet Explorerのアップグレード行う、もしくはその他のブラウザを使用しての閲覧をお願いします。