takahのEA開発ばなし・その3 EAの堅牢性を考える

こんにちは、takahです!

一般的にEAは過去の一定期間のデータを使ってつくり上げていきます。そのため、そのEAが未来において使えるかどうかは誰にも分かりません。

それは EAの堅牢性ともいえるのですが、そのEAが未来にも適用するかどうかをある程度調べることができます。

そこで、今回は「モンテカルロ分析」を使ったEAの堅牢性についてご紹介させてもらいます。

 

「モンテカルロ分析」とは

モンテカルロ分析(モンテカルロ・シミュレーション)とは、簡単にいえば過去のデータの順番を入れ替えたりするなどして戦略の優位性を調べる方法で、一般的にはコンピュータを使って行います。

EAであればバックテストの取引データの順番を無作為に入れ替えたり、一部の取引データを間引いたりすることで、元々のバックテストデータとどれだけ乖離するか?といったを分析することになりますね。

こうやってみると小難しそうなイメージがありますが、実際にはQuantAnaryzerを使えば簡単にできます。

 

モンテカルロ分析をやってみる

それでは、モンテカルロ分析をやってみましょう。

QuantAnaryzerを立ち上げ、バックテストデータを読み込みます。例によってHANAのデータを使ってみます。

データを読み込んだ後、左側にある「Monte Carlo analysis」ボタンをクリックします。

画面の上側にあるのが設定画面です。ここでは以下のように設定します。

  • Number for simulations(モンテカルロ分析を行う回数)100
  • Randomize trades order with Exact method(正確なデータで取引をランダムに入れ替える)チェック
  • Randomly skip trades witg 5% probability(5%の確率で取引をスキップする)チェック

「Randomly skip trades witg 5% probability」の初期値は1%になっていると思いますので、右側の「Randomly skip trades」にある「Probability」を「1」から「5」に変更します。

この「5%」の意味ですが、実際にEAを動かす場合、PCやMT4がフリーズしたり、うまくエントリーが入らなったなど様々な要因でEAが取引しないことがありますよね。そういったことを想定し、バックテストの全取引データから数%(ここでは5%)のデータを差っ引くようにすることで、実際の取引に近づけようとする狙いがあります。

まとめますと、「全取引データから5%のデータを間引いたモンテカルロ分析を100回行う」という設定にしておきます。そうして「Run」ボタンをクリックします。

すると、モンテカルロ分析された結果が表示されます。

 

モンテカルロ分析の見方

簡単に見方をご紹介すると、一番左の列の「Confidence level」は信頼度を表しています。1行目の「Original」は元々のバックテストデータです。ここでは信頼度50%~100%のデータが表示されていると思ってください。また、信頼度95%のデータが灰色になっています。

モンテカルロ分析において、この信頼度95%という数字が一つの区切りになります。信頼度95%というのは、95%以内でこの行の数字に収まることを意味しています。例えば、信頼度95%のときのMaxDD(最大DD)は$787.23になっていますが、5%の確率でこの数字より悪くなる可能性があるということです。

この表で私が見ているのは元データ(Original)と信頼度95%のデータとの乖離です。ここでは、MaxDD(最大DD)、Max % DD(最大DDの割合)、Ret/DD(リスクリワードレシオ)をみるとこのようになっています。

  オリジナルデータ 信頼度95%のデータ
最大DD $721.5 $787.23
最大DDの割合 13.36% 15.83%
リスクリワードレシオ 0.58 0.49

 この数字をどのように見るかですが、私は最大DD(割合)で概ね3%以内、リスクリワードレシオで概ね0.2以内であれば許容範囲と見ています。

これ以上離れている場合は堅牢性を疑うようにしています。(ちなみに、最大DDの数値はロット数で変更するため、参考程度にしか見ていません)

 

続いて、「Monte Carlo Chart(モンテカルロ・チャート)」タブをクリックしてみましょう。

すると、モンテカルロ分析をした時の損益グラフが表示されています。今回は100回シミュレーションしていますので、100本表示されているようです。グラフの真ん中あたりにある太い青線がオリジナルの損益グラフで、それを包むような帯状のグラフの上限と下限がHANAが取り得る可能性のあった領域ということが分かります。

私は特に下限値を注目しており、バックテストデータでは表れてこない潜在的なDD値として意識するようにしています。

 

最後に、「Predict/Verify(予測/検証)」タブをクリックしてみてください。

これは今後どのような損益フラフを描くのかを予測したグラフが表示されます。この赤の領域がその予測範囲を示しています。これをみると、概ね右肩上がりになっており、今後も利益を積んでくれる可能性を示していることが分かりますね。

ただし、このグラフは過去のバックテストデータから導き出された統計的な予測でしかありません。なので、私は「右肩上がりか?」「右肩下がりか?」といった程度にしか見ないようにしています。

ですが、この段階で右肩下がりになっていたら、そもそも相場への適応力がないと考えてお蔵入りさせることがあります…(泣)

 

今回はモンテカルロ分析からEAの堅牢性を調べる方法について簡単にご紹介させていただきました。

QuantAnaryzerを使えば簡単にできますので、是非お使いになられているEAを分析してみて、ご自身の投資にお役立てくださいね!