*

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

このシリーズは前回の投稿から1年以上あいている訳ですが、結構問い合わせがあるので、続きを書こうと思います。(サーバーを経由するコピートレードツールの下位互換だからやる気がなかったわけじゃないんだからね!)

さて、
前回までに書いたコードでは、ごくまれに受信側が勝手にオーダーを決済してしまうというバグがありました。

これはファイルにアクセスする際に書き込みと読み込みがまったく同じタイミングで行われることで、読み込み結果が空白となり、それをEAが”ポジションなし”と判断していただめです。

OSの基幹部分の仕様については専門ではないので、この処理は結構迷いました。

解決策1:書き込み、読み込みするファイルを複数に分けて、読み込み結果が同じ時だけ処理する

コーディングがめんどい、泥沼になるような気がする…

解決策2:書き込み、読み込みのタイミングをずらすために、ローカルタイムの秒数の剰余で実行をずらすとか

コピー処理が早いことが唯一のメリットなのに、それが失われると作る意味がない…

しかし、
とりあえず「ポジションがない状態」と「読み込みに失敗した状態」を区別して、
ファイルにアクセスできない場合にはSleepを入れてちょっと待つ仕様にしたところ、問題は解決しました。(観測時点では…)



(これは以前while文で書いていた、ファイルのトレードデータを読み込む関数です)

また、やっぱりコピーの反映が遅いのが気になります。EAをセットしている通貨ペアチャートだけが低速で、他のチャートが頻繁に動いているとき、コピーの反映が遅いというのはやっぱり良くないと思います。

他のパターンとしても、コピーする通貨ペアが頻繁に動いていて、セットしている通貨ペアが鈍い可能性も考えられます。

そこで、OnTickの中に再帰的なループを入れました。
While文で延々とループするとメモリを圧迫したり、フリーズしたりする可能性があるのですが、妥協案として、
100回ループしてOnTickで再読み込みという手を取りました。



下記はその結果です。

前よりも反映速度が格段に上がっています。(ごく稀に遅くなる可能性は内包していますけどね。)

下記はこのEAのダウンロードリンクです。
ダウンロード

二つのMT4にそれぞれこのEAをセットします。パラメータで受信か配信か切り替えます。

■パラメータ
IsSender: 配信元のMT4にセットする場合trueにします。
IsReceiver: 受信(コピー先)のMT4にセットする場合trueにします。
SendersAccountNumber: 受信(コピー先)のMT4にセットする場合、親のアカウント番号を入力します。
LotForReceiver: 受信(コピー先)のMT4にセットする場合、コピーするトレードのロットを入力します。
Slippage: 受信(コピー先)のMT4にセットする場合のトレードのスリッページです。

予約注文には対応していません。

※このEAを使って発生した損失などは一切責任を負いません。

Comment

  1. まさたろ より:

    質問です。
    色々なロットで注文したいのですが
    受信側でのロットサイズを
    親のx倍でエントリー。ってことは可能でしょうか?
    あると凄く助かります。

Message

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

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

関連記事

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

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

記事を読む

【ついにでた】汎用型MT4<->MT5 コピートレードツール

これまで、MT4->MT4, MT4->MT5, MT5->MT4, MT5>

記事を読む

MT5 to MT4のコピートレードツールを作ってみた

まず、完成形をお見せします。 左がMT5で、右がMT4です。 ナビゲータの口座のところをみ

記事を読む

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

前回は「”過去に”コピー元のトレードを持っていたか調べる関数」と「"現在"コピー元のトレードを持って

記事を読む

MT4 to MT5 trade copier

This time, I developed a MT4 to MT5 trade copier

記事を読む

 

  • (↑広告です。このサイトの管理者の運営ではありません)



  • 横瀬兼元(ペンネーム)です。

    ご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    偽者(オリジナルある模倣者)がいるらしいのでご注意ください。
【MT4EA】半年で5万回以上トレードしても右肩上がりにできる証明(EA配布)

(ただし、スプレッドが狭ければ...) EURUSD

no image
(MT4EA)MACDと特殊ベッティング【EA検証班求ム】 

. . 超シンプルなMACDのEAです

MT4の1分足テストで起こる致命的な現象

1分足っていうのは他の時間枠といろいろ違う点があります。 まず、本題か

no image
【EA検証班募集】コツコツドカンとドローダウン(MT4) ~原理は単純を、構造は複雑を、人は最も人らしく~

EURGBP 2018.11.1~2019.4.30 D1 Sp

MT5のテスターではスプレッドは変更できないという事実

を知らない人が多くて、「このバックテストのスプレッドはいくつですか」と

→もっと見る

PAGE TOP ↑