MT4ヒストリカルデータの形式について

MT4でロジックを検証するとき、一番重要なのが、ヒストリカルデータだと思います。

OANDA APIを使用してOANDAの過去データを取得しました。

OANDA APIから取得したデータを、CSV出力し、そのデータをMT4に取り込もうとしたときに、データの形式を試行錯誤しました。

その備忘録となります。

ロジック検証用のMT4環境

①価格データをサーバーから遮断した環境にする。

OANDAのMT4を使用していますが、価格データを取得しないように、プロキシサーバーを有効にしています。

参考サイト:https://ameblo.jp/fxaki7/entry-11468219228.html

「ツール->オプション」の「サーバー」タブから、プロキシサーバーを有効にチェックを入れ、「プロキシ」ボタンを押して、サーバー名を適当に入れます。

MT4を再起動します。

②すべての価格データを削除する。

「ファイル->データフォルダを開く」を選択し、MT4の階層にアクセスします。

「history」階層の中の「OANDA-v20…」(ここはダウンロードした業者のファイル名になる)の「.hst」ファイルを削除します。今回はUSD/JPYのデータを削除したかったので、「USDJPY-a1.hst」(OANDAの1分足データ)を削除しました。業者によって通貨ペアの名前の付け方が変わるので、削除したい通貨ペアの.hstファイルを削除します。

これで、検証用のヒストリカルデータを入れるMT4の準備とします。

CSV入力フォーマット

まず、このサイトを参考にさせていただきました。

http://akatsucpa.net/mt4historicaldata/

OANDA APIにて、過去データを取得し、csvとして出力します。

その時、出力するデータ形式が以下のようになるようにします。

2019.07.22,23:58,107.904,107.908,107.896,107.904,15

「日付(2019.07.22),始値,高値,安値,終値,出来高」

とい順番です。

日付がピリオド区切りというところと、出来高が最後に来る部分がみそです。

MT4のヒストリカルデータは、「ツール->ヒストリーセンター」で管理することができます。

ヒストリーセンターにて、作成したCSVデータを入力すると、価格データとして反映されました。

ヒストリカルデータの重複

自作したときに、ふとしたミスで、同じデータが重複していた場合

同じデータはMT4取り込み時に重複削除してくれるみたいです。

※価格データは適当です。