*

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑤

今回は取得したコピー元のトレード情報を、現在のトレード状態と照らし合わせる作業をします。

最も容易に想定されるバグとして、何度も同じポジションを取ったり決済したりを繰り返す、というものがあります。

これを解消するには、コピー先のオーダーの履歴に、すでにそのオーダーを取得したことがあるかどうかを調べる作業が必要です。

まだオーダーをコーディングしていませんが、受信側がオーダーをコピーしてポジションを取得する際に、そのオーダーのコメントに親のオーダーのチケット番号を入れます。

受信側が持っているオーダーのコメント と 配信側が持っているオーダーのチケット番号が一致していれば、
それはコピートレードで対応されたオーダーということになります。

(もっと良い関数名があればなぁ….)

【追記】後の記事では、コメントがブローカーによって勝手に編集される可能性を考慮して、
受信側のオーダーのコメントに配信側のチケット番号を入れるのではなく、
受信側のオーダーのマジックナンバーに配信側のチケット番号を入れています。

MQL4ではOrderSelectの際にMODE_HISOTRYを選択すると、決済済み、削除済みのオーダーを参照できます。

ただし、参照できる決済済み削除済みのオーダーは、MT4で表示されている履歴に依存するので、表示されている履歴が短い場合は、その分しか参照できません。

逆に全履歴がターミナル上で表示されている場合には、全履歴を取得することができます。
(今後のアップデートで変わるかもしれませんね。)

今回のコピートレードでは、コピーしたオーダーのコメントに、コピー元のチケット番号を入れる仕様にしました。

これによって、そのオーダーを過去にコピーしたことがあるのかどうかがわかります。

ちなみにMT5の場合、オーダーコメントは結構変わってしまうので、この手法は使えません。

また、履歴上のオーダーの検索と同時に、コピーするべきトレードが現在コピーされているかどうかを検索する必要があります。

A・今、コピーするべきオーダーを持っているか調べる
B・過去にコピーするべきオーダーを持っていたか調べる

つまりこの2パターンです。

何を想定しているかというと、せっかくコピーしたトレードを裁量で決済されてしまったパターンです。

この場合、
もう一度ポジションを保有するか、それとも、トレーダーを信用してポジションを見送るか、の選択になるのですが、

せっかくトレーダーが何かの意図をもって決済したものを、間髪入れずに再ポジションしたら、クレームになりそうな気がします。

(もちろん誤って決済してしまった、という可能性もあると思います。)

しかし、過去のトレードも参照しておけばバグの可能性も減らせることができるので、今回は
「コピーしたポジションをトレーダーが裁量で決済した場合、再エントリーしない」仕様にします。

先ほどと同じように、今度は”現在もっているポジション”とコピー元のトレード情報を照らし合わせます。(照らし合わせる関数を作ります)

ちょっとややこしいかもしれませんが、やっていることは、
A・今、コピーするべきオーダーを持っているか調べる
B・過去にコピーするべきオーダーを持っていたか調べる
ことが必要で、そのための独自関数を作っただけです。

Message

メールアドレスが公開されることはありません。

このコメントはWEBに公開されるので、問い合わせ等はメールでお願いします。

関連記事

MT4/MT5対応のFX/仮想通貨 業者 一覧

MT4とEAが利用可能な業者一覧 .brokers{ background-col

記事を読む

第4回:新規ポジションを送信する記述

ここでは MQLに特有の”新規ポジションの取得” を記述していきます。 OrderSend

記事を読む

EAのデコンパイルの実際とその対策

デコンパイルというのは実行ファイルからソースコードファイルを復元することで、デコードとかリバースエン

記事を読む

第13回:コードに汎用性を持たせる~”USDJPY”よりSymbol()~

MT4で設定を変更ができるような記述をする これまでに様々なコードを扱いましたが、 これまでの書

記事を読む

第25回:EAに指値注文、逆指値注文でエントリーさせる

EAに指値注文、逆指値注文でエントリーさせる記述 これまでには決済で指値注文、逆指値注文をしてきま

記事を読む

 
  • ブログ管理人の横瀬兼元(ペンネーム)です。

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽者がいるらしいのでご注意ください。
バイナリーオプションで特定の手法が勝てるかどうか検証する方法

バイナリーオプションの場合、 リアルタイムの自動売買開発と過去検証の

【MQL4】シンプルに稼働するコピートレードツールを作る。その⑩

今回はリバーストレードができるように改良します。 端的に言うと、コピ

【一覧】シンプルに稼働するコピートレードツールを作る。

MT4以外のソフトを使わずに、DLLも使わずに、同一コンピュータ上で高

自動売買プログラム他 無料プレゼント 2019年2月

口座開設プレゼント企画 下記のリンクより口座開設していただいた方にお

MT4/MT5対応のFX/仮想通貨 業者 一覧

MT4とEAが利用可能な業者一覧 .brokers{

→もっと見る

PAGE TOP ↑