バックテストとは
バックテストとは作成したEAを過去チャートを元に実際に動かしてみるテストのことです。
EA作成する時や、EAを本番稼働する前においては必須のテストになりますので是非覚えておきましょう。
ただし、バックテストでいい結果が出たとしても本番でも必ずいい結果が出るとは限りません
あくまで、「バックテストの結果を参考にすること」、「動作に問題がないか確認すること」を主な目的としています。
バックテストの方法
下記からEAのバックテスト方法を説明します。
準備するもの
- エキスパートアドバイザー(EA)
まずバックテストしたいEA(~.ex4ファイル)を準備します。~.ex4ファイ
ルはEAを購入もしくは自作することで手に入れることができます。
- MT4
バックテスト用のチャートソフトであるMT4を準備しましょう。
MT4の入手先は各業者の公式ページ等からダウンロードが可能です。
下記URLからもダウンロード可能です。
https://www.metatrader4.com/ja/download
ヒストリカルデータはMT4がオンラインになると勝手に更新されてしまうので、本番用とテスト用のMT4を分けた方が管理が楽になります。
- ヒストリカルデータ
バックテストするためには過去のチャートの時間足データ(ヒストリカルデータ)が必要になります。
ヒストリカルデータは下記から入手しましょう。
下記URL(FXDD.comのサイト)からダウンロードできます。
https://www.fxddtrading.com/bm/jp/resources/mt4-one-minute-data
ダウンロードしたらデータを解凍しましょう。解凍すると~.hstというヒストリカルデータファイルを入手できます。
手順
① 既存ヒストリカルデータを削除
まずはMT4に最初から入っているヒストリカルデータを削除する必要があります。
「ファイル」→「データフォルダを開く」でMT4のフォルダを開き、historyフォルダの中に~.hstファイルが存在している場合はこれをすべて削除しましょう。

②ヒストリカルデータのインポート
次にダウンロードしたヒストリカルデータをMT4にインポートしましょう。
インポートするには「ツール」→「ヒストリーセンター」を選択します。

ヒストリカルデータを追加したい通貨ペアを選択し、ダブルクリックします。
1分足(M1)を選択しダブルクリックします。
インポートをクリックし、先ほどダウンロードしたヒストリカルデータをインポートします。

③5分足~4時間足のデータを作成する
インポートできたデータは1分足のデータのみなので1分足のデータから5分足〜4時間足までのデータを作成しましょう。
下記URLからPeriod Converter All Timeframesというスクリプトファイルをダウンロードします。
https://www.mql5.com/ja/code/19839
ダウンロードしたらMT4をインストールしたフォルダの中の~MQL4\Scriptsのフォルダの中にスクリプトを置きましょう。
次にオフラインチャートを「ファイル」→「オフラインチャート」を選択します。

先ほどインポートした1分足のヒストリカルデータを選択して「開く」を押します。

最後に先ほどダウンロードした Period Converter All Timeframesのスクリプトをチャートにドラッグアンドドロップしたら完了です。

以上でバックテストの準備が完了になります。
バックテストの設定
次にバックテストの設定です。

①エキスパートアドバイザかインディケータが選択できます。今回はEAのテストなのでエキスパートアドバイザを選択します。
②バックテストしたいEAを選択します。
③テストを実施する通貨ペアを選択します。
④テストを実施する時間足を選択します。
⑤テストの実施方法を選択します。全ティックが一番テストの精度が高くなります。特に理由がない限り全ティックでテストをオススメします。
⑥スプレットを選択しましょう。(単位は10が1pips)
⑦バックテストの期間を指定する場合、チェックを入れましょう。
⑧バックテスト開始期間を選択しましょう。
⑨バックテスト終了期間を選択しましょう。
⑩バックテストの実行を可視化したい場合にチェックを入れましょう。
(テストに時間がかかりますので通常はチェックしなくて大丈夫です。)
⑪ビジュアルモードの時に使用します。今回は特に触れません。
⑫EAのパラメータ等を設定します。
⑬通貨ペアの詳細情報が確認できます。
⑭バックテスト終了後にチャート上で実際にどのようにトレードを行ったかを見ることができます。
⑮EAのソースを編集できます。(購入したEA等、ソースがないEAは編集できません。)
⑯スタートボタンを押すとバックテストが開始します。
バックテストの結果を確認する

「結果」
「結果」ではすべてのトレードの結果を見ることができます。

それぞれの項目の意味は下記の通りです。
時間 :トレードを実施した時間
取引種別 :買いか売りか
注文番号 :トレードを行った順番がわかる番号
数量 :ロット
価格 :トレードを実施した価格
決済逆指値:ストップロス
決済指値 :テイクプロフィット
損益 :損益
残高 :トレードを実施した結果の残高
「グラフ」
「グラフ」では横軸トレード回数、縦軸残高のグラフを確認することができます。
グラフが右肩上がりならば利益になり、右肩下がりなら損失になるのを視覚的にわかりやすく確認できます。

「レポート」
「レポート」ではテスト結果から得られる様々な情報を確認することができます。
ここに表示されているレポートは右クリック→レポートの保存を選択するとHTMLファイルとしてパソコンに保存することもできます。

それぞれの項目の意味は下記の通りです。
テストバー数 :テストに使用したチャートのバーの数です。
不整合チャートエラー :テストデータに不整合が生じている数です。
初期証拠金 :バックテストに使用した元金です。
利益 :テストを実施した結果の利益です。
プロフィットファクタ :詳しくはこちら
絶対ドローダウン :詳しくはこちら
総取引数 :トレード回数です。
モデルティック数 :バックテストに使用したティックの数です。
(ティックとはロウソク足が動く最小単位のこと)
モデリング品質 :バックテストの精度を数値化したものです。
スプレッド :バックテストに使用したスプレッドです。
総利益 :バックテストで損失を除いた利益です。
総損失 :バックテストで利益を除いた損失です。
期待利得 :トレード1回あたりの利益です。
最大ドローダウン : 詳しくはこちら
相対ドローダウン : 詳しくはこちら
売りポジション(勝率%):売りの勝率です。
買いポジション(勝率%):買いの勝率です。
勝率(%) :勝率です。
負率(%) :負率です。
最大勝トレード :一番成績がよかった勝ちトレードの利益です。
最大敗トレード :一番成績が悪かった負けトレードの損失です。
平均勝トレード :勝ちトレードの利益の平均です。
平均敗トレード :負けトレードの損失の平均です。
最大連勝(金額) :最大連勝数とその時の利益です。
最大連敗(金額) :最大連敗数とその時の損失です。