【開発の裏側㊵】MT4に入れた13年分の1分足が、黙って5.7MBに切り詰められていた話

【開発の裏側㊵】MT4に入れた13年分の1分足が、黙って5.7MBに切り詰められていた話

記事
IT・テクノロジー
どうも、FXトレーダー兼システムエンジニアのナオトです。

MT4のテスターで、長い期間の過去検証をする環境を作ったときの話です。
自分で入れた履歴のデータが、何の知らせもなく、MT4に書き換えられていました。



MT4の業者のサーバーからは、古い1分足をあまり取れません。
長い期間で検証するには、履歴のファイルを自分で作って、MT4のフォルダに置く必要があります。MT4には、MT5のような自作の銘柄の仕組みが無いからです。

そこで、別に持っていたドル円の1分足を、MT4の履歴の形式に変換しました。
2003年から2016年までの468万本、ファイルの大きさは267.9MBです。



ところが、テスターを走らせたあと、次に走らせるとデータが無い、としか見えなくなりました。

ファイルを見ると、267.9MBあった1分足が、5.7MBになっていました。
468万本が、約10万本です。警告は、どこにも出ていませんでした。



切り分けると、条件がはっきりしました。

MT4は、サーバーにつながると、取れる範囲で履歴のファイルを書き換えます。
テスターで全ティックのモデルを選んだときに、1分足がサーバーの持っている分だけに切り詰められていました。
始値のみのモデルでは、1分足は無傷でした。1時間足は書き足されましたが、消えてはいませんでした。

直し方は、履歴のファイルを置いたら、読み取り専用にすることです。
変換の道具が、書いたあと自動で読み取り専用にするようにしました。この状態で2回続けて走らせても、ファイルの大きさは1バイトも変わりませんでした。



もう1つ、同じ日に自分の見落としもありました。

全ティックのモデルが走らないので、MT4がティックのデータを作っていないと思っていました。
実際には、テスターのフォルダの1つ下の階層に作られていて、11.7GBまで膨らんでいました。止まっていたわけではありません。終わらない仕事をしていたんです。

MT4にティックのデータを作らせるとき、1分足が長すぎると終わりません。
468万本は30分で時間切れ、1年分の37万本でも走らず、1か月分の3.1万本なら23秒で走りました。テストしたい期間だけ1分足を切り出してから走らせるのが、答えでした。



MT4で長い期間を検証するときは、走らせる前と後で、履歴のファイルの大きさを比べてみてください。
減っていたら、MT4が書き換えています。そして、何かが無いと判断する前に、探した場所が正しいかも確かめてみてください。

MT4やMT5で、長い期間の過去検証の環境を作るご依頼も受けています。


最後までお読みいただき、ありがとうございました。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す