*

MQLxPHP サーバを経由するコピートレードツールを作る3

今回はトレードを受信する方のEAを作ります。
トレードデータを送信するEAと比較すると、トレード関数を実装しなければいけないので、少し厄介です。

まずトレードデータをサーバから取得する関数を作ります。まだサーバー側を作っていないので詳しくは言及できませんが、データを送る側のEAが送ったものと似たようなものを似たような形式で受信すると考えておいてください。


関数名にGetが入っていますが、リクエストはPOSTです。
ここらへんのURLとかデータベースとかは後で扱うので、今は外枠だけ作っておけばOKです。

取得したデータは最初配列になっているので、CharArrayToStringで文字列に直す必要があります。

次に、
サーバから取得したトレードポジションを現在持っているかどうかを判定する関数を作ります。


後で詳しく扱うのですが、
オーダーを送信をする際にトレードコメントに親のトレードのチケットナンバーを差し込み、
ポジションのコメントにそのチケットナンバーのものがあるかないかで判定を行います。

何を言っているかというと、受信側のEAではサーバーから受け取った情報と現在持っているポジションを照らし合わせる必要があります。

しかし、同じ通貨ペアで同じ方向に複数のポジションがあった場合に、それをどうやって区別するのか、という問題があります。

そこでオーダー毎に振り分けられるチケットナンバーをマジックナンバーかオーダーコメントに格納することで識別してやろう、という魂胆です。

(オーダーコメントの場合デバッグ作業はしやすいのですが、コメントを書き換えるFX業者があるので、
マジックナンバーを親のチケットナンバーにした方が良いかもしれません。)

これで親のトレードと同じポジションを今現在持っているかが判定できます。持っていなかったらエントリーし、持っていたらスルーします。

次に、
同じように”過去に”親のトレードを保有し、決済したかどうかを判定する関数を作ります。

これは何のためにやるかというと、何らかのエラーによりポジションが決済された際に、再エントリーするのを防ぐ役割があります。

もしくは、親トレーダーがエントリーして、そのトレードをコピーしたは良いけど、気に食わないから手動で決済する、という要望に応えることもできます。


基本的には先ほどと同じ構造の関数です。サーバーから受け取ったオーダーのチケットナンバーと現在持っているポジションのオーダーコメントを比較します。

いよいよ、オーダーを送信する関数を作ります。


MQL5の場合、オーダーの送信は構造体にして送信するので上記のようなちょっと見慣れない感じになります。現在ではCTradeという標準ライブラリもあるので、MQL4ライクに記述したい方、あるいはネッティングアカウント・ヘッジングアカウントに汎用性を持たせた記述をしたい方はCTradeがオススメです。

ちょっとした注意事項ですが、サーバーに格納されている通貨ペアの情報は6文字で構成されています。しかし、受信側のMT4の通貨ペア名は6文字でない場合があります。

例えば、受信する側の業者の通貨ペア名がUSDJPY_mのようになっていることがあるので、あらかじめその余計な文字列だけを取得しておき(_m)、あとで連結します。これもStringSubstrを使えば簡単です。

TheSymbol+Ex

上記ではオーダーコメントとマジックナンバー、両方に親のトレードチケット番号を挿入していますが、
どちらか片方でもOKです。

あとは、
「過去に親のポジションを持っていない」かつ「今も親のポジションを持っていない」場合に
エントリーし、

「受信したデータに現在持っているポジションの情報が消えたら」決済というプログラミングを
OnTickに書くだけです。

WEBサーバに接続する際に、500エラーや503エラーが出ることがありますが、
そういった事例の対処はPHPのときにします。

Message

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

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

関連記事

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

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

記事を読む

VPSでWebサーバー構築 (さくらVPSxUbuntu16.04) その4 iptablesとFTP

■■iptablesでポートの開放■■ iptablesというのは外部内部のネットアクセスに対してい

記事を読む

【MT4 to MT5】コピートレードツール(EA)の紹介

今回はMT5からMT5にトレードをコピーするツールの紹介です。 まずは様子をご覧ください。

記事を読む

MT4 to MT5 trade copier

This time, I developed a MT4 to MT5 trade copier

記事を読む

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

今回はAWSのサーバーの構築を扱ってみようと思います。前回VPSを使った一般的なWEBサーバの構築を

記事を読む

 

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



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

    ご質問、ご相談などは
    infoあっとfxantenna.com
    まで
    偽者(オリジナルある模倣者)がいるらしいのでご注意ください。
no image
(MT4EA)MACDと特殊ベッティング【EA検証班求ム】 

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

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

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

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

EURGBP 2018.11.1~2019.4.30 D1 Sp

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

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

FX業界の人種マップとその特徴 LP、ホワイトラベル、商材屋さん、開発代行…

FX業界にはさまざまな人種というか役割の人たちがいます。職人気質の開発

→もっと見る

PAGE TOP ↑