いつも読んでいただき、ありがとうございます。りゅーきです。
前回の記事では、ターミナルウィンドウの見方について説明しました。
今回は、EAのバックテスト(Strategy Tester)の方法について説明します。
MT4には、過去の価格データ(ヒストリカルデータ)を利用してEAの動作を検証する機能があります。それがStrategy Testerです。一般的にはバックテストと呼ばれます。
市販EA(無料EA含む)にしろ自作EAにしろ、
運用前には必ずバックテストするようにしてください。
市販EAの中には嘘をついていたり、都合の悪いところを隠していたりするケースがあります。販促ページにはそれが聖杯かのように書かれていることが殆どですが、鵜呑みにしてはいけません。本当にその情報が正しいか自分で確かめる必要があります。自作EAの場合は、自分が想定した通りに動作するかを確認しなければなりません。
バックテストは以下の7つの手順で構成されます。
①EAのインストール
②EAのパラメータの設定
③バックテストの条件の設定
④ヒストリカルデータの入手
⑤バックテストの実行
⑥結果の確認(レポート)
⑦結果の確認(チャート)
①EAのインストール
EAをMT4にインストールします。インストール先は「
MT4のフォルダ構成」をご参照ください。
②EAのパラメータの設定
MT4画面上部の

ボタンをクリックするか「Ctrl」+「R」キーを押下して、テスターウィンドウを表示します。

「Expert Advisor」プルダウンからバックテスト対象のEAを選択し、「Expert properties」ボタンをクリックします。
「Testing」タブでは、初期投資額、口座通貨、ポジションタイプを入力します。基本的にデフォルトで問題ないでしょう。

次に、「パラメーターの入力」タブをクリックし、EAのパラメータを入力し、「OK」ボタンをクリックします。

チャートに挿入したEAとバックテストで使用するEAのパラメータファイルは別々に管理されていますのでご注意ください。
チャートに挿入したEAのパラメータを流用したい場合は、事前にパラメータファイルをエクスポートしておいて、ここでインポートしましょう。EAのパラメータファイルのエクスポート/インポートの方法は「
FX自動売買のためのMT4の基本操作」をご参照ください。
③バックテストの条件の設定
「通貨ペア」および「期間」プルダウンで適切なものを選びます。また、バックテストの実施期間を指定したい場合は、「日付と時間を使用」のチェックを入れて、「開始日」と「終了日」を指定します。
「モデル」プルダウンについては、「Every tick」を選んでおけば、問題ありません。文字通りティックごとにテストしてくれますので、最も高い精度になります。ただ、その分時間がかかります。

なお、「通貨ペア」プルダウンに表示される選択肢は気配値表示ウィンドウに表示されている通貨ペアになります。
④ヒストリカルデータの入手
続いて、バックテストのためのデータを用意します。
「ツール」‐「オプション」を選択し、「ヒストリー内の最大バー数」と「チャートの最大バー数」を9999999999に変更し、「OK」ボタンをクリックします。その後、再度確認すると2147483647(最大値)になっていると思います。

「
MT4の動作を軽くするための設定変更」では、この数値はできるだけ小さい方が良いとお伝えしましたが、バックテストの時は逆に最大値まで増やしてください。というのも、バックテストでは、ここに設定したバー(足)の数を上限としてテストするためです。この値が小さいと、バックテストで用いるバーも減ってしまいます。
設定を変更したら、MT4を再起動しましょう。
MT4の再起動が終わったら、今度はヒストリカルデータをダウンロードします。
「ツール」-「History Center」を選択します。ダウンロードしたい通貨ペアをダブルクリックし、「1 Minute(M1)」をダブルクリックします。そして、「Download」ボタンをクリックします。
MetaQuotes社のヒストリカルデータのダウンロードが開始します。ヒストリカルデータのダウンロード先は「
MT4のフォルダ構成」をご参照ください。

スクロールして、ダウンロードできていることを確認した後、「閉じる」ボタンで閉じます。

⑤バックテストの実行
「スタート」ボタンをクリックします。バックテストが始まります。
⑥結果の確認(レポート)
正常終了すれば、「結果」タブ、「Graph」タブと及び「レポート」タブにバックテスト結果が表示されます。


「レポート」タブにある「Modelling quality」が90%になっていることを確認します(100%にはならないです)。これはテストの精度を表すもので、ヒストリカルデータが不足していたりすると、下がります。(「Every tick」ではなく「Open prices only」を選んだ場合は、必ずN/Aになります)
結果が何も表示されないといった問題が発生した場合は、「操作履歴」タブにエラーが表示されていますので、エラー内容を確認して対策を講じます。
テスターウィンドウ上では見づらいということであれば、ログは、MT4インストール先\tester\logsにあるyyyymmdd.logに格納されていますので、ご確認ください。
ちなみに、ヒストリカルデータには全てのティック情報が記録されているわけではありません。FX業者のヒストリカルデータでさえも完全ではありません。実際、FX業者のヒストリカルデータを使ったバックテスト結果と実運用のトレード結果は一致しません。また、バックテストではスプレッドが常に一定ですし、滑りもありません。
これらのことから、バックテストはあくまで補助的な機能であり、その結果を鵜呑みにしてはいけません。まぁ、バックテストですら成績の出ないEAは論外ですが…。
さて、バックテスト後はテスト結果を評価するのですが、テスターウィンドウだと見づらいので、レポートを出力します。
テスターウィンドウの任意の場所で右クリックして「レポートの保存」を選択します。

レポートの保存先を聞かれるので、好きな場所を指定して、「保存」ボタンをクリックします。

すると、レポートがウェブブラウザに表示されます。

これを見ながら評価することになります。詳細は、「
EAのバックテストのレポートの見方」をご覧ください。
⑦結果の確認(チャート)
「セッティング」タブの「Open chart」ボタンをクリックすると、バックテストで使ったチャートが表示されます。
「結果」タブのトレード行をダブルクリックすると、そのトレードを行った場所にジャンプしてくれます。これを見れば売買タイミングが分かります。

本記事では最適化について触れませんでしたが、最適化については「
EAの最適化」をご覧ください。
次回は、
EAのバックテストのレポートの見方について説明します。