MT4でトレードプログラムを開発する上での
大きなメリットの一つが、
バックテストを簡単に実施できるということがあります。
ただ、バックテストを行うためには
テスト用のデータを用意する必要があります。
バックテストを行うまでに一番手間がかかるのが
このテスト用データの準備でしょう。
今回は、バックテスト用のデータ準備手順を解説します。
Contents
GMOクリック証券からヒストリカルデータをダウンロードする
一番最初は、元になるヒストリカルデータのダウンロードです。
MT4の開発元であるMetaQuotes社が提供する
ヒストリカルデータを用いるのが一番簡単ではありますが、
どうも信頼性が低いと言われています。
私は、データの欠けが少なく
信頼性も高いと思われる
GMOクリック証券からデータを
ダウンロードして使用させてもらっています。
GMOクリック証券以外には、
FXDDからもダウンロードできますが
こちらも信頼性に不安があります。
GMOクリック証券からヒストリカルデータを
ダウンロードするには
口座開設が必要です。
GMOクリック証券に口座開設できたら
まずログインしましょう。
ログイン後、ヘッダーメニューに
「ツール」がありますので
これをクリックします。


ツールを開くと左側のメニューに
「ヒストリカルデータ」がありますので
これをクリックします。


「FXネオ ヒストリカルデータ」が
表示されますので、
最初にダウンロードしたい年を選びます。


次にダウンロードしたい通貨ペアの対象月を
クリックするとヒストリカルデータを
ダウンロードできます。
ダウンロードしたヒストリカルデータがMT4で読み込めるように加工する
GMOクリック証券からダウンロードした
ヒストリカルデータを解凍します。
例えば、「USDJPY_201812.zip」という
ファイルを解凍すると
「USDJPY_201812」フォルダの中に
「201812」と「201812_EX」という
2つのフォルダがあります。
このうち「201812」の中にあるCSVファイルを使用します。
このフォルダを見るとわかると思いますが、
ファイルは1日ごとに分かれています。
1日ごとのヒストリカルデータを1月ごとにまとめる
CSVファイルの中身を加工する必要がありますが、
1ファイルごとに行っていると
(1日ずつに分かれているため)
非常に手間がかかります。
ですので、先に1日ごとのファイルを
1月ごとにまとめます。
まとめるには、Windowsに標準で入っている
コマンドプロンプトを用います。
コマンドプロンプトの立ち上げるには、
パソコン画面の一番左下にあるWindowsアイコンの
すぐ右にある〇アイコンをクリックします。
検索入力欄に「コマンド」と入力すると
検索結果に「コマンド プロンプト」が
表示されますのでこれをクリックします。


コマンドプロンプトが立ち上がったら、
「cd」の後にファイルの置き場所を打ち込みます。
タイプミスなく打ち込むのも大変なので、
エクスプローラーでファイルの場所を開きます。
そしてアドレス欄をコピーします。


コマンドプロンプトに戻って、
「cd」の後に半角スペースを一つ入れて、
先ほどコピーしたアドレスを張り付けて
エンターキーを押します。


次に以下のコマンドを入力して
CSVファイルを連結します。
copy /b *.csv 201812.csv
このコマンドの意味は、
今いるフォルダ内の全てのcsvファイルを読み込んで
201812.csvにコピーするというものです。
これで2018年12月分のヒストリカルデータを
1つのファイルにまとめることができました。
一月ごとのヒストリカルデータを一年ごとにまとめる
次に、12か月分を繰り返すと
1月分のデータが12個出来上がります。
今度はこれを一つのフォルダにまとめて
12個のファイルを一つにまとめます。
コマンドプロンプトで先ほどと同じようにコマンドを打ちます。
copy /b *.csv 2018.csv
これで、一年分をまとめた
「2018.csv」ファイルが出来上がります。
※CSVファイルの行数が多すぎて
次の手順で行う1年分のデータを
エクセルで加工できない場合は
1か月分をエクセルで加工した後、
コマンドプロンプトで
1年分にまとめるようにしてください。
CSVファイルをエクセルで開いて加工する
CSVファイルは、そのままダブルクリックすると
エクセルで開きます。


エクセルが開くと上記のような画面になります。
まず、ASKの列が不要なので削除します。
次に、日付と時間をカンマ区切りで分けて
「yyyy/mm/dd,hh:mm:ss」という書式にしたいので、
日時の列を活性化させて書式設定をクリックします。
「表示形式」タブで「ユーザー定義」を選択します。
「種類」に「yyyy/mm/dd,hh:mm:ss」と
入力してOKボタンを押します。
すると、以下のようになるはずです。
ここまででエクセルでの加工は終わりですので、
保存してエクセルを閉じてください。
テキストエディタで書式を整える
次にテキストエディタを使って
CSVファイルの書式を整えます。
テキストエディタには、
サクラエディタやTeraPadなど、
フリーソフトをインストールすると良いでしょう。
サクラエディタを使った方法をご紹介します。
まず、サクラエディタを立ち上げて、
先ほどエクセルで加工した
CSVファイルを開きます。


MT4で読み込む際に、
「日時,始値(BID),高値(BID),安値(BID),終値(BID)」
の行が不要なので、削除します。
削除には、一括置換を使用します。
メニューから「検索」→「置換」をクリックします。
置換ウィンドウが立ち上がりますので
置換前に「日時,始値(BID),高値(BID),安値(BID),終値(BID)」を
入力し、置換対象で「行削除」を選択します。
「すべて置換」ボタンをクリックします。
すると「日時,始値(BID),高値(BID),安値(BID),終値(BID)」が
あった行がなくなります。
次に日付と時間を囲んでいる
「”」が邪魔なので削除します。
もう一度メニューから「検索」→「置換」を
クリックして置換ウィンドウを立ち上げます。
置換前に「”」を入力し
置換後には何も入力せずに
「すべて置換」をクリックします。
これでMT4に読み込むための加工は終了したので
CSVファイルを保存してサクラエディタを終了します。
加工したヒストリカルデータをMT4に読み込ませる
続いて、MT4に加工したヒストリカルデータを読み込ませます。
MT4を立ち上げてメニューの「ツール」→
「ヒストリーセンター」を開きます。
読み込ませたい通貨ペアを開きます。
1分足を読み込みたいので、
「1分足」をクリックして
「インポート」ボタンをクリックします。
「ファイル名」の参照ボタンを押して
先ほどまで加工したCSVファイルを選択します。
移動表示を「-7」時間とします。
このままOKで良さそうなのですが、
なぜか上手くデータを読み込んでくれないため
一度キャンセルで閉じた後、
再びインポートをクリックして
インポートウィンドウを立ち上げます。
ここでOKをクリックすると、
CSVファイルのデータが読み込まれます。
データが読み込まれたら
ヒストリーデータの読み込みは終了です。
MT4でバックテストを行う環境を準備する方法のまとめ
信頼性の高いヒストリカルデータの入手元は
GMOクリック証券でした。
ダウンロードしたヒストリカルデータは
今回ご紹介した手順で加工した後
MT4に読み込ませてください。
結構面倒な手順ですが、
一度やってしまえば繰り返す必要はありませんし、
バックテストを非常にやりやすくなりますので
MT4でロジックを書いている人は
必ず信頼できるヒストリカルデータを
セットアップすべきです。
しっかりバックテストを行って
利益の上がるシステムを作っていきましょう!