*

【MQL4】外部ソフトなしで稼働するコピートレードツールを作る。その⑤

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

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

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

(関数名センスない?)

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

ただし、MT4で表示されている履歴に依存するので、表示されている履歴が直近一か月の場合は、その分しか参照できません。

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

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

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

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

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

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

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

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

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

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

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

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

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

Message

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

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

関連記事

第8回:決済の記述 OrderClose

ここではポジションを決済するための記述を行います。 OrderClose OrderSen

記事を読む

第11回:様々な値を使う~Bid,TimeCurrent(),iOpen(Symbol(),0,0)~

MQLで使える数値を引き出す MQLでは様々な値を簡単な記述で参照することができます。 例え

記事を読む

市販のインジケーターをEA化する 実践編

何年か前に「iCustomを使ってインジケーターをEA化する」という記事を書いたのですが、意外とアク

記事を読む

ティック更新よりも早い頻度で演算させる

EAというやつうは基本的にティックレートを受信する度に一回、演算する仕組みになっています。 U

記事を読む

MT4のメールを複数アドレスに送るには

MT4が出すメールを複数のアドレスに送信したいときがあります。 ほとんどは"シグナルのメール通

記事を読む

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

    株、仮想通貨、それ以外の私に対するご連絡は
    infoあっとfxantenna.com
    まで

一回の演算で複数のリクエストを送る 仮想通貨の自動売買⑪

公開:2017/9/4 基本的にjson形式でAPIをたたく場合

コインチェックAPIで信用取引 仮想通貨の自動売買⑩

公開:2017/9/4 これまではAPIで現物取引を扱ってきまし

POLONIEXのAPIでビットコインのヒストリデータを取得 仮想通貨の自動売買⑨

公開:2017/9/4 国内の取引所でもAPIを発行している取引

APIでコインチェック、ZAIF、bitFlyerのレートの比較&トレード 仮想通貨の自動売買開発⑧

公開:2017/7/11 今回は業者間アービトラージに向け、PU

CoinCheck,bitFlyerにAPIでオーダーを出す 仮想通貨の自動売買開発⑦

公開:2017/7/10 「Private apiでそれぞれの取

→もっと見る

PAGE TOP ↑