*

MT5 to MT4のコピートレードシステムを作ってみた

まず、完成形をお見せします。

左がMT5で、右がMT4です。

ナビゲータの口座のところをみれば確認できると思います。

ローカルタイプのトレードコピーなので高速です。(パラメータを変更すればもっと早くできます。)

【使い方】

MT4の適当な為替チャートにLocalCopyTradeTool(MT5toMT4).ex4をセット

MT5の適当な為替チャートにLocalCopyTradeTool(MT5toMT4).ex5をセット

MT4のパラメータにMT5の口座番号を入力する(他にもPC上で稼働しているMT5がある可能性があるので、コピー元のMT5を特定する)

MT4のパラメータ設定

SendersAccountNumber :MT5のアカウント番号
FixedLot : ロット(固定)

CopiedLot :ロット(MT5アカウントと同じロットにする)
MaxSlippage : 最大許容スリッページ
CopyTimeInterval : 反映サイクルインターバル(ミリ秒)

MT5EAのパラメータ設定

CopyInterval :反映サイクルインターバル(ミリ秒)

やっていることは今までと同じですが、親(MT5)のロットをそのままコピーできる機能も付けておきました。(パラメータ:CopiedLot)

下記の画像は、CopiedLotをtrueにした場合です。MT5のオーダーのロットがMT4側にも反映されています。

 

このソフトが欲しい方はこちらから

https://fxantenna.com/page-3217/

 

何でいきなりこんなものを作ったかというと、https://fxantenna.com/post-15708/の出来があまりに良かったので、MT4にもコピーしようという魂胆です。

 

コピートレードシステムとひとくくりに言ってもいろいろあるわけですが、シンプルに動く(専用外部ソフトを使用しない&早い&軽量な)コピートレードシステムというのはなかなかないものです。

 

MT4は歴史が古く、広く普及している関係で、MT4間のコピートレードシステムは、いくつかありますが、MT5MT4間のコピートレードシステムはあまり見かけません。

 

ちょっと探して見つけたものもありましたが、外部ソフトを必要としたり、認証が必要なものでした。使えないことはないと思いますが、ちょっとバグがあったときに直せないのが嫌なので、エンジニアらしくDIYしました。(DIYって言うとちょっとしょぼい感じがする…)

 

ここからは仕様にも関係するMT5とMT4の互換性のお話です。

 

MT5では決済という概念がない

MT5では決済という概念が口座種別によっては存在しない場合があります。具体的に言うと、反対ポジションのオーダーをする=決済をするという処理になります。(ネッティングタイプの口座の場合)

 

これがコピートレードにどのような影響があるかというと、MT5で新規のオーダーが送信された場合に、それが新規のポジションなのか決済処理なのかを判別することが簡単にはできない、ということになります。

 

このことが次に繋がります。

 

MT5(ネッティング)ではロットを追加した場合、チケット番号が出ない

MT4では同じ通貨ペアに対して同じ方向にオーダーを送信すると、別途新しいチケット番号が発行されます。コピートレードではその新規のチケット番号をもとにオーダーを識別管理することが可能でした。

 

しかし、MT5の場合、チケット番号がオーダー処理ベースではなく、ポジションベースのため、ここでMT4と照らし合わせたとき、不都合が生じます。(ヘッジアカウントタイプは別)

 

1つ、2つ、オーダーを出して、それを決済するような”普通の”トレードロジックの場合、問題はありません。ピラミッティング、部分決済の場合は新しいオーダーはコピーされません。

 

予約注文の処理は?

あとは、予約注文についてですが、今回の場合、サーバーを経由しない高速タイプのコピートレードシステムなので、約定した瞬間にコピーしても問題ないでしょう。(希望的観測)

 

ただし、サーバーを経由するコピーツールの場合は、ネットワークの速度や遅延などの問題もあるため、予約注文の反映もした方がいいと思います。

 

【仕様】

・スピードだけはとにかくあります。

・MT5側がネットアカウントタイプで、かつ、ロットの買い増し、分割決済をした場合、チケットナンバーのフラグがたたないので、MT4側には反映されません。

・ヘッジアカウントタイプの場合は問題ありません。

・予約注文は約定した瞬間にコピーされます。・コピー元(親)でポジションを持っている状態で、コピー先(子)でそのポジションを手動決済した場合は該当のポジションは再度建玉しません。
・コピー中はコピー先(子)のアカウントで裁量トレードできません。(汎用版は裁量OKです)

 

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

Message

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

CAPTCHA


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

関連記事

【MQL4】シンプルに稼働するコピートレードシステムを作るやり方 1

MT4で自動売買ソフトを稼働させるトレーダーには、ときとしてトレードを別のMT4にコピーしたい場合が

記事を読む

MQL&PHP サーバーを経由するコピートレードシステムを作るやり方6

前回までの内容でサーバーを経由するコピートレードシステムは (ある程度MQLとPHPがわかっていれば

記事を読む

【MQL4】シンプルに稼働するコピートレードシステムを作るやり方 10

今回はリバーストレードができるように改良します。 端的に言うと、コピー元と逆向きのポジションをコピー

記事を読む

【MQL4】シンプルに稼働するコピートレードシステムを作るやり方 4

前回はコピー元(配信元)のコードを書きました。(先頭の変数の宣言が含まれていないので、コピペしてもま

記事を読む

MQL&PHP サーバーを経由するコピートレードシステムを作るやり方5

今回はトレードを受信する側のPHPのスクリプトを書きます。 これが終わればコピーツールの大枠が完成

記事を読む

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

     


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

    プロフィール
    物を買わせようとする偽者がいるらしいのでご注意ください。
    ツイッター始めました(イマサラー)
    https://twitter.com/FxantennaC
    (埋め込みするとページ表示が極端に遅くなるので、リンクでご容赦を)


Translate »
PAGE TOP ↑