どうも、FXトレーダー兼システムエンジニアのナオトです。
MT5のストラテジーテスターで、EAの設定を総当たりする最適化を回したときの話です。
設定の組み合わせは1,080通り。裏で回して、終わるまで49分40秒かかりました。
このEAには、テストが終わるたびに、その設定と成績を自分でCSVのファイルに1行ずつ書き足す仕組みを入れていました。
MT5の画面の結果を写さなくても、あとで表計算や自作の道具でまとめて読めるようにするためです。
ところが、終わってからファイルを開くと、268行しかありませんでした。
1,080行あるはずのところが、4分の1ほどで切れていたんです。
ログを見ると、異常な終了を表す、Abnormal termination という記録が残っていました。
原因は、書き方でした。
1行書くたびに、ファイルを開いて、書いて、閉じる。これを繰り返していました。
この書き方は遅く、全部を書き終える前に時間切れになっていたんです。
テスターは、終わったらターミナルごと閉じる設定で回していました。
書き終わる前にターミナルが閉じられ、書きかけのまま止まっていました。
直し方は、ファイルを開くのを1回にして、まとめて書く形にしました。
開いて閉じる回数が減るので、書き終わるまでの時間が大きく縮みます。
今回の1,080行は、MT5が出す最適化のレポートのファイルから、別の道具で写して取り戻しました。
MT5の側のレポートは、きちんと全部残っていたんです。
最適化は時間がかかるので、裏で回して、終わったらターミナルを閉じる設定は便利です。
ただ、EAが自分で書くファイルは、閉じられる前に書き終わっているとは限りません。
終わったら、行数がそろっているかを最初に確かめる。
自分で書いたファイルとMT5のレポートの2つを残しておくと、片方が切れても取り戻せます。
MT4やMT5のEAの最適化や、結果をまとめる道具づくりのご依頼は、こちらで受けています。
最後までお読みいただき、ありがとうございました。