独自開発EAのリアルトレード公開中 詳しくはこちら

【MT4】FX自動売買(EA)のバックテストとフォワードデータを簡単に比較検証する方法を解説。無料ツール配布中

Profit-and-Loss-Curve
この記事で解説すること
  • EAのフォワードデータの検証方法
  • 独自に開発したツールの使い方
対象者
  • EAの分析力を高めたい方
  • EAの入れ替え時がわからない方
  • バックテストとフォワードテストを比較したい方

FX自動売買(EA)は、24時間コンピュータが市場を監視して感情に左右される事なく自動でトレードをしてくれる優れたツールであり、プロの手法も容易に再現可能なことから人気のトレード手法です。

しかし、残念ながら完全放置で勝てる程甘い世界ではなく、EAポートフォリオの実績管理で以下のような悩みを抱えている人が多くいます。

  • EAを入れ替える時のタイミングや判断基準が分からない
  • フォワードのパフォーマンスがバックテスト通りになっているのかが分からない
  • フォワードのパフォーマンスとバックテストをpipsで比較したいのにできない

この悩みにぶつかりはするものの、結局目をつぶって完全放置になってしまう人が非常に多く、なかなか勝てずに撤退してしまう人を何人も見てきました。

完全放置を否定している訳ではないですが、勝ち続けるためには定期的な検証とポートフォリオのメンテナンスは必要です。

そういった悩みを解決するツールがあればいいなと常日頃思っていたのですが、なかなかそんなツールには巡りあえず、ついに自分で開発してしまいました。

本記事では、そのツールの詳細と活用方法を解説しています。

▼ツールは以下のサイトにて無料配布中▼

目次

開発したツールの概要

開発したツールがどんなものか、メインとなる機能を簡単に説明すると以下の3点です。

  1. エクセルがmt4からトレード履歴を自動取得し、EA別、通貨ペア別のパフォーマンスを纏めてくれる。
  2. フォワードのパフォーマンスがバックテストのパフォーマンスデータから予測される範囲内にあるかどうかを視覚的に示してくれる。
  3. フォワードとバックテストに乖離があるか否かが分かるグラフを出力してくれる。

操作は簡単。最初に初期設定してしまえば、あとは検証の度にクリックするだけです。

次の章にてツールの詳細を説明します。

ツールを使った分析方法

バンド付き損益曲線と箱ひげ図

バンド付き損益曲線

本ツールで分析を実行すると、図1のような分析データシートが生成されます。

このように、フォワードデータとバックテストデータを横並びで見ることができます。

data-sheet
図1:データシート

パフォーマンスデータのパラメータとしては純利益、PF、勝率、最大ドローダウンなど一般的なものからリカバリーファクターなど様々なパフォーマンスデータが生値とpips値で比較できます。

ユニークなのは下図の損益曲線です。

Profit-and-Loss-Curve
図2:損益曲線

このグラフには、フォワードの損益曲線(青色)の他にラインがいくつかあります。

それぞれラインの意味は以下の通りです。

灰色:期待損益線
緑色:期待損益の2σまたは3σ上振れバンド
赤色:期待損益の2σまたは3σ下振れバンド
細緑:最大DDライン

これらはバックテストの損益データから計算されて出力されます。

期待損益損とは

バックテストの平均獲得pipsとトレード回数の掛け算で作成される線です。

最大DDとは

最大ドローダウンのことです。
ドローダウンとは、最高残高からどれだけ資産が減少したかを示す値です。したがって、最高残高を更新している間はドローダウンが0となります。最大ドローダウンとは過去発生したドローダウンの中で最大となる値です。

2σ、3σのバンド線とは

σとは標準偏差のことです。
簡単に言うと、サンプルがどれくらいののバラツキを持つかを示す指標です。

この指標を使い、損益曲線が期待損益線に対してどれくらいの変動が予測されるかということを計算することができます。2σの線は「期待損益線±2×σ」で計算され、統計学上95%の確率でその範囲に収まるバンドが作成されます。3σの場合は99.7%となります。

簡単に説明すると、フォワードの損益曲線は期待値通りであれば灰色の線に推移し、上振れたとしても下振れたとしても緑色と赤色のバンドの内に収まるはずで、フォワードの結果がその通りになっているかを視覚的に確認できるというものです。

また、最大DDを超えたかどうかも判断することができます。

これを用いることで、感情に任せてEAの稼働をやめてしまったり、統計値よりも下振れているのに放置してしまうといった事を避ける事が出来ます。

また、上振れている時には調整が入る可能性もありますので、様子見でロットを下げるといった判断もできます。

更に、下図ように、モンテカルロ分析によって計算されたバンドを作成することもできます。

Monte-Carlo-Band
図3:モンテカルロバンド

モンテカルロ分析は、損益の順序をランダムに数百から数千回入れ替え、それによって作成されたベストな曲線を繋いだものを上バンド、ワーストな曲線を繋いだものを下バンドとして、σのバンド線と同じように使われます。

モンテカルロ分析の詳しい解説はこちらをお読みください。

本ツールでは2500回の損益入れ替えを行いますのでグラフ出力に時間がかかります。

それでいて3σのバンド線とあまり変わらないので、私は基本的には3σの線を利用しています。

箱ヒゲ図

このツールでは損益分布を比較するために箱ヒゲ図を見れるようにしています。

箱ひげ図とは、下図のように損益の分布を箱とバーで表現したグラフです。

box-and-hide-diagram
図4:箱ひげ図

縦軸は各トレードの損益(最新ツールはPips単位)を示し、グラフ中の箱の部分が損益データの50%を占める部分で、その他中央値や最大値と最小値、外れ値などの情報が得られます。

このグラフからは様々な事がわかります。

  • テストデータとフォワードデータの損益分布の範囲に差異がないか?
  • 中央値に大きなズレはないか?
  • 非常に大きな損失を出したが、このような結果はバックテストデータでも見られるのか?など。

この箱ひげ図の形状が全く異なる場合、バックテストと同じ挙動をしていないことになります。

例えば、バックテストが過剰最適化されているような場合や、相場に全く合わなくなってしまった時、何らかの外部環境でフォワードがバックテスト通りにならない時にそういった状態となります。

箱ひげ図について更に詳しく知りたい人は以下のURLを参考にしてください。

ツールのその他の機能

また、「応用分析」のシートでは、下図にような更に細かい分析ができるようになっています。

Detailed-Analysis
図5:開発ツールの詳細分析

このシートでは、3つの枠で分析が可能です。

左側の枠

バックテストをインサンプルとアウトオブサンプルに分けて評価する(アウトオブサンプルをフォワードとして扱って分析する)事ができます。

バックテストのみの損益データを使い、期待損益線やバンド曲線を算出するデータセットの期間と、フォワードとして損益曲線を作成する期間を指定する事ができる機能です。

使い方の例としては、純粋にロジックの優位性が過去と未来で変化していないかを調べるといったことができます。

リアルトレードにおいては、スプレッドやスリッページ、レイテンシーの問題など、ロジックとは別要因でパフォーマンスが悪くなってしまう事があります。そういったロジックの優位性とは別の要因でのパフォーマンスの悪化を排除した形で評価をすることができます。

中央の枠

バックテストとフォワードの期間を抽出して分析する事ができます。

例えば、フォワードにおいて2024年の1月から4月にEAの調子が悪い時期が続いていたとします。
また、バックテスト上においても、2013年の5月から10月まで極端に悪い時期があったとします。

この機能を使うと、現在のパフォーマンスの悪いフォワードデータが、過去の悪い時期と比べてどうなのかを比較する事ができます。

それにより、過去にも経験のある相場だったかを確認する事ができ、EAの稼働停止の判断材料とすることができます。

過去にもあって、一度乗り越えているならばもう少し様子をみようという判断もできるでしょう。

右側の枠

同期間のバックテストとフォワードを抽出して分析する事ができます。これは累積損益のグラフ比較となります。

用途としては、バックテストとフォワードテストの乖離を確認するために使います。

同じ期間の比較なので、本来であれば全く同じ結果になるはずです。ところが、使用しているブローカーやVSP、環境などによってトレードの結果は必ず変わってきます。

この機能を使用することで、ブローカーやVPSなどによるトレード結果の違いを明らかにする事ができます。

ツール活用のケーススタディ

この章では、実際のデータを使ってEAを評価したいと思います。評価するEAは私が開発したEAとします。

今回紹介する例は一部にしか過ぎませんが、参考にして頂き、ご自身の分析スキルを高めていって頂ければと思います。

ケース1
EA名Touch The Sky
通貨ペアCHFJPY(6通貨ペアのうちの一つ)
EA名Touch The Sky
通貨ペアCHFJPY(6通貨ペアのうちの一つ)

それでは、早速分析してみましょう。

以下はTouch The Skyのバックテストとフォワードデータを比較したものです。

Touch-The-Sky-Backtest-and-Forward-Data-Comparison
図6:Touch The Skyのバックテストとフォワードデータ比較

一見して分かることは、利益は順調に積み上げていますが、バックテストよりもフォワードデータの方がパフォーマンスが悪いということです。

損益曲線についてもう少し詳細を見てみましょう。下図が拡大したものです。

Touch-The-Sky-Profit-and-Loss-Curve
図7:Touch The Skyの損益曲線

バンド内に収まっていますし、最大DDにも到達していません。

しかしながら、期待損益線との乖離があります。しかも、トレードを重ねる度に期待損益線から離れていっています。

これは何故か?考えられる理由は以下の2つです。

  1. リアルトレードを開始してから優位性が下がった
  2. バックテストとリアルトレードが乖離している

仮に1が理由だった場合は、応用分析シートの左枠の「バックテストをインサンプルとアウトオブサンプルに分ける分析」にて明らかになるでしょう。

以下がその分析を実行して得られたグラフです。

Touch-The-Sky-analysis-run-graph
図8:Touch The Skyの分析実行グラフ

こちらを見る限りでは、期待値線とさほど乖離なく推移していることが分かります。したがって1が理由ではないことが分かります。

それでは2が理由ということが濃厚ですが、データで確かめてみましょう。

2が理由である場合、応用分析シートの右枠の「同じ期間のバックテストとフォワードを比較する分析」にて明らかにすることができます。

以下のグラフが分析結果です。

Touch-The-Sky-Analysis-Result-Graph
図9:Touch The Skyの分析結果グラフ

上のグラフを見ると、バックテストとフォワードがかなり乖離していることが分かります。

ではなぜこんなにも乖離しているのでしょうか?

その理由は、以下が考えられます。

こちらのEAはMT4時間の23時から1時の間にトレードする、いわゆる朝スキャと呼ばれている分類です。

この時間には0時が含まれておますが、この時間は値動きが不安定で、スプレッドも高く、リアルトレードではエントリーされなかったり、シグナルとは全く異なるポイントでエントリーとクローズが執行されることが多々あります。

ほぼ間違いなくこれが理由でしょう。

このように、バックテストとフォワードが乖離していてその理由が分かった場合、可能な限り条件を合わせ込んだバックテストを実施し、正しくEAの性能を見積もる必要があります。

そうしないとEAのパフォーマンスを過信し過ぎてオーバートレードをしてしまったり、調子の悪い時期の稼働継続の判断を誤る可能性があります。

正しくバックテストを取り、正しく分析しすることを心掛けましょう。

ケース2
EA名Cross Yen Portfolio
通貨ペアUSDJPY(6通貨ペアのうちの一つ)
EA名Cross Yen Portfolio
通貨ペアUSDJPY(6通貨ペアのうちの一つ)

以下が分析の結果です。正直厳しい結果ですね(汗)

Comparison-of-Cross-Yen-Portfolio-back-test-and-forward-data
図10:Cross Yen Portfolioのバックテストとフォワードデータ比較

それでは詳細を見ていきましょう。まずは損益曲線です。

Cross-Yen-Portfolio-Profit-and-Loss-Curve
図11:Cross Yen Portfolioの損益曲線

期待損益線とは裏腹に、損益曲線はどんどん下降し、ついに最大DDを割ってしまいました。

リアルトレードでバックテストの最大DDを超えることは、決して珍しいことではありませんが、かなり厳しい状況といっていいでしょう。

そこで、3σのバンドを見てみましょう。このバンドに対しては、ぎりぎり耐えているという状況です。

これをどう評価するか?ということですが、ここで確認しておきたいことは、過去のDDの時に対して、どうだったか?ということです。

過去にも同じようなDDが発生していて乗り越えてた経緯があるのであれば、我慢してもう少し稼働すれば、復活してくる可能性もあるかもしれません。

今回の場合、下図のバックテストの赤枠内のポイントと比較することにしました。

Drawdown-of-Cross-Yen-Portfolio
図12:Cross Yen Portfolioのドローダウン

この比較は、応用分析シートの中央の枠の「期間を指定してバックテストとフォワードを比較検証する機能」を使います。

下図がその分析結果です。

Cross-Yen-Portfolio-Analysi-Run-Graph
図13:Cross Yen Portfolioの分析実行グラフ

この結果から、フォワードは過去に発生していたDDと比較しても厳しい状況であることが分かりました。

そこで私が下した最終判断は、「稼働を停止する」です。

このEAはUSDJPYの他に5通貨ペアで使用できるのですが、USDJPYは元々バックテストにおいても他の5通貨ペアと比較して悪かったという背景もあり、そのような判断となりました。

このように、EAの稼働を停止する場合には、複数の根拠をもって判断するようにしましょう。

調子が悪いから何も分析せずに感情だけで止め、その後すぐに復活してきて結局損だけを被ったということは本当によくあることです。

最後に

いかがでしたでしょうか?

今回は、フォワードの検証方法を中心に、そのノウハウをお伝えしました。

フォワードの検証は面白くない上に面倒で敬遠しがちですが、非常に大切な作業です。

この記事や開発したツールが皆様の快適なトレードライフの一助となれば幸いです。

それでは!

よかったらシェアしてね!
  • URLをコピーしました!
目次