バックテストは時間がかかる・・・
今回はEA・・・ではなく、EAのバックテストを高速化してくれるというツール、MT4バッチプロセッサー(MT4BP)についてご紹介したいと思います。
EAを運用する前にバックテストをするという方も多いと思いますが、どちらかというと、今回のツールはEA開発者向けのツールと言っていいかもしれません。
EAを開発する際にはバックテストは必須です。
通貨ペアや時間足を変えたり、バックテスト期間を変えてみたり、さらにはパラメータを弄ってどれが最適か試してみたりと、EAを作る場合、多くの開発者は様々に条件を変えてバックテストをやるのが通常ではないでしょうか?
しかしそのように条件を変えてバックテストを実施するのは時間もかかりますし、しかも近年では長期間(例えば10年以上)のバックテストが要請されるのが当たり前になりつつありますので、その分バックテストに要する時間というのは増加していると思います。
勿論ストラテジーテスターの最適化機能を使ったり、「全ティック」ではなく「始値のみ」や「コントロールポイント」で実施することで時間の短縮は可能ですが、それでも限界はあります。
同時に8並列稼働でバックテストができる!
その点このMT4バッチプロセッサーが凄いのは、そういう時間のかかる諸条件でのバックテストを最大8並列同時にできるようにした点です。
MT4を8台起ち上げてバックテストをやれば一緒では・・・と思った方もいると思いますが、1台のPCでそれをやろうとすると、相当動作が重くなり、却って時間がかかることになりかねません。
その点、このツールを使えば、複数の通貨ペア・時間足・モデル・スプレッド・期間といった条件で一度にバックテストを実行することができます。
しかも複数並列でMT4のバックテストを行う場合、MT4のファイルを必要なだけコピーしておく必要はありますが、MT4自体を起動する必要もありません(※MT4は閉じておく必要があります)。
MT4BPの複数起動も可能!さらに並列バックテスト数のを増やせる!?
それに加え、このMT4BPはPC1台の中で複数起動することができます。
つまりPCのスペックが許す限りはMT4BPの稼働の数だけ、バックテストの数も増やすことができます。
一つのMT4BPで最大8並列のバックテストが可能でしたので、つまりは、8×N(起動MT4BPの数)並列だけバックテストを増やすことができることになります。
しかも1ライセンス購入でPC5台までインストールできますので、仮に5台のPCを保有していて、全てにMT4BPをインストールしてバックテストをやる場合、最大8×N×5並列のバックテストが可能ということになります。
ここまで並列バックテストをやるという人もそういないかもしれませんが、、これだけの環境ができれば、バックテストに費やす時間も相当短縮できるのではないでしょうか?
最適化機能を使用した場合でもレポートを全て出力!
MT4のストラテジーテスターに備わっている便利な機能の一つが最適化機能。
パラメータを変えながら繰り返しバックテストを実施してくれますので、最適なパラメータ設定を見つけることができます。
ただこの場合、それぞれのバックテスト結果については詳細なレポートは出力されません。
しかしこのMT4BPを使用した場合、個別のバックテストレポートが全て出力されますので、EAの最適化に向けた詳細な分析が可能になります。
TickDataSuiteへの対応は?
さてバックテストを並列処理して高速化が実現できるという本ツールですが、リアルティックデータを用いた高品質のバックテストが可能となるTickDataSuite(TDS)を使用したバックテストにも対応しているか気になるところです。
以下は「無料体験版」にも付属しているマニュアルからの引用です。
本バッチソフトを利用して、TDSでの並列バックテストをした場合、PC環
境やバックテスト期間によっては、稀にバックテストに失敗するケースが報
告されています。
本ソフトは並列処理に関しては、MT4の標準バックテストを対象に作成され
ており、TDSを使用しての並列バックテストは現時点では暫定対応となりま
す。(今後、可能な限り並列動作の安定性を向上させる予定です)
よって、現時点ではTDSを使用する場合は「並列処理数=1(シングル)」
での実行を推奨します。
なお、TDSでの並列処理についてですが、処理のスレッド間に十分な時間を
設ければ、レポート欠損が起こらないことがわかっています。
並列バックテストしてみて、バックテストに失敗する場合は、「設定」画面
の「MT4起動遅延(秒)」の値を大きくして下さい(最大60秒まで指定可
能です)
PC環境やバックテスト期間によって必要な時間は異なりますので、各自、
うまく調整してご利用下さい。
残念ながら、TDSを使用して並列化した場合はTDSに負荷がかかり過ぎてバックテストに失敗するケースがあるようで、並列処理数も「1」が推奨されています。
ただしPCのスペックやバックテスト期間にもよるものの、「MT4起動遅延(秒)」の数値設定を大きくすることで、並列バックテストの失敗を防ぐこともできるとマニュアルにもありますので、TDSを使用した並列バックテストを実施したい場合は、この数値設定を調整して最適値に設定することで改善できる可能性はあるようです。
※本ツールは2019年に販売開始されたツールです。最新版での機能の拡大、仕様の変更等がある場合あります。
設定画面
以下は販売ページにもある設定画面。
一つのEAだけでなく、複数のEAをあらかじめ登録しておいて、それぞれにバックテスト条件を設定することも可能です。
一度設定すれば、あとは並列でバックテストが自動で進行していきます。
無料体験版でお試しが可能!
以上MT4バッチプロセッサーをご紹介してきました。
バックテストを並列で行うことができる非常に便利なツールなのは間違いないんですが、TDSが完全対応していないという点に加え、やや設定が煩雑なので実際に使用するには手順に慣れる必要がありそうです。
ただし本ツールには専用のコミュニティも用意されており、機能アップの要請もできるようですので、新しいバージョンではツールの機能改善も進んでいるかもしれませんね。
さらにこのツールには無料体験版も用意されています。
興味ある方はまずはこの無料体験版をダウンロードし、マニュアルを読み込んで、実際に試してみることから始めてはいかがでしょうか?