どうも、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で、長い期間の過去検証の環境を作るご依頼も受けています。
最後までお読みいただき、ありがとうございました。