プログラミングを学んでこれからEAを作ろうとしている方、あるいは、裁量トレーダーではあるけれど簡単なロジックをEAでさくっと検証したい方は多いのかと思います。
しかし、ストラテジーテスターの使い方を知らないとEAのバックテストを行うことはできません。
この記事では、MT5でのストラテジーテスターの使い方をご紹介いたします。
- MT5でのバックテストのやり方
- ロジックが思ったとおりに実装できているかの確認方法
- 最適化の方法
バックテストの流れ

- バックテストをするEAを用意する
- EAのロジックが意図した通りに実装できているかを確認する
- ある程度の期間を動かして成績を確認する
- 最適化を行う
以上のような流れになっております。
なお、1番目のEAの作り方についてはこの記事では割愛いたしますので、2番目から解説していきます。
ストラテジーテスターのメニューを表示させる
まずは、ストラテジーテスターのメニューを表示させなくてはなりません。
以下いずれかの操作を行いメニューを表示させます。
- Ctrl + R キーを押下
- ツールバーの「表示」をクリック > 「ストラテジーテスター」をクリック

上記操作を行い、以下のようなメニューが表示されればOKです。

赤枠の中に様々なバックテストの機能がありますが、私がよく使用する機能は以下のとおりです。
- 単一
- 単一のパラメータ、通貨ペアの結果を知りたいときに使用する
- 可視化
- EAのロジックが正しく実装されているかを確かめるときに使用する
- 最適化を完了
- 指定したパラメータの全パターンを検証するときに使用する
- 市場スキャン
- どの通貨ペアが相性が良いかを知りたいときに使用する
ざっくりと以上のような感じです。
他にも様々な機能がありますが、あまり使ってなかったり正直よく分からない機能もあったりします。
また、バックテストを行うEAの選択や、期間の指定等は以下のメニューで行います。

- バックテストするEA
- 銘柄
- 時間足
- 期間(開始~終了)
- モデル
- 全ティック
- 始値のみ
- オプティマイズ
- 無効化
- 完全アルゴリズム(遅い)※最適化を完了
- 遺伝的アルゴリズム(早い)※遺伝的最適化
- 気配値表示で選択されたすべての銘柄※市場スキャン
- ビジュアルモード※可視化
モデルについては他にもありますが、私は上記2つをよく使用しております。
「※」が付いているものについては、以下の赤枠の機能と連動しているものになります。

例えば、「最適化を完了」を選択した場合は、オプティマイズには「完全アルゴリズム」が選択されているイメージになります。
EAのロジックが意図した通りに実装できているかを確認する

EAを作ったらまずは、そのEAのロジックが意図した通りに実装されているかを確認する必要があります。
意図した通りに実装されていない場合は、再度EAのソースコードを修正しなければなりません。
なお、EAのロジックが複雑になりすぎると、それが正しいのかどうかわかりづらくなってしまいますので、ロジックを分割して確認したり、少しずつ増やして確認していくことをおすすめします。
いきなり複数ロジックの正当性を確認するのはおすすめしません。
また、他者が作成したEAを使用する場合も、まずはどのような動きになっているかを確認した方が良いでしょう。
では、手順を解説していきます。

赤枠で囲った「可視化」という機能を選択します。
すると、以下のメニューが表示されておりますので、EAや期間等を確認してスタートを押下します。

すると、新しいウィンドウが出てきて、動いているチャートでエントリーのポイントを確認することができます。

青枠のところでロングエントリーしておりますが、このロジックはMAのゴールデンクロスでロング、MAのデッドクロスでショートというロジックなので、正しく実装されていることが確認できました。
もし、意図しない方法でエントリーしていたらEAのソースコードの修正を行います。
ちなみに、赤枠で囲った機能をよく使用しますので、以下でご紹介いたします。
- 再生/停止ボタン(ショートカットキー:space)
- チャートが動く速度(右に行くほど早い)
- ステップ実行(ショートカットキー:F12)
ステップ実行については、ローソク足を1本ずつ進めることができる機能です。
自分のペースでチェックしたいときに便利な機能となっております。
ある程度確認できたらウィンドウ右上の「×」ボタンをクリックして終了します。
ある程度の期間を動かして成績を確認する
EAの実装に問題ないことを確認できたら、次はそのEAの成績を確認します。
EAの作りにもよりますが、ここではサクッと確認できる「始値のみ」のモデルを使用すると良いでしょう。
もちろん「全ティック」で確認しても良いですが、テストに時間がかかったりします。
まぁ時間がかかると言っても、数年間を数十分でテストできるので充分早いんですけどね。
一方「始値のみ」でテストする場合は、数秒で終わることもあるくらい高速です。
では、手順を解説していきます。

赤枠で囲った「単一」という機能を選択します。
すると、以下のメニューが表示されておりますので、EAや期間等を確認してスタートを押下します。

バックテスト実行中は以下の画像の赤枠内のような形で、予想時間と進捗率が表示され、スタートボタンの代わりにストップボタンが表示されるようになっております。

EAのロジックや、期間設定・時間足の設定によっては、一瞬でテストが完了する場合もあります。
その場合は上手のような表示が見えない可能性もありますが、グラフ等の結果が出ていれば正常にテスト完了しておりますのでご安心ください。
今回は、動いているチャートが表示されることはありませんが、資産推移のグラフや、EAの成績などがすぐに出力されます。


時間や曜日ごとの損益が分かるので非常に便利です。
特に時間ごとの損益については、FXでは時間帯によって値動きの特徴が違ったりしていますので、あまりにも成績が悪い時間帯はエントリーしない等の対策をすることでEAの成績がよくなったりもします。


ここである程度の成績を見込めるEAであれば次のステップに進みます。
最適化を行う
EAには外部パラメータを設定することができます。
外部パラメータとは、EAを稼働させる際にロット数やストップ幅を利用者に入力させ、その値を使用することができるというものです。
たとえば、MAのクロスによってエントリーするロジックの場合、MAの期間はどのくらいがいいのかを調べたいときに「最適化」というものが便利になります。
しかも複数のパラメータに対して複数の値を指定できるので、MAのクロスであれば短期MAと長期MAの2つのパラメータがあり、それぞれパラメータの範囲も設定できるので、1回のテストで数百パターンのテストが出来たりする優れものになっております。
では、手順を解説していきます。

赤枠で囲った「最適化を完了」という機能を選択します。
ちょっと機能名が不自然ですが、おそらく英語を直訳したためこのような名称になってしまったのでしょう。
すると、以下のメニューが表示されておりますので、EAや期間等の確認に加えて、パラメータの設定をしてスタートを押下します。


少々難しい部分がありますので、その部分を解説していきますね。
- チェックボックスは以下の3種類がある
- 灰色のチェック
- 固定パラメータを使用する
- 図③の部分で値を指定する
- ソースコード上では「sinput」と定義
- 緑色のチェック
- パラメータを範囲で指定する
- 図④の部分で値を指定する
- ソースコード上では「input」と定義
- クリックすることで赤色のバツに変化する
- 赤色のバツ
- 固定パラメータを使用する
- 図③の部分で値を指定する
- ソースコード上では「input」と定義
- クリックすることで緑色のチェックに変化する
- 灰色のチェック
- それぞれの意味
- スタート
- テストする最小の値を指定
- ステップ
- テストごとに変化させていく値を指定
- ストップ
- テストする最大の値を指定
- スタート
- 例えば、スタート20、ステップ5、ストップ80の場合は「20, 25, 30, …, 80」と13回分のテストを行う
実行すると以下のような結果が出力されます。

こちらは結果が良かった順に一覧表示されます。
一番上を選んでしまいがちですが、オーバーフィッティング(過剰最適化)になってしまう可能性があるので、他の結果も参考にしたほうが良いです。

続いて、損益の分布を表すグラフになります。
薄い実線が引かれた部分が損益分岐点になるのですが、上図の場合は、数量こそはどちらが多いのかは判断しづらいですが、利益(上)よりも損失(下)の方が幅が広いので、このロジックについてはリスクが高いということが直感的にわかります。
優秀なEAであれば、パラメータのパターンを増やしても利益が出ている部分のほうが数が多く、幅も多くなるはずです。
ちなみにこの表上で右クリックを押すと以下のコンテキストメニューが出てきて、「2Dグラフ」を選択すると、優秀なパラメータが視覚的に分かるような図が表示されます。

それが以下の図です。

緑色が濃い部分が利益の高かったパラメータになるのですが、選ぶポイントとしては、単純に濃い部分を選ぶだけではなく、その周りにも着目したほうが良いです。
1つだけポツンと濃い色になっていてその周りの8方向が真っ白だったりすると、たまたま良い結果が出た可能性が高いからです。
図の赤枠の部分が比較的濃い目の色が密集しており、青枠の部分が最も濃くなっていますので、この場合では「35,115」の値を使用すると良いでしょう。
まとめ
いかがでしたでしょうか。
この記事では以下の解説を行いました。
- バックテストの流れ
- ストラテジーテスターのメニューを表示させる
- EAのロジックが意図した通りに実装できているかを確認する
- ある程度の期間を動かして成績を確認する
- 最適化を行う
バックテストをする上で特に気をつけたいのがオーバーフィッテング(過剰最適化)というものです。
オーバーフィッティングをしてしまうと、テストを実施した期間においては良い成績が出るのですが、それ以外の期間では成績が良くないEAになってしまう可能性があるのです。
つまり、バックテストでは良い成績を出したのに、実運用では全く稼げないダメなEAということです。
これを防ぐためには、パラメータの最適化はほどほどにし、バックテストの期間も直近3年くらいは控えておき、ある程度パラメータの最適化が済んだあとで直近3年間でテストすると調度良いかと思います。
あとは、EAを実運用する前に一度は「全ティック」によるテストを行った方が良いかと思います。
ロジックによっては結構結果が変わってきたりするので。
また、今回ご紹介した内容以外にもMT5には様々なバックテストの機能を搭載しておりますので、ご自身の使いやすい方法を模索していただければと思います。
以上、この記事が参考になったら嬉しいです。
コメント