【開発の裏側115】一覧が空なのと、一覧が取れないのを同じに扱うと、受ける側の取引が全部閉じてしまう。コピートレードのEAで、何もしない場面を先に決めた話

【開発の裏側115】一覧が空なのと、一覧が取れないのを同じに扱うと、受ける側の取引が全部閉じてしまう。コピートレードのEAで、何もしない場面を先に決めた話

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

開発の裏側の115回目です。前回は、コピートレードのEAで、写せなかった取引の分け方と知らせ方を決めた話でした。
今回は、同じEAで、受ける側が何もしない場面を決めた話です。



このEAは、送る側が今持っている取引の一覧を送り続け、受ける側は自分の口座と見比べて、違いを無くすように動きます。一覧にあって自分に無ければ建て、一覧に無くて自分にあれば決済します。

この形には、怖いところが1つあります。通信がうまくいかず一覧が取れなかったときに、それを空の一覧と取り違えると、送る側が全部決済したと読んでしまいます。そうなると、受ける側の取引を全部閉じに行きます。



1つ目の決まりは、取れなかった、壊れていた、古かった一覧では何もしない、です。

一覧の最後に件数を書いた行を付け、それが無いもの、件数が合わないものは使いません。一覧には通し番号を付け、前より小さい番号が来たら使いません。送った時刻が15秒より古ければ、送る側が止まっているとみなします。
どれも、その場は保留にして、画面に警告を出します。



2つ目は、遅れて起動したときの決まりです。

受ける側をあとから起動すると、送る側がずっと前に建てた取引が一覧に載っています。これをそのまま建てると、送る側が建てたときとは違う、今の価格で入ることになります。
そこで、送る側の建値から一定より離れていたら、新しくは建てません。起動したときにすでにある取引をコピーするかどうかも選べるようにし、最初はコピーしない設定にしました。



3つ目は、受ける側の口座にある、ほかの取引です。

手で建てた取引や、ほかのEAの取引は、送る側の一覧にはありません。比べ方をそのまま当てると、余計なものとして決済してしまいます。
受ける側のEAが建てた取引だけに印を付けて、それ以外には触らないようにしました。



あとから、受ける側を守る決まりも足しました。スプレッドが広いときは狭まるまで待つ。証拠金維持率が下がったら、新しく建てるのを止める。決済は止めません。ほかに、同時に持つ数の上限と、コピーする通貨ペアの絞り込みです。
どれも最初は使わない設定で、受ける人が選べます。



止まらずに動くことより、分からないときに何もしないことのほうが大事な場面があります。決済を自動で出すEAでは、とくにそうです。

EAの制作や、今お使いのEAの安全の見直しも、ご依頼をお受けしています。


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