MT4バックテストのやり方について

バックテスト

バックテストとは、過去のチャートデータを使ってEA(自動売買ツール)の性能を検証する方法です。MT4には「ストラテジーテスター」というバックテスト機能があらかじめ備わっており、このページではその機能を用いて、外部から取得したヒストリカルデータを取り込み、数年単位の精度の高いバックテストを行う方法について解説していきます。

※MT4標準のデータを使った簡易的なバックテストの方法については、こちらをご覧ください。
→「MT4バックテスト(簡易版)

バックテストの準備

1. ヒストリカルデータの準備

ヒストリカルデータとは過去チャートデータのことです。MT4には最初からある程度のデータが入っていますが、特に1分足のデータは数か月程度しか入っておらず、数年単位で検証するには不足します。またデータ品質も重要になるので、より正確に検証したい場合は外部から高品質なデータを取り込む必要があります。

このページでは無料で使え、なおかつ品質が高いとされる「AXIORY(アキシオリー)」のUSD/JPYのデータを使って説明していきます。
まずは、以下のページへ飛び、USD/JPYの2015年以降のデータを全てダウンロードし、展開してください。

アキシオリーのMT4 ヒストリカルデータ | 今すぐ無料ダウンロード!

2. 最大バー数を増やす

「ツール」→「オプション」→「チャート」と進み、「ヒストリー内の最大バー数」と「チャートの最大バー数」を最大にします(「9」を長押し)。

ヒストリー内の最大バー数 … MT4に保存できる最大のバー(ローソク足)数
チャートの最大バー数 … チャート画面に表示する最大のバー(ローソク足)数

「OK」を押下し、MT4を一旦閉じて再起動します。再度オプションを開き、自動的に最大値へ調整されていることを確認します。(一般的に「2147483647」になります。)

3. 既存のヒストリカルデータの削除

①ヒストリカルデータフォルダを開く

「ファイル」→「データフォルダを開く」と進み、「history」を開きます。

続いて、デモ口座のフォルダを開きます。(ライブ口座でもできますが、ヒストリカルデータの削除を行うため、実運用環境に影響が出る場合があり、デモ口座側で行うことをおすすめします。なお、デモ口座は上の画像にある「デモ口座の申請」から簡単に作成できます。)

②チャートを閉じてからMT4を閉じる

ここで、これからバックテストを行う通貨ペアのチャートをMT4上からすべて閉じた後、MT4を一旦終了します(デモ口座のフォルダは開いたまま)。
→MT4起動中はヒストリカルデータ(hstファイル)を読み込んで使用しているので、そのメモリデータが残らないようにするためと再起動時に基準となる1分足以外のデータが入り込むのを防ぐためです。

今回の場合は「USD/JPY」でテストを行っていくので、「USD/JPY」のチャートを閉じ、それからMT4を閉じます。

③ヒストリカルデータの削除

開いているデモ口座のフォルダのヒストリカルデータを削除します。対象通貨の.hstファイルを全て削除してください。

削除し終わったら、デモ口座のフォルダを閉じ、MT4を起動してください。

4. ヒストリカルデータのインポート

「ツール」→「ヒストリーセンター」と進み、「Forex」を開きます。

対象の通貨ペアの「1分足(M1)」を開きます。

自動で1日分程度のデータが取得されますが、これはMT4標準のヒストリカルデータです。今回は外部ヒストリカルデータを使用するため、「インポート」を押して外部データを取り込みます。

以下のウィンドウが開いたら、参照ボタンを押して、ダウンロードしたAXIORYのヒストリカルデータを選択していきます。(zipファイルではなく展開後のファイルを使用してください。)

今回の場合、2015~2026年のデータをダウンロードしましたが、確定済みの年、2015~2025年については末尾が「all」となっている年間データファイルを、現在進行中の2026年については月ごとのファイルを1つずつインポートしてください。

「OK」を押すと、インポート画面に戻りますので、インポートを繰り返し行ってください。

5. ヒストリカルデータの期間の確認

一通りインポートが完了したら、ヒストリカルデータの期間の確認を行います。

今回の場合、「2015/1/2~2026/3/31」の範囲でバックテストをすることになります。

2026年3月31日までのデータがAXIORYのヒストリカルデータ、2026年5月18日以降のものは、ヒストリセンターを開いた際に自動で1日分取得されたMT4標準のヒストリカルデータです。データが混在し、バックテストの結果が不正確になるのを防ぐため、バックテストには2026年3月31日までのAXIORYのデータのみを使用します。
(直近のデータを用いてバックテストをする方法についてはこちらをご覧ください。)

6. 上位足のデータ作成

オフラインチャートを使って、インポートした1分足のデータを元に上位足を作成していきます。

①オフラインチャートを開く

「ファイル」→「オフラインチャート」と進み、「USD/JPY, M1」を選択して、「開く」を押してください。すると、(offline)と表示された新規チャートが開きます。

②5分足の作成

オフラインチャートを選択状態にし、左側のナビゲータの「スクリプト」から「PeriodConverter」をダブルクリックします。

「パラメータの入力」タブの「値」に「5」を入力し、「OK」を押してください。1分足のローソクが5本まとめられて5分足のデータが作成されます。

オフラインチャートリストを見ると、新しくM5データが作成されているのが確認できます。

③その他上位足の作成

5分足の場合と同様に、「15分足」「30分足」「1時間足」「4時間足」「日足」のデータを作成していきます。

作成する足入力値
15分足(M15)15
30分足(M30)30
1時間足(H1)60
4時間足(H4)240
日足(D1)1440

なお、時間足を続けて作成する際、下のようなポップアップが表示されますが、これは「現在チャートに適用されているPeriod Converterを終了し、新しい設定で再適用するか?」という確認なので、「はい」を押して問題ありません。

すべての設定が完了したら、オフラインチャートリストで、日足までデータが作成されているか確認します。

確認ができたら、MT4を閉じ、再起動してください。
以上で、バックテストの準備は終了です。

バックテストの方法

1. ストラテジーテスターを開く

ストラテジーテスターを開き、下部にテスターウィンドウを表示させます。

2. 各種設定①

以下は設定例です。

  • エキスアドバイザー
    BreakEntry_EA_スタンダード.ex4 → 検証に使用したいEAの名前を選択
  • 通貨ペア
    USD/JPY → 検証したい通貨ペアを選択
  • 期間
    M30 → 検証したい時間足を選択
  • モデル
    全ティック → 最も精度の高いバックテストの方法。その他の方法は非推奨。
  • スプレッド
    現在値 → 現在の市場でのスプレッドを使用してテストする。
  • 期間を指定
    チェック☑を入れて、ヒストリカルデータの開始日と終了日を入れる。
    →「5. ヒストリカルデータの期間の確認」で確認した開始日・終了日を入力。

3. 各種設定②

右側のエキスパート設定を開きます。

「テスト設定」タブの「初期証拠金」で、バックテスト開始時の口座残高を設定します。
デフォルトでは通貨が「USD(ドル)」となっているため、日本円で検証したい場合は、通貨欄に「JPY」と入力して変更します。
画像の設定例では、「5万円の資金からバックテストを開始する」という意味になります。

設定が完了したら、「OK」を押して画面を閉じます。

4. バックテストの開始

ここまで設定できたら、いよいよバックテストの開始です。「スタート」を押して始めてみてください。
下のステータスバーが右までいったら完了です。「結果」や「グラフ」、「レポート」を参照し、成績を確認してみましょう。(レポートの見方についてはこちらの記事をご覧ください。)

<結果の例>

<グラフの例>

まとめ

いかがだったでしょうか。MT4で数年分のバックテストを行うためには、事前に多くの準備が必要であることが理解できたと思います。また、より正確なテストをするためには外部のヒストリカルデータとMT4が自動で取得するヒストリカルデータが混在しないよう細心の注意を払いながら準備を進めていかなければなりません。一方、EAの性能を評価する上でバックテストは欠かせない作業です。今回作成したヒストリカルデータを使えば、約10年分の検証が可能ですので、EAの作成とテストを繰り返しながら、より完成度の高いEAへとブラッシュアップしていきましょう。