MT4でバックテストをおこなう方法

バックテストについての概要

バックテストとは、自作または取得したEAが過去の為替相場でどのような成績となったのかをMT4で確認・検証をする作業のことであり、過去の為替相場で優れた成績となれば実際の口座でEAを稼働させてみるなどの判断ができるようになります。このページではMT4を使用して正しくバックテストをおこなう方法をご案内していきます。

ご注意点として、バックテストはそれほど簡単な作業ではなく、過去にMT4中級者レベル10名を集めてバックテストを正しく実行できるかを検証したところ、成功者はわずか1名という結果でした。バックテストを成功させるためには、過去のヒストリカルデータを削除し、高精度なヒストリカルデータをインポートし、スプレッドを2pipsなどに固定させるなどの正確なステップが必要となります。そのため当社の無料EAの使用を検討されているMT4初心者の方は、サイト上に公開しているバックテスト結果を判断材料として実稼働をするかしないかを決めていただくことをお勧めします。

当サイト上で公開している無料EAページのバックテスト結果はデフォルト設定での結果です。ご自分でバックテストを実行された方は、当社のバックテスト結果とおおよそ一致していれば成功、大きく乖離していればバックテストに失敗しているとお考えください。それでは以下にMT4を使用した正しいバックテストの方法について解説していきます。

正しいバックテストの方法を解説

正しいバックテストの方法を解説

MT4内のヒストリカルデータとEAの確認

ステップ1

これから検証したいEAが指定する通貨ペアを確認し、その通貨ペアのヒストリカルデータがMT4に正しくインポートされているかをご確認ください。ヒストリカルデータの設定が不十分であればEAのバックテスト結果も不正確なものとなります。ヒストリカルデータの設定に不安がある方や設定ができていない方は、バックテストの設定を進める前に以下ボタンからヒストリカルデータの設定ページへお進みください。

当ページでは「EURUSD」の通貨ペアEAでバックテストを実行する方法を解説していきます。まずはMT4のツールバーから「ファイル」→「オフラインチャート」と進んでいただき「オフライン・チャートリスト」を表示させてください。

オフライン・チャートリストを表示

オフライン・チャートリストのヒストリーデータ(画像左の赤枠)をみると「EURUSD、M1(1分足)」から「EURUSD,Daily(日足)」が表示されています。MT4で正しくバックテストをおこなうには上記のようにEAが使用する通貨ペアと全ての時間足のデータがMT4にインポートされている必要があります。

右側の赤枠はインポートをしたヒストリーデータがカバーしている期間を表しており、差出人の列には最も古いデータ、終了の列には最も新しいデータの期間が表示されています。これは「差出人から終了」までの期間であればMT4でバックテストがおこなえるということも表しています。特に問題がみられなければ「×」でオフライン・チャートリストを閉じてください。

ヒストリカルデータの確認2

MT4でストラテジーテスターの設定

ステップ2

MT4のツールバーに、ストラテジーテスター(赤枠)のロゴがありますのでクリックをおこない凹んだ状態にしてください。凹んだ状態となれば下部にストラテジーテスターが表示されます。ストラテジーテスターとはEAの過去取引を呼び出せるMT4の機能です。 過去にそのEAがどこでエントリーをして、どこで利確や損切をしたのかを確認することができます。

ストラテジーテスターの表示

MT4の下部にストラテジーテスターが表示されたと思います。以下画像の赤枠部分が「エキスパートアドバイザ」になっていることを確認していただき、なっていない場合はエキスパートアドバイザに変更してください。

エキスパートアドバイザに変更

次は、以下画像を参考に▼部分をクリックして下さい。MT4に格納されている全てのEAが表示されますのでバックテストを実行したいEAを選択してください。EAが見つからない場合は、MT4のツールバーの「ファイル」から「データフォルダを開く」を選択し、「MQL4」→「Experts」と進んで検証したいEA(ex4またはmq4ファイル)を入れてください。

EAを選択

次に通貨ペアと表示されている▼部分をクリックしてください。このボックス内にはバックテストがおこなえる通貨ペアの一覧が表示されていますので、バックテストを実行したい通貨ペアを選択してください。当ページではEURUSDを選択してバックテストをおこなう方法をご案内しています。

通貨ペアの選択

次は期間と表示されている▼部分をクリックしてください。このボックスには時間足が表示されますのでEAが指定する時間足を選択してください。当ページではM5(5分足)を選択して案内を進めていきます。

時間足の選択

次はモデルと表示されている▼部分をクリックしてください。モデルのボックスでは、どのレベルの精度でバックテストをおこなうかを選択します。全ティック、コントロールポイント、始値のみ、の3種類があり以下の意味がそれぞれにあります。当ページでは全ティックを選択します。

・全ティック : 最も正確なバックテストができますが、最も時間を必要とします。
・コントロールポイント : 全ティックよりも精度は落ちますが、テストは早く終了します。
・始値のみ : 精度は一番劣りますが、最も早くテストは終了します。

モデルでバックテストの精度を選択

次はスプレッドと表示されている▼部分をクリックしてください。スプレッドとではバックテストをおこなう幅を選択することができます。数値は0.1pips単位となっていますので「2」の場合は0.2pips、「30」の場合は3pipsとなります。現在値を選択すると利用しているMT4のその時点でのスプレッドが適用されますが、バックテストのたびに異なる結果となるため一般的に選択されません。その他にもスプレッドのボックスに数値を直接入力することも可能です。当ページではスプレッドを「20」として2pipsでバックテストをおこないます。

スプレッドの幅を選択

次は期間を指定、開始日、終了日と表示がある部分をご説明します。期間を指定のチェックボックスにチェックを入れると、バックテストの実行期間が指定できるようになります。バックテストの開始日と終了日を設定してください。STEP1のEAとMT4内のヒストリカルデータとEAの確認の項目で確認をした、差出人(開始日にあたる)と終了(終了日にあたる)の範囲の期間で指定しなければバックテストはおこなえません

期間を指定、開始日、終了日

エキスパート設定でバックテストの詳細を決定

ステップ3

以下画面のストラジーテスターの赤枠部分にある「エキスパート設定」をクリックしてください。

エキスパート設定

以下画面が表示され、左上にはEA名が表示されています。テスト設定のタブが選択されていることを確認して初期証拠金の金額を決めてください。金額は直接値を手入力することも可能です。当ページでは10000を選択します。

初期証拠金を決定

画面はそのままで次はバックテストをおこなう通貨種類を選択します。プルダウンメニューに日本円はありませんが、ボックス内にJPYと直接入力すれば日本円の設定がおこなえます。当ページではUSDを選択して説明を進めていきます。また、初期証拠金額は資金量不足にならないように10,000USDまたは1,000,000JPY以上に設定することをおすすめします。

通貨種類を選択

次はポジションを設定していきます。EAが取引をおこなうポジションルールを設定する機能で、実際のEA稼働でも選択できる設定となります。Long onlyはロング(買い)ポジションのみ、Short onlyはショート(売り)ポジションのみ、Long & Shortは両方のポジションを持つ設定となります。当社の無料EAのデフォルト設定ではLong & Shortが設定されていますので、当ページではLong & Shortを選択して説明を続けていきます。

ポジションの設定

同じ画面のままで「パラメーター入力」のタブをクリックしてください。各ボックスに表示されている値はダブルクリックで変更していくことができます。trueが表示されている部分はfalseに変更することができます。trueはパラメーターの機能をEAに反映させる設定で、falseはパラメーターの機能をEAに反映できなくする設定です。パラメーターの機能はEAによって異なるため、当社が配布している無料EAの場合はダウンロード時にお渡ししているEAの設定マニュアルをご覧ください。各設定が完了しましたらOKボタンを押してください。

パラメーター入力

以上でEAのバックテストの準備が整いました。スタートボタンをクリックすることでバックテストが始まりますので、バックテストが完了するまでお待ちください。

バックテストのスタート

バックテストの結果を詳しく検証する

ステップ4

以下画面のように下部のバーが全て緑色になればバックテストの完了です。赤枠の「結果」タブをクリックして開いてください。

バックテストの完了画面

結果タブをクリックするとバックテストのトレード履歴が全て表示されます。結果に表示されるそれぞれの項目の意味は以下の通りとなります。

・時間:発注が行われた時間
・取引種別:「buy」は買いポジション、「sell」は売りポジション、「t/p」は指値による利確、「s/l」は逆指値によるロスカット、「close」は利確値または損切値に到達しない状態での途中決済
・注文番号:ポジションを保有した順番
・数量:発注ロット数
・価格:発注時のレート
・決済逆指値(S/L):損切値
・決済指値(T/P):利確値
・損益:利益または損失
・残高:その時点での証拠金の総額

結果の確認が完了したあとは赤枠の「グラフ」タブをクリックして開いてください。

バックテストの結果

グラフを開くと証拠金がどのように変動したかを確認することができます。グラフの確認が完了しましたら赤枠の「レポート」タブをクリックしてください。

バックテストのグラフ

レポートを開くと、バックテストの結果が詳細に表示されます。それぞれの意味は以下の通りとなります。

・テストバー数:バックテストをした時間足のバーの数
・モデルティック数:バックテストで使用したティック数
・モデリング品質:バックテストの精度。90%が最高で「全ティック」のバックテスト時のみ表示
・不整合チャートエラー:各時間足の不整合数。基本的には「0」でなければなりません。
・初期証拠金:バックテスト開始時の証拠金
・総損益:総利益 - 総損失
・総利益:利益の合計
・総損失:損失の合計
・プロフィットファクター:総利益 ÷ 総損失
・期待利得:総損益 ÷ 総取引数
・絶対ドローダウン:初期証拠金からの最大ドローダウン
・最大ドローダウン:最大ドローダウンの金額
・相対ドローダウン:最大ドローダウンの比率
・総取引数:トレードの総数
・売りポジション(勝率%):売り(ショート)ポジションの総数と勝率
・買いポジション(勝率%):買い(ロング)ポジションの総数と勝率
・勝率(%):トータルの勝ち数と勝率
・負率(%):トータルの負け数と負率
・最大勝トレード:勝ったトレードの最大金額
・最大敗トレード:負けたトレードの最大金額
・平均勝トレード:勝ったトレードの平均金額
・平均敗トレード:負けたトレードの平均金額
・最大連勝(金額):連勝の最大回数とその時の利益
・最大連敗(金額):連敗の最大回数とその時の損失
・最大連勝(トレード数):最大連勝時の利益とその回数
・最大連敗(トレード数):最大連敗時の損失とその回数
・平均連勝:平均連勝回数
・平均連敗:平均連敗回数

バックテストのレポート

なお、レポート画面上で右クリックをすると以下画面が表示され、結果レポートのコピーや保存がおこなえます。

バックテスト結果のコピーや保存

当社の無料EAを取得していない方は、以下の無料EAの一覧ページより是非取得をご検討ください。

無料EA

大注目の人気コンテンツ