■ ここではMT4のストラテジーテスターを使用したEAのバックテスト方法を解説しています。




MT4のストラテジーテスターを使用してバックテストを行う場合、MT4にヒストリカルデータ(過去のデータ)がインポートされていることが前提となります。

まずはヒストリカルデータのダウンロード方法およびインポート方法から解説していきます。

ヒストリカルデータは
MT4の開発元であるMetaQuotes社よりデータをダウンロードすることも可能ですが、意外にもデータに抜けが多く精度の高いバックテストを行うには十分ではありません。

そこで無料のデータとしては長期間で、ある程度精度が高い、AXIORY社のヒストリカルデータをご紹介しておきます。

また、AXIORY社のヒストリカルデータはMT4のサーバータイムがGMT+2(冬)/+3(夏)のデータとなりますので、過去検証(バックテスト)で使用するMT4はサーバータイムが同じ業者のものとして下さい。
 



【1】下のリンクよりAXIORY社のWEBサイトに移動します。





【2】バックテストに必要なデータの通貨ペア名をクリックしてダウンロードします。

ヒストリカルデータは年別/月別に格納されています。

ここでは例としてUSDJPYの2024年のヒストリカルデータをダウンロードしますので2024年の「USDJPY」をクリックして保存します。






【3】「USDJPY.zip」という圧縮ファイルがダウンロードされますので、解凍してフォルダを開くと「USDJPY_2024_○○」というファイルが確認できます。

ここでは2024年1年分のヒストリカルデータである「USDJPY_2024_all」 を使用します。







【4】MT4の「ツール」 ⇒ 「オプション」 ⇒ 「チャート」で、「ヒストリー内の最大バー数」「チャートの最大バー数」に「9999999999(9を10個)」と入力して「OK」をクリックします。





【5】再度「チャート」をクリックしてそれぞれの値が「2147483647」となっていることを確認します。

これで長期のヒストリカルデータをインポートする受け皿が完成となります。





【6】 先ほどAXIORY社よりダウンロードしたヒストリカルデータをMT4にインポートしていきます。「ツール」 ⇒ 「ヒストリーセンター」で、USDJPYの「1分足(M1)」をクリックし、「インポート」をクリックします。





【7】「インポート」をクリックすると以下のウィンドウが表示されますので「参照」ボタンで「USDJPY_2024_all」 を選択し「OK」をクリックします。





【8】データベースのレコード数が大幅に増加すればインポート成功です。

これでUSDJPYの2024年分のヒストリカルデータをインポートすることができました。AXIORY社ではほとんどの通貨ペアで2015年分からのヒストリカルデータをダウンロードすることが可能です。

同じ要領で、その他の年/月のヒストリカルデータをインポートします。

※最後に必ずMT4を再起動させ、インポートしたデータをMT4に反映させます。





【9】先ほどインポートした1分足データから他の時間足(5分足以降)を生成します。「ファイル」 ⇒ 「オフラインチャート」で、インポートした1分足チャートを開きます。







【10】「offline」と表示されたチャートが開きます。





【11】 ナビゲータから「スクリプト」 ⇒ 「period_converter+All」をチャートにドラッグ&ドロップします。

※「period_converter+All」は1分足データを基に自動で全時間足を作成する便利なスクリプトです。初期状態のメタトレーダーにはインストールされていませんので以下のリンクより入手して下さい。



「period_converter+All」は「MQL4フォルダ」内の「scriptsフォルダ内」に設置して使用します。チャートにドラッグ&ドロップ後、「OK」をクリックすると5分足・15分足・30分足・・・と順に生成されます。

※ここでもMT4を再起動させ、生成したデータをMT4に反映させて下さい。





【12】「ファイル」 ⇒ 「オフラインチャート」で、5分足データから日足データまで生成されていることが確認できれば完了です。

これで2015年から現在までのバックテストが可能になりました。









ここから実際にMT4のストラテジーテスターを使用して、EAのバックテストを行っていきます。


【1】MT4を起動させ、「表示」 ⇒ 「ストラテジーテスター」で、ストラテジーテスターを起動させます。





【2】 バックテストを行うEAを選択します。





【3】 「エキスパート設定」⇒「テスト設定」で、テスト設定タブを開きます。





【4】テスト設定タブで初期証拠金を設定します。例えば「1000000」「JPY」と手動で入力しますと、初期証拠金100万円を想定したバックテストが可能となります。

※初期証拠金はご自身の資金に合わせて設定されて下さい。





【5】 パラメーターの入力タブでEAのパラメーターを設定します。設定が完了しましたら「OK」をクリックします。

※パラメーターの詳細は製品に付属の「設定マニュアル」をご参照下さい。

 



【6】 バックテストを行うEAに合わせ、各項目を設定します。




各項目の解説は以下になります。

項目 

解説

エキスパートアドバイザー 過去検証(バックテスト)を行うEAを選択します。
通貨ペア 過去検証(バックテスト)を行う通貨ペアを選択します。 
モデル 全ティックを選択することで最も精度が高い過去検証(バックテスト)を行うことができます。
期間 過去検証(バックテスト)を行う時間足を選択します。
スプレッド  通貨ペアのスプレッドを設定します。
期間を指定 チェックを入れることで過去検証(バックテスト)の「開始日」「終了日」が指定可能になります。 
ビジュアルモード チェックを入れると実際にEAがどのようなタイミングで取引をおこなっているのかを視覚的に確認することが可能になります。
最適化 過去検証(バックテスト)を行う際はチェックを外しておきます。 



【7】「スタート」をクリックするとバックテストが開始します。





【8】緑の進捗バーが右端に到達すればバックテスト完了です。各タブより各種データが閲覧できるようになります。またレポートタブのレポート画面上で「右クリック」 ⇒ 「レポートの保存」をクリックすると、HTM形式のレポートとしてテスト結果の保存がきます。






HTM形式のレポート(ストラテジーテスターレポート)には様々な項目・数値が表示されています。以下は各項目の解説となります。

項目 

解説

通貨ペア 過去検証(バックテスト)を実施した通貨ペア
期間 過去検証(バックテスト)実施期間
モデル 過去検証(バックテスト)の実施方法・モデル
テストバー数 過去検証(バックテスト)で使用した時間足のバー数
モデルティック数 過去検証(バックテスト)で使用したティック数
モデル品質 過去検証(バックテスト)の制度 基本90%が必要(1分足による過去検証(バックテスト)では25%)
不整合チャートエラー 各時間足の不整合数 基本「0」のデータでの過去検証(バックテスト)が必要
初期証拠金 過去検証(バックテスト)スタート時の証拠金
総損益 総利益 - 総損失で算出
総利益  利益の合計 
総損失 損失の合計 
プロフィットファクター 総利益 / 総損失で算出 
期待利益 総利益 / 総取引数で算出 
絶対ドローダウン 初期証拠金から最大の資金の落ち込み額 
最大ドローダウン  損益ピーク時からの最大の資金の落ち込み額 
相対ドローダウン 損益ピーク時からの最大の資金の落ち込み率 
総取引数 トレードの総数
ショートポジション勝率(%) ショートポジションの総数と勝率 
ロングポジション勝率(%) ロングポジションの総数と勝率 
勝率(%) トータルの勝ち数と勝率 
負率(%) トータルの負け数を負率 
最大勝ちトレード 勝ちトレードの最大勝ち金額 
最大負けトレード  負けトレードの最大負け金額 
平均勝ちトレード 勝ちトレードの平均金額 
平均負けトレード 負けトレードの平均金額 
最大連勝(金額)  連勝の最大回数と利益合計 
最大連敗(金額) 
連敗の最大回数と損失合計 
最大化連勝(トレード数)  最大連勝時の利益合計と回数 
最大化連敗(トレード数) 最大連敗時の損失合計と回数 
平均連勝 平均連勝回数 
平均連敗 平均連敗回数 


解説は以上となります。ご不明な点がございましたら、お気軽にご質問下さい。