【開発の裏側㊺】検証用の作りと、お客さん向けの作り。1つのソースから2つを出して、結果が同じかを確かめる話

【開発の裏側㊺】検証用の作りと、お客さん向けの作り。1つのソースから2つを出して、結果が同じかを確かめる話

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

開発の裏側の44回目で、EAに選べる機能を足したら、切った状態で前の版と1円も違わないかを確かめる、という話を書きました。
今回は、同じゴールドのEAで、検証用の作りと、お客さん向けの作りを分けたときの話です。



検証をするときは、入りの条件から決済まで、ほとんど全部の値を入力に出しておきたい。広い範囲で振って、どこまでなら崩れないかを測るためです。

でも、お客さんに渡すEAで同じことをすると、触れる設定が多すぎます。測っていない範囲の値も入れられてしまう。
そこで、1つのソースの先頭に、検証用かどうかを決める印を1行置きました。

印があれば、検証用の作り。全部の値が入力に出て、範囲も広い。
印を外すと、お客さん向けの作り。入りの条件などは決めた値に固定され、入力の範囲も、近くの値まで測って崩れなかった範囲に絞られます。



作りが2つになると、心配なのは、2つの動きがどこかでずれることです。
そこで、同じ量で両方をMT5のテスターに走らせ、2024年1月から2026年10月の実際のティックで並べました。

決済した取引は、どちらも1,039本。損益も、テストの終わりに閉じた分も、1円違わず同じでした。
違うのは、触れる入力の数と範囲だけ、ということです。



このとき、もう1つ見つかったことがあります。

このEAは、運用資金100万円ごとに0.01ロットで取引します。ところが、テストに使った口座のゴールドは、最小のロットが0.1でした。
0.01ロットのつもりで動かすと、0.1ロットに切り上がって、設定より10倍濃く取引することになります。

黙って切り上がると、使う人は気づけません。
そこで、最小のロットへ切り上がるときは、起動したときに、何ロットに切り上がるかを知らせるようにしました。



もう1つは、テスターの空振りです。

同じ機械で、ほかのMT5がテスターを回していると、テストが走らずに終わることがありました。ログには、テスターの手伝いのプログラムが認証できなかった、という旨のエラーが出ます。
残っていた手伝いのプログラムを止めてからやり直すと、通りました。



検証用とお客さん向けで作りを分けるときは、同じ量、同じ期間で両方を走らせて、結果が1円も違わないかを確かめてみてください。
それと、お客さんの口座の最小ロットで、量がどう変わるかも見ておくと安心です。

EAを、検証用の作りとお客さん向けの作りに分ける開発のご依頼も受けています。


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