バックテストとは、EA(自動売買プログラム)を過去のデータを元に、どのような取引を行っているのか、損益や勝率はどうなのかといったことをテスト稼働させ、検証することです。
EAを入手する際、バックテスト結果のデータなども載っていると思いますが、使いたいEAを自分で検証してみて使用するかどうかを判断する方が賢明です。
本記事では、MT4でバックテスト(検証)をする方法を紹介します。最初は少し複雑に感じるかもしれませんが、慣れればそう難しい作業ではありません。順番に見ていきましょう。
\期間限定!新規口座開設で20,000円分の証拠金が貰える! /
1. FXDDでヒストリカルデータをダウンロードする
まずはバックテストで使うヒストリカルデータをダウンロードします。
ヒストリカルデータはMT4からでもダウンロードできるのですが、正確性に欠けているといわれています。
そのため今回は「FXDD」のヒストリカルデータを使用します。
ダウンロードリンク
こちらでバックテストに使用したい通貨ペアのヒストリカルデータをダウンロードします。
ここでは例として「EUR/USD」をダウンロードします。
ダウンロードしたフォルダ中にhstファイルが入っています。このデータをMT4にインポート(データ取り込み)していきます。
バックテストでは膨大なヒストリカルデータを使用します。PCのスペックが足りない場合、MT4が重くなる原因にもなるので、バックテスト用のデモ口座などを準備しておくことを推奨します。
2. MT4のヒストリカルデータを削除しておく
先程のデータをインポートする前に、MT4内の余分なヒストリカルデータは削除しておきましょう。(前述したようにMT4のヒストリカルデータは正確性に欠けるため)
また今回の作業時には、チャートを閉じて何も表示しないようにしておきましょう。(余計なヒストリカルデータが作成されるのを避けるため)
2-1「ファイル」タブの「データフォルダを開く」をクリックします。
2-2「history」をクリックして開きます。中に「downloads」、「使っているFX会社名」のフォルダがあります。(今回の例では「GemTrade-Demo」が使っているFX会社のフォルダになります)
2-3 この2つのフォルダ中の「.hst」の拡張子がついた、該当通貨ペアのヒストリカルデータファイルをそれぞれ削除します。
削除したら一度MT4を閉じて、再起動させましょう。
3. ダウンロードしたヒストリカルデータをインポートする
余計なヒストリカルデータを削除したら、いよいよダウンロードしたヒストリカルデータをインポート(データ取り込み)していきます。
3-1「ツール」タブの「ヒストリーセンター」をクリックします。
3-2「FOREX」タブの「該当通貨ペア」(この例ではEURUSD)の「1分足」選択し「インポート」をクリックします。
3-3「参照」をクリックしダウンロードしたヒストリカルデータ(.hstファイル)を選択しOKをクリックします。
ダウンロードした.hstファイルが保存した場所にない場合は、表示する拡張子を「全て」にします。
3-4 表示されるまで少しタイムラグがあるかもしれませんが、データベースに2005年1月からのレコードが追加されていれば「閉じる」をクリックします。
ここで再度データを反映させるために、MT4を再起動します。
これでインポートは完了です。
4. オプションのバー数の設定を変更する
デフォルトの設定では、バックテストができる期間は1年5ヵ月ほどです。長期間でバックテストを行うために設定を変更しておきます。
4-1 まず「ツール」タブの「オプション」をクリックします。
4-2 オプションを開きましたら、「チャート」を選択し、「ヒストリ内の最大バー数」と「チャートの最大バー数」を99999999999999と全ての桁を9で入力してOKをクリックします。
4-3 再度オプションを開いて「ヒストリ内の最大バー数」と「チャートの最大バー数」を確認すると「2147483647」になっていれば設定はOKです。
5. スクリプト「period_converter_ALL」を使って各時間足を作成
次に先程インポートした1分足のヒストリカルデータを元に、スクリプト「period_converter_ALL」を使って各時間足のヒストリカルデータも併せて作成していきます。
各時間足を一括で作成するスクリプト
まずこれを上記リンクからダウンロードします。
5-1 「ファイル」タブの「データフォルダを開く」をクリックします。
5-2 「MQL4」→「Scripts」とクリックして、その中に先程ダウンロードした「period_converter_ALL」ファイルをコピーまたはドラック&ドロップで貼り付けます。
反映させるために、MT4を再起動させます。
5-3「ファイル」タブの「オフラインチャート」をクリックします。
5-4 インポートしたヒストリーデータを選択して「開く」をクリックします。
5-5 開いたオンラインチャートに、ナビゲータウインドウの「スクリプト」から「period_converter_ALL」をダブルクリック、またはチャート上にドラック&ドロップします。
各時間足の作成が自動的に始まりますので、チャート左上の数字の表示がなくなるまで待ちます。
5-6 表示がなくなったら「ファイル」タブから「オフラインチャート」を開いてみましょう。
各時間足が追加されていれば成功です。
6. バックテスト内容の設定
まだもう少し準備をします。最後にバックテストの期間や数値などの設定を決めましょう。
6-1 「表示」タブの「ストラテジーテスター」をクリックします。
6-2 設定ウインドウが開きますので各項目を設定していきます。
ストラテジーテスターの設定
①エキスパートアドバイザー | バックテストをするEAを選択 |
② 通貨ペア | 通貨ペアを選択(使用するEAに対応した通貨ペアを選択します) |
③ モデル |
使用するチャートデータのモデルを選択 |
④ 開始日終了日 | 期間を指定にチェックを入れ開始、終了日を設定 |
⑤ 期間 |
時間足を選択(各EAが推奨している時間足) |
⑥ スプレッド | テスト時に想定するスプレッドを選択※単位1point=0.1pips(2.5pipsなら25) |
⑦ エキスパート設定 | EAのパラメータの入力 |
⑧ チャートを開く | 売買ポイントの確認などを行います |
①~⑧までの各項目を選択または入力していきます。
③ モデルのタイプ
- 「全ティック」 → 一番正確なデータが取ることができますが時間はかかります。
- 「コントロールポイント」 → 時間が短いですが、簡易的なものになり、あまり使用しません。
- 「始値のみ」 → 始値に基づくバックテストです。EAが始値で動くものであれば、全ティックより少ない時間で終わりつつ、正確性もあるのでこちらを選択してもいいです。
基本的には正確なデータが取れる「全ティック」で検証しましょう
また、⑥のスプレッドでは「現在値」を選択する事もできます。基本的に現在値で問題ないですが、土日や早朝など変動が激しい時は固定で設定しましょう。
⑦エキスパートの設定
エキスパート設定の「テスト設定」タブを開くと初期証拠金を設定できます。単位はプルダウンから選択できる他に、直接「JPY」と入力することで日本円でのテストも行えます。
今回はデフォルト設定のままで行います。
エキスパート設定の「パラメータの入力」タブを開くと、そのEAのパラメータを入力できます。
パラメーターを上手く設定する事でより、EAがパフォーマンスを発揮できるように「最適化」することができます。
ダウンロードしたEAには最適なパラメータを登録した.setファイルがついていることもあります。その場合はここで読み込みをクリックして、.setファイルを選ぶことで、パラメータを読み込むことができます。
今回はデフォルトのままバックテストを行ないます。
7. バックテストの開始
ここまで色々と設定してきましたが、いよいよバックテストを行ないます。
7-1 設定が完了しましたら「スタート」をクリックします。
7-2 テスト中は緑色のバーが進んでいきます。バーが右端までいき、「ストップ」の表示が「スタート」に戻っていれば完了です。
バックテスト完了するまでの時間は選択したモデルや期間、PCのスペックなどでも変わってきます。のんびり待ちましょう。
7-3 完了しましたら。下部の「レポート」タブからテスト結果が確認できます。
不整合チャートエラーが0なら設定した項目での正しいテスト結果が出ています。
設定したスプレッドなどによってもテスト結果は大きく変わります。色々と試してみてください。
またテスト結果上を右クリックで「レポートの保存」を選択すると今回のテスト結果を保存することができます。再度テストするのは時間と手間がかかるのでわかりやすい名前で保存しておくことをおすすめします。
バックテストが上手くいかない時
「バックテストがきちんとできない・動かない。」「バックテストはできるけどテスト結果の表示がおかしい。」という時は以下の記事で対処方法を紹介していますので参考にして下さい。
7-4 レポートを保存するとブラウザでもレポート内容が表示されます。
バックテスト結果の見方
バックテスト結果の見方ですが、特に重視しておきたいのは以下の項目です。
- 不整合チャートエラー ・・・ 0以外の不整合があるテスト結果は信頼度が下がる
- プロフィットファクター ・・・ 総利益が総損失の何倍なのかを示す数値。使える目安の数値は「1.25」以上(大きすぎも注意)
- 相対ドローダウン ・・・ 最も「下落率」が大きかった時の比率。20%以下だと優秀
- 総取引数 ・・・ バックテストした際の総取引数。取引数が多いほどテストの正確性が高まります
各項目についての更に詳しい説明については以下の記事で詳しく解説していますので是非参考にして下さい。
本格的にMT4で自動売買を行うならVPS環境を用意しよう
自動売買を行う場合PCを24時間稼働させておく必要があります。電気代もかかりますし、停電や急な故障、回線速度等、安定して稼働させるのは難しいと思います。
そこでVPSサービス(仮想デスクトップ)の利用する事をおすすめします。
ネットワーク上の仮想PCでMT4を実行することになるので、自宅のPCをオフにしても問題なく、サーバーも安定しているので本格的、長期的に自動売買を行う方は必ず利用しておきたいサービスです。
VPSに関しては下記の記事で紹介しています。
\無料VPSサービスが利用可能なFX業者/
まとめ
今回は少し長くなりました。最初は面倒に感じると思いますが、使っていくうちに慣れていくかと思います。
また検証で良好な結果が出たからといって過信は禁物ですが、使用するか判断する指標にはなるかと思います。
是非バックテストを活用してみてください。