【開発の裏側52】MT4のテスターで通貨ペアの設定が0になった。設定ファイルの、数字の入力にだけ付ける4行の話

【開発の裏側52】MT4のテスターで通貨ペアの設定が0になった。設定ファイルの、数字の入力にだけ付ける4行の話

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

開発の裏側の51回目は、スプレッドの物差しが2つあった話でした。
今回は、MT4のテスターを自動で回そうとして、最初の1回目でつまずいた話です。



ゴトー日に動くEAを、ゴゴジャンへ出すときのことです。
審査のために、MT4で米ドル/円だけを回したバックテストのレポートが要りました。

開発用のMT4に、2018年からの1分足を310万本ほど入れて、全ティックで回します。
手で設定を打つと、入れ間違いが起きます。そこで、入力の値を書いた設定ファイルを、プログラムで作ってから回す形にしました。



1回目の結果を見ると、EAの通貨ペアの入力が "0" になっていました。
入れたのは、通貨ペアの名前の文字です。



原因は、設定ファイルの書き方でした。

MT4の設定ファイルでは、数字の入力に、値の行のほかに4つの行が付きます。
最適化で動かすかどうか、始める値、刻み、終わりの値です。名前の後ろに ,F ,1 ,2 ,3 を付けた行で書きます。

プログラムは、すべての入力に、この4行を同じように付けていました。
文字の入力にまで付けたところ、その入力は "0" になりました。数字の入力として扱われたようです。



直し方は、入力の種類で書き分けることです。

数字の入力は、値の行と4つの行。
文字の入力は、値の行だけ。

プログラムのその行に、文字の入力に4行を付けると "0" になる、と書き残しました。
直したあとの回では、通貨ペアの名前がそのまま入っていました。



開発の裏側の9回目には、MT5のテスターで、書かなかった入力が前回の値のまま残る話を書きました。49回目は、設定ファイルの先頭の見えない3バイトで、テスターが始まらなかった話です。

どれも、設定ファイルの書き方ひとつで、思った条件で回っていなかった話です。
だから、結果を見るときは、成績より先に、入力が思った値で入っているかを確かめるようにしています。

MT4とMT5のテスターを自動で回すプログラムの開発も、ご依頼をお受けしています。


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