MT5のバックテスト・最適化は、MT4とは比べ物にならないほどスピードも速く、分析結果も多彩なので、非常に使いやすいです。
しかし、MT5のEAがそもそも日本であまり普及していないため、MT5のバックテスト・最適化の便利な機能もあまり知られていません。
この記事では、MT4のバックテストは経験がある人向けに、MT5のバックテスト・最適化について要点を絞って紹介します。
海外FXで仮想通貨を取引するならFXGT!
銘柄数もボーナスも充実!
大手海外FX業者、FXGTの詳しい解説
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
MT5のバックテスト・最適化で選択できるメニュー
MT5のストラテジーテスターを開くと、まず最初に「概要」タブが表示されます。この概要タブに、「単一」や「最適化を完了」などのメニューアイコンが表示されます。
実は、このメニューアイコンは押しても押さなくても構いません。バックテスト・最適化にかかわる操作は、「概要」タブの隣の「設定」タブから設定が行えるからです。
メニューアイコンの機能は、単に「設定」タブの初期設定を変更するだけです。例えば「最適化を完了」を押すと、最適化のデフォルト設定が適用された状態で隣の「設定」タブに移動するという意味になります。
デフォルト設定を入れてくれる便利機能だポン!
メニューアイコンの日本語訳がめちゃくちゃですが、「単一」を押せば通常のバックテストのデフォルト設定、「最適化を完了」を押せば最適化のデフォルト設定になります。両者の違いは、「設定」タブで一番最後の「オプティマイズ」の項目が設定されているかどうかだけです。
メニューアイコンの意味は下記の通りです。
単一 | 通常のバックテスト |
---|---|
インディケータ | インジのバックテスト |
可視化 | ビジュアルモードを使用 |
ストレスと渋滞 | 約定の遅延を設定 |
最適化を完了 | 最適化の完全アルゴリズムを使用 |
遺伝的最適化 | 最適化の遺伝的アルゴリズムを使用 |
フォワード最適化 | 最適化のフォワード機能を利用 |
MT5バックテストの新機能は?リアルティックが目玉
MT5のバックテスト機能には、以下の新機能が追加されました。
- リアルティック
- ブローカーのヒストリカルデータ
- 複数銘柄のバックテスト
- レポートが詳細に
リアルティック
MT4では、リアルティックでのバックテストが可能になりました。
MT4では、デフォルトではリアルティックを用いたバックテストができませんでした。リアルティックのヒストリカルデータをcsv形式で提供しているブローカーはあるのですが、MT4の仕様上、リアルティックをMT4にインポートすると1分足に変換されてしまうためです。
MT4でリアルティックでのバックテストをするには、数万円の有料ツールを購入する必要がありました。
しかし、MT5ではリアルティックでのバックテスト機能が標準搭載されています。使い方は、バックテストの設定タブで「リアルティックに基づいたすべてのティック」を選択するだけです。
リアルティックと疑似ティックの違いについてはこちら↓↓↓↓↓
ブローカーのヒストリカルデータ
また、MT5ではログインしているアカウント(FXブローカー)のヒストリカルデータをバックテストに利用することができるようになりました。
MT4ではこれができず、ストラテジーテスターでデフォルトで使用されるデータは、メタクオーツのサーバーからダウンロードしたものでした。
メタクオーツのデータはデータ欠けなどがあり品質が低かったため、MT4ではDucascopyやFXDDなどのブローカーがヒストリカルデータ用に提供しているデータをインポートして使うのが一般的でした。
このブローカーのヒストリカルデータも、「リアルティックに基づいたすべてのティック」を選択すれば利用できます。
便利に進化したポン!
使用しているブローカーの値動きでバックテストができるのは便利ではありますが、制約もあります。具体的には、昔のデータは不正確になっている可能性があります。
MT5ではヒストリカルデータのスプレッド情報を確認できますが、一部の海外FX業者では、古いデータのスプレッド情報が非常に大きくなっていることがあります。
上記の画像はExness(エクスネス)のゼロ口座のものです。直近のユーロドルのスプレッドはゼロですが、スクロールして2010年のスプレッドを出すと、大体8ポイント(0.8pips)程度で推移しています。
全然スプレッドが違うっコ
これは、昔は本当にスプレッドが大きかったか、または、まだブローカー自体が営業を始めていなかったなどの理由でデータがない場合に他社データを入れているか、どちらかの理由だと思われます。
他社のデータを入れたなどの事情であれば、中のデータに抜け・漏れがある可能性もあります。ヒストリカルデータの精度に不安がある場合は、MT4と同様に別途データを入れた方がいいでしょう。
MT5のヒストリカルデータの信頼性についてはこちら↓↓↓↓↓
複数銘柄のバックテスト
MT5では複数銘柄でのバックテストが可能です。ある銘柄で成績がよくなかったEAが、ほかの銘柄ではよい成績になるのかを調べることができます。
バックテスト設定の銘柄欄で「すべての[気配値表示]銘柄」を選択すると、気配値表示に表示されている銘柄すべてのバックテストが実行されます。残念ながら、銘柄を柔軟に設定することはできないので、対象となる銘柄を変更したい場合は、気配値表示で調整してください。
単純なバックテストではなく最適化(オプティマイズ)の機能に分類されているので、「すべての[気配値表示]銘柄」を選択すると、オプティマイズ欄も自動的に変更されます。
この機能は、「同一の戦略を同時に複数銘柄でバックテストし、成績のよいものを探す」ためのものです。これとは違い、「複数銘柄を同時に取引してトータルで成績のよいものを探す」ためには、ソースコードに複数銘柄を取引する設定を組み込む必要があります。MT5では、ソースコードに組み込めば1つのEAで複数銘柄を取引する戦略は可能です。
この点については別の記事でまとめています。↓↓↓↓↓
レポートが詳細に
MT5では、出力されるバックテストのレポートが詳細になりました。
残高推移グラフの下に、以下のような情報が表示されます。
MT5のバックテストレポートで追加された情報は以下の通りです。
- 時間毎・週毎・月毎の取引分析
- MFE・MAE
- ポジション保有時間
MFE・MAEとは、FXのより詳しい分析をしたい場合に使用される指標です。MFEは「Maximum Favorable Excursion:最大順行幅」、MAEは「Maximum Adverse Excursion:最大逆行幅」の略で、含み益・含み損が最大でどれくらいあったかを把握することができます。
MFEとMAEについて簡単に説明すると、最大順行幅が大きいのに実際に利益確定できた幅が少なければ、利益確定タイミングが適切でない可能性があることを示します。一方、最大逆行幅が大きければ、エントリータイミングが適切でない可能性があることを示します。
MT5最適化の新機能は?遺伝的アルゴリズム・フォワード機能が目玉
ここからは、MT5の最適化の新機能について紹介します。新機能の目玉は、遺伝的アルゴリズムとフォワード機能です。
MT5で最適化機能に追加された「遺伝的アルゴリズム」とは、最適化で検証するパラメータの組み合わせを絞って、最適化にかかる時間を短縮する機能です。一方「フォワード機能」とは、バックテスト期間を前半と後半の2つに分けて検証することで過剰最適化のリスクを減らす機能です。
この2つを含め、以下の点について詳しく紹介していきます!
- 遺伝的アルゴリズム
- フォワード機能
- 複雑な基準の最大値
- 以前の最適化結果の自動保存機能
遺伝的アルゴリズム
例えば最適化でパラメータの組み合わせが1,000通りあったとすると、完全アルゴリズムでは時間をかけて1,000通り全部やるしかないのに対して、遺伝的最適化では、もっと少ない数の組み合わせのみ検証します。
効率的な仕組みだポン!
組み合わせの数を絞っているにもかかわらず、1,000通りすべてやった場合と似た結果を得られるアルゴリズムという位置づけになります。ただし、もちろん最もいい結果を見逃してしまう可能性はありますので、膨大になりすぎない数であれば完全アルゴリズムを使った方が正確な結果が得られることもあります。
パラメータの組み合わせが少ない数だと、遺伝的アルゴリズムを選んでも実際はすべての組み合わせをチェックする完全アルゴリズムが適用されます。
フォワード機能
フォワード機能は、バックテスト期間を1/2、1/3、1/4などの割合で前半と後半に分割して、それぞれの成績を比較できる機能です。成績のよいパラメータを探しだす作業は前半のデータをもとに行うため、後半のデータは、それをリアル運用したらどうなるかをシュミレーションしたものになります。
通常のバックテスト、完全アルゴリズム、遺伝的アルゴリズムのどれでも使うことができますが、一番フォワード機能を使うメリットがあるのは遺伝的アルゴリズムです。
完全アルゴリズムの場合、前半の期間の成績上位の組み合わせすべてに対して、後半の期間の成績を算出します。完全アルゴリズムは、元々パラメータの組み合わせすべてのバックテストを行うものなので、前半・後半に分けたとしても、単に普通にバックテストした結果が分割で表示されるだけです。
同じ結果になるっコ
一方遺伝的アルゴリズムの場合、最適化を行う対象期間が変わると成績の良いパラメーターが変わってくるため、前半で最適化を行うと、後半は最適化が行われていない結果が表示されることになります。このため、フォワード結果を見ると、最適化をかけたパラメータをリアル運用するとどうなるかの参考にすることができます。
複雑な基準の最大値
MT5では、最適化で行ったバックテスト結果の並び替え基準に「複雑な基準の最大値」が追加されています。
並び替え基準は下記の8通りで、おおむね予想がつくものばかりですが、「複雑な基準の最大値」だけはよくわかりませんね。
- 残高最大
- 最大利益率(最大プロフィットファクター)
- 最大予想ペイオフ(最大期待利得)
- 最小ドローダウン
- 最大回復係数(リカバリーファクター)
- 最大シャープレシオ
- カスタム最大
- 複雑な基準の最大値
この「複雑な基準の最大値」は、メタクオーツの説明によれば、下記の項目を順に評価していっているそうです。
- 取引数
- ドローダウン
- リカバリーファクター
- 期待利得
- 最大シャープレシオ
単一の評価項目を使うよりバランスの取れたものを選ぶことができます。
「複雑な基準の最大値」のほかに、「カスタム最大」もMT5で追加されました。これは、MT5のバックテスト時に使用される「OnTester()関数」をソースコードに入れてカスタム基準を作成するものです。MQL5言語がわかる人は、カスタム基準を作成できます。
以前の最適化結果が自動で保存される
MT5で便利なのは、以前の最適化結果が自動で保存され、それを呼び出すことができる点です。
以前の最適化結果は、「概要」タブの「前の最適化結果を確認」というメニューから確認できます。
最適化の並列処理が可能
MT5では、最適化を行う際、PCのコアごとの並列処理が可能になりました。例えばパラメータの組み合わせが100通りあった場合で、自分のPCが10コアあったとすると、1コア1個のパラメータのバックテストを割り当てて、10個ずつ処理していきます。
そのため、「オプティマイズ結果」タブには、一定の間隔ごとに10個のバックテスト結果が追加されていきます。
自分のPC内でも最適化処理を分散できるのですが、それに加えて、自分の持つ別のPCやVPSで最適化を分散する「ローカルネットワークファーム(Local Network Farm)」や、ネットワーク経由でお金を払って他人のPCスペックを借りられる「MQL5クラウドネットワーク」の機能が利用できます。最適化を実行している最中も、自分が操作しているPCが重くならないのでとても便利です。
この二つのやり方についてはこちらの記事で詳しく紹介しています。↓↓↓↓↓
【まとめ】MT5のバックテスト・最適化には便利な機能がたくさん
MT4からMT5になったことで、バックテスト・最適化機能は相当進化したと思われます。そろそろMT6が出るかもなどという人もいますが、MT5でも十分な機能があるので、しばらくそれはないのではないかと予想しています。
MT4からMT5に変わったことで、操作方法やプログラミング言語が勉強しなおしになってしまったため、今からMT5に慣れるのに消極的な人もいるかもしれません。しかし、いつになるかわからないMT6を待つより、すぐMT5に移行してしまうのがおすすめです。
海外仮想通貨取引所デビューしてみませんか?
日本語サポート完備のBybitで仮想通貨に投資!
大手仮想通貨取引所、Bybitの詳しい解説
↓↓↓↓↓↓↓↓↓↓↓↓↓↓
コメント