線形相関係数(ピアソンのr)を計算してみた

ラルフビンスさん曰く、トレード間の相関関係を見るのであれば、Zスコアだけでは役不足で、線形相関係数を併せてみるべき。

さらには、線形相関係数の方が信頼性があるかも。。。

投資家のためのマネーマネジメント

 

的なことをおっしゃっていましたので、”Σ”記号がずらっと並ぶ、嫌な感じの式で算出する線形相関係数(以後、”ピアソンのr”と表記)を、私が運用するEAのリスク管理に適用できるようにExcelマクロで実装しました。

 

書籍の書き方が丁寧で、想定よりも割と容易に実装することができました。

先に挙げた、ラルフビンスさんの書籍は、私のような統計学に疎いものにも優しく書かれていますよ。翻訳もいいですね。書籍への愛情が伝わってくる良い訳だと思います。

 

さて本題だ。

 

目的:

EAのトレード成績をピアソンのrで解析し、各トレード間に相関関係があるのかを調べ、今後のトレード計画に活用できないか判断する。

相関関係とは、勝ちトレードが勝ちトレードを呼んだり(つまり、勝ちや負けが連続する)、勝ちが負けを呼んだり(勝ったら、次は負ける傾向)する特性。

 

結果:

信頼性が高いピアソンのrを持つEAは、私の手持ちのEAでは極僅かしかありませんでした。

しかしながら、損益シミュレーションの結果、ピアソンのrに従ったリスク調整を適用することで、損益が改善されることが確認できました。

よって、今後のトレード計画(資金管理)には、ZScoreによるリスク調整に加え、ピアソンのrによるリスク調整を導入することとします。

 

 

というわけで、順を追ってお話をば、

 

 

まずは、計算の妥当性の確認を。ラルフビンスさんの書籍中には、例が掲載されていましたので、その通りにピアソンのrが算出されていることを確認しました。

50305-p1

 

数値列の例はこれですね。

 

2回同じ数値列を処理して、バグっていないか確認もしています。

 

 

 

 

 

 

 

 

Excelのマクロ的には、例のオプティマルfを計算するマクロにZScoreを算出する機能を追加し、さらにそこにピアソンのr計算処理を突っ込んだ感じです。

やっつけ仕事をして、内部的には結構スパゲッティ化しつつあります。

50305-p0p

 

計算ロジック的には、こんな感じ。。。

 

割とシンプルですね。

 

 

 

 

 

 

 

 

 

 

50305-p0z

 

ちなみに、ZScore計算と信頼度変換処理はこんな感じ。

 

 

 

 

 

 

 

ピアソンのrの算出結果は、次の通り書籍の例に一致しています。

50305-p2

 

TESTSYSとTEST2という行のなかで、列PearsonsRがピアソンのrの値となります。

書籍通りです。

 

相関関係が見出せるEAは、殆どありませんでした。。。

 

 

 

 

 

 

 

ピアソンのrの見方

  • プラス0.25以上のピアソンのrは、トレード間に強い相関関係を持ち、勝ちが勝ちを呼び、負けが負けを呼ぶ特性がある(と推定)
  • マイナス0.25以下のピアソンのrも、トレード間に強い相関関係を持ち、勝ちが負けを呼び、負けが勝ちを呼ぶ特性がある(と推定)

 

プラスとマイナスの見方が、ZScoreと真逆になります。(先日のZScoreの記事は、ここでミスりました。線形相関係数を論じていた箇所を、ZScoreのものだと誤って解釈してしまいました。ちなみに、絶対値で2以上のZScoreが、資金戦略を採用すべき水準を満たしている(かなな)ものです)

 

昨日確認した、in-cep-tionは線形相関係数を確認する限りでは、各トレード間は弱い相関関係ですね。Forex Venture Botはやはり強めの相関関係の結果が算出されました。

また、強めの相関関係が出ている戦略は、Zスコアとピアソンのrとで、値の符号が反転していますね。これも特性を反映しているのか、辻褄があっています。

 

それでは、昨日とは損益シミュレーションするEA・通貨ペアを変えて損益シミュレーションしてみます。

あ、RR Hippoはやはり各トレード間の相関関係が見えないようです。

 

損益シミュレーション概要

  • オプティマルfに基づき、計算上破産しない適当な掛け率をベースリスクに設定する(リスクはかなり抑えめに設定し複利運用する)
  • 損益データを日単位で集計したものに対してシミュレーション処理する (複数ポジション考慮)
  • 直前のトレードが勝ちだったのか負けだったのかに合わせて、ベースリスクに補正をかける

 

 

EasyWalkerFX EURUSD

 

プラスのピアソンのrを持っていて、値も0.25を超えています。よって、勝ちが勝ちを呼び、負けが負けを呼ぶパターンです。

シミュレーションでは、勝ちトレードの後は次に負けるまでリスク値を上げ、負けトレードの後は次の勝ちトレードまでリスク値を下げた結果が最も利益が大きくなるかを確認します。

 

結果:戦略成功です。勝ちが勝ちを呼び、負けが負けを呼ぶ想定でリスク調整した場合に利益が大きくなり、リスク調整値も大きくするにつれて、損益が改善されていきました。

 

50305-p3

 

 

 

 

 

 

 

 

 

 

 

 

KeltnerPro EURUSD

 

マイナスのピアソンのrを持っていて、値は-0.16です。推奨ライン?の-0.25は下回っていませんが、手持ちのEAのなかでめぼしいものはこの戦略ぐらいです。まあシミュレーションですので、この戦略を採用します。

この戦略は、勝ちが負けを呼び、負けが勝ちを呼ぶパターンです。

シミュレーションでは、勝ちトレードの後は次は負けると想定しリスク値を下げ、負けトレードの後は次は勝つと想定しリスクを上げた結果が、最も利益が大きくなるかを確認します。

 

結果:戦略成功です。勝ちが負けを呼び、負けが勝ちを呼ぶ想定でリスク調整した場合に利益が大きくなり、リスク調整値も大きくするにつれて、損益が改善されていきました。

 

50305-p4

 

 

 

 

 

 

 

 

 

 

 

 

以上の通り、EAの特性にあわせて、直前のトレード結果に応じて次のトレードロットを調整する方法も、統計的に確認がとれている戦略に対して機械的に適用すれば、最終的な損益を向上できる可能性がある。のかも。

 

なお、将来の成績や、傾向の継続性を保証するものではないことをくれぐれも忘れないようにして下さい。

 

 

 

今日は、ドラギさんイベントは、裁量トレードをパスです。

資金管理用のAccessDBを改修せねば。昨日のZScore対応に引き続き、面倒いんだこれが。。

 

マクロもだんだん重くなってきたな。

EA・通貨ペアの組み合わせで60通り、処理レコードにすると18000行ぐらいを処理するのに、10分かかります。。。orz

MacProが欲しい今日この頃。

 

 

 

コメントを残す