【開発の裏側③】コピートレードのEAを一から作り直しています

【開発の裏側③】コピートレードのEAを一から作り直しています

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

ある口座の取引を、別の口座へ同じように写すコピートレードのEA。
以前に自分で作ったものを、いま一から作り直しています。

まだ販売前ですが、開発の途中で分かったことが面白かったので書いておきます。
EAを作ってみたい方には、設計の考え方として参考になると思います。

旧版は、新しく建てた、決済した、という出来事を1回ずつファイルにして送る形でした。
これで時々、受信側の取引が漏れていたんです。

コードを読み直すと、原因は1つではありませんでした。

同時に2つのファイルが届くと、最初の1件しか読まずに既読の印だけ最新まで進めてしまう。
同時に複数のポジションを建てると、最新の1件しか送らない。
部分決済を見ていない。送信側を止めている間に起きた決済は、再起動しても送られない。

見つかったものの大半が、出来事を1回だけ送るという形そのものから来ていました。
1つずつ直すより、形を変えたほうが確実です。

新しい版では、出来事ではなく、今持っているポジションの一覧を送り続けます。
変化があったときと、変化がなくても3秒ごとに。

受信側はその一覧を受け取るたびに、自分の口座と突き合わせて、足りないものは建て、余計なものは決済します。
途中で1回取りこぼしても、次の一覧で追いつきます。漏れが起きても、数秒のうちに自然に直る形です。

旧版で漏れた場面をまとめて流す試験を作り、食い違いゼロで通りました。
MT5からMT5への遅れは、真ん中の値で0.81秒です。

つまずいたところもあります。

受信側が一覧を取りにいくと、時々、数十秒から1分以上前の古い一覧が返ってくる。
1分間に300回取って25回でした。サーバーが応答を使い回していたのが原因で、キャッシュを止める設定も効かず、取り方そのものを変えて0回にしています。

コピーの元は1口座、受信は最大10口座。MT4とMT5のどちらでも送れて、どちらでも受けられる形にしています。

製品として出すまでには、まだ試験とライセンスの組み込みが残っています。
出せる形になったら、またここでお知らせします。

自分の口座の運用に合わせたEAが欲しい、今あるEAを直したい、という方は、開発のご依頼も受けています。
次の記事 【開発の裏側④】ゴールド1分足のEAを作っています

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