*

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

公開日: : FX自動売買開発

このシリーズは前回の投稿から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に公開されるので、問い合わせ等はメールでお願いします。

関連記事

第6回:オーダーに条件をつける IF文

ここではオーダーを送信する前に条件文を挿入します。 条件の書き方 前回までには、「新規ポジシ

記事を読む

no image

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

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

記事を読む

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

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

記事を読む

cTraderとjForexとMT4

FXのプラットフォームと言えば、MT4が一強ですが、 マイナー向けのプラットフォームもわずかながら

記事を読む

週明け窓埋めロジックってどうなの?

FXの中でも有名なトレード手法として、 窓埋めロジックというものがあります。 株の場合は、窓

記事を読む

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

    各トピックに対するコメントは各記事のコメント欄にお願いします。それ以外のご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    私の偽物がいるらしいので偽物にご注意ください。
no image
AWSでWebサーバ構築 (EC2xUbuntu) その6

■メールサーバーの設置 ■AWSにメール用のポート開放の申請

AWSでWebサーバ構築 (EC2xUbuntu) その5

■■FTPサーバーを入れる■■ AWSではちょっと特殊な作業が必要で

AWSでWebサーバ構築 (EC2xUbuntu) その4

■■SSHでサーバに入る■■ いよいよサーバーに入ります。ここからの

AWSでWebサーバ構築 (EC2xUbuntu) その3

■■SSLで接続できるようにする■■ 昨今ではいろいろな理由からSS

AWSでWebサーバ構築 (EC2xUbuntu) その2

■(オプション)Elastic Beanstalk(インスタンスの自動

→もっと見る

PAGE TOP ↑