MT4のバックテストレポートの最大ドローダウンについて

MT5は、MT4に比べてバックテストで出力されるレポートの項目が多いのが自慢(?)です。例えばこんな感じです。


↑MT4のレポート


↑MT5のレポート

MT5では、最大ドローダウンが残高ベースと証拠金ベースと別々に算出されるようになったり、リカバリーファクター、シャープレシオなど新しい指標が増えました。ほかにも、時間毎、曜日毎、月毎の損益グラフなども表示されるようになりました。

これらのレポート項目は、MQL5の TesterStatistics() という関数で取得できます。使用例は「FXメタトレーダー4&5プログラミング」の423ページにあります。これは、OnTester()関数中でTesterStatistics()を使ってシステムの評価値をカスタマイズする例です。

OnTester()関数は、ストラテジーテスターの最適化の際には、その戻り値がシステムの評価値となります。ただし、最適化をせずに単にバックテストだけする場合でも、最後にOnTester()関数が実行されます。

例えば、以下のようなコードをEAに追加してバックテストさせます。

すると、操作ログの画面で以下のような出力が確認できます。
Image4

MT4も最近のアップデートでMT5化が進んでおり、OnTester()や、TesterStatistics()が使えるようになっています。そこで、MT4のEAで上記のOnTester()を追加してバックテストしてみます。

すると、以下のように出力されました。
Image8

これを見ると、リカバリーファクターやシャープレシオなど、MT4のレポートに含まれていない指標は0となっています。ところが、最大ドローダウンは、残高ベースと証拠金ベースの両方が出力されています。

では、MT4のレポートで出力されている最大ドローダウンはどっちかということですが、値を比べてみると、507.8となっているので、どうやら証拠金ベースの最大ドローダウンのようです。

私の記憶によると、MT4のレポートで出力される最大ドローダウンは残高ベースだったはずなので、仕様が変わったのかもしれません。

いずれにしろ、MT4のバックテストでは、レポートに出力されない最大ドローダウンについても算出されているようです。そのうち、MT5のレポートでしか出力されない項目についても、MT4で出力されるようになるかもしれません。



コメントは受け付けていません。