【開発の裏側116】コピーした取引を、受ける側が手で決済したら建て直すべきか。受ける側で1つでも手を加えた取引は、受ける側に任せる形にした話

【開発の裏側116】コピーした取引を、受ける側が手で決済したら建て直すべきか。受ける側で1つでも手を加えた取引は、受ける側に任せる形にした話

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

開発の裏側の116回目です。前回は、コピートレードのEAで、一覧が取れないときは何もしない、と決めた話でした。
今回は、同じEAで、受ける側の人が自分で取引に手を加えたときの扱いを決めた話です。



このEAの受ける側は、送る側の一覧と自分の口座を見比べて、違いを無くすように動きます。
ここで困るのが、受ける側の人が、コピーした取引を自分で決済した場合です。そのまま比べると、一覧にはあるのに自分の口座に無い、となり、もう一度建ててしまいます。
損切りの位置を自分で動かしても、次の比べで送る側の値に戻されます。



そこで、コピーの方式を2つ用意し、受ける側が選べるようにしました。

最初の設定は、受ける側優先です。コピーした取引に、受ける側で1つでも手が加わったら、その取引は受ける側の管理になります。
手で決済した、受ける側の損切りや利確に当たった、ロスカットされた。どれも建て直しません。
損切りや利確を手で変えたら、その後は送る側の変更を写しません。予約注文を手で取り消したら、出し直しません。

もう1つは完全コピーで、送る側と同じ状態に戻し続けます。



受ける側の管理になっても、必ず写すものが2つあります。送る側の決済と、送る側の予約の取り消しです。
送る側が手放した取引を、受ける側だけが持ち続けることはしません。
一方で、送る側の一部決済は、受ける側の管理になった取引には写しません。



難しかったのは、手が加わったことの見分け方です。

受ける側のEAは、自分で最後に出した値を、取引ごとに控えておきます。建値、損切り、利確、予約の価格、期限、ロットです。口座の値がこの控えと違ったら、手が加わったとみなします。
EA自身が損切りを付け直したときは、控えも書き直すので、取り違えません。

決済されたかどうかは、口座から取引が消えたうえで、履歴で決済済みと確かめられたときだけ認めます。確かめられないうちは、何もしません。
控えはファイルに残すので、EAを入れ直しても、受ける側で閉じた取引を忘れません。



コピーのEAでも、受ける側の口座は、受ける人のものです。その人が手を出したところは、その人の判断を残すようにしました。

EAの制作や、今お使いのEAに手動の操作との付き合い方を足す改修も、ご依頼をお受けしています。


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