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取り込み時に重複削除してくれるみたいです。
※価格データは適当です。