記事"MetaTrader 5 から MetaTrader 4へトレードをコピーする方法"についてのディスカッション

 

新しい記事 MetaTrader 5 から MetaTrader 4へトレードをコピーする方法 はパブリッシュされました:

今日MetaTrader 5 の実アカウントでトレードすることはできますか?そのようなトレードをどうやって行いますか?本稿はこういった疑問に対する見解およびMetaTrader 5 ターミナルから MetaTrader 4ターミナルへトレードをコピーするためのワーキングコードを提供します。本稿は Expert Advisors の開発者、実践的トレーダー双方に役立つものです。

作者: Nikolay Demko

 

おそらく今日最も興味深いトピックだろう。

少なくとも私個人にとっては、最も興味深い記事だ。

 

私もそう思う。DCのスイングを待つ必要はない。

 

有用かつ適切な記事で、著者に感謝する!


ひとつわかりにくいことがあります:

Чтобы не пропустить момент изменения позиции, следящая система должна быть реализована в функции OnTimer(), т.к. следить придется за всеми инструментами сразу, а тики приходят на разных символах в разное время. Также требуется передать сигнал об изменении содержимого файла.

なぜOnTrade() ではないのですか?

 
komposter:

なぜOnTrade() ではないのですか?

同意します。通常のOnTrade()処理は、高度なTamerと同様に必要です。これらがないのは、どのEAにおいても、特にマルチにおいてはバグです。

また、作者は無駄にライブラリから拒否していますが、ライブラリを使えばもっと多くのことができます(専門的なソフトウェアの話ではありません)。

その通りだが、我々にはもっと想像の余地がある。)

追記

私はまた、平均化とピラミッドだけでなく、さまざまな瞬間の例を見てみたい(私はそれらだけを見てきました、多分私は注意深くない)。

私はこれを参考にしました:

1.2 取引ポジション量

どの注文をクローズするかに違いはあるのでしょうか?利益には影響しないのでしょうか?例えば、2つの注文が異なる時間にオープンされ、異なる時間にクローズされた。つまり、注文会計システムで取引ポジションをエミュレートしてみましょう。

注文の決済レベルを場所によって変えた場合、利益がどうなるかをバリアントで計算してみましょう:

タイプ
数量
開始レベル
終値レベル
売る0.11.393881.38438
売り0.11.38868
1.38149
 

DLLと追加ソフトウェアについて少し補足したいと思います。

今のところ、私はDLL(iniファイルで動作することが義務付けられている)の助けを借りて、信号の送信と情報の交換を可能にする変種を考えています。

そして、私が考えている最大の仕事(私の長年の夢)は、サーバーを開発することです。サーバーの主な仕事は、さまざまなプラットフォームから情報を収集し、処理することです(複数のクライアントからの情報も良いでしょう)。

 
Interesting:

タイマーがないのは、どんなムールでもバグだと思う。

それに、作者がライブラリに見切りをつけるのは間違いだ。ライブラリを使えば、もっと多くのことができる(専門的なソフトウェアの話ではない)。

その通りだが、我々にはもっと想像の余地がある :)

追記

また、平均化やピラミッドだけでなく、様々なモーメントの例も見てみたいです(私はそれらしか見たことがありません。)

私はこれを参考にしました:

1.2 取引ポジション量

どの注文をクローズするかに違いはあるのでしょうか?利益には影響しないのでしょうか?例えば、2つの注文が異なる時間に発注され、異なる時間に決済された。つまり、注文会計システムで取引ポジションをエミュレートしてみましょう。

注文の決済レベルを場所によって変えた場合、利益がどうなるかをバリアントで計算してみましょう:

タイプ
数量
開始レベル
終値レベル
売る0.11.393881.38438
売り0.11.38868
1.38149

この例のポイントは、利益が予測に投入した資金に依存することを示すことであり、より複雑なケースでも同じであろう(ただ、同じことを証明する多数の例で記事をロードしたくなかっただけである)。

ライブラリについては、私はex5ライブラリに反対ではないが、エンドユーザーを落胆させるのでdllは使いたくない。

それに、購入時にトロイの木馬を手に入れたいと思う人はいないでしょう。MQはそのポリシーにおいてセキュリティにこだわろうとしている。

DLLを使わないということは、コードが安全であるということだから。

 
komposter:

有用かつ適切な記事で、著者に感謝する!


ひとつわかりにくいことがあります:

なぜOnTrade() ではないのですか?

サーバーに送られたものはすべてOnTrade() に表示されます。しかし、必要なのはフィルタリングだけで、リクエストではなく、約定した注文に関するサーバーのレスポンスをファイルに転送するだけです。

私はこの方向で考えませんでした。

 
Urain:

この例の本質は、利益が予測にかける資金に依存することを示すことであり、より複雑なケースでも同じである(ただ、同じことを証明する多数の例で記事を読みたくなかっただけである)。


MT4の取引プロセスをMT5に適応させた場合のみ同じになりますが、そうでない場合は、特定の状況において違いが生じる可能性があります(かなり重要です)。

例を挙げるとすれば、「反転」と「トリミング」の2つだけである(コンパクトに書けば、それほどスペースは取らないだろう)。

そして、このようなシステムで最も「厄介」で複雑なのは、反転と切り捨てであることは間違いない。

ウレイン

ライブラリについては、ex5のライブラリに反対しているわけではないが、エンドユーザーの意欲を削ぐのでdllは使いたくない。

それに、購入時にトロイの木馬を手に入れたいと思う人はいないでしょう。MQはそのポリシーにおいてセキュリティに忠実であろうとしている。

だから私は、dllがない限り、コードは安全であるという彼らのイメージを付け加えているだけだ。

ex5ライブラリに関しては、私も同意します(特化したクラスライブラリを作成するのは良い解決策かもしれません)。しかし、1つ大きな「しかし」があります - MQL5のみをベースにしたソリューションの機能は、DLLが提供するすべての可能性に比べて著しく劣っています。

DLLの問題は、多くの人が思っているよりも簡単に解決できる:

1.ライブラリのソースコードを公開する;

2.ソースコードをMQに提供し、MQがそれをチェックし、ライブラリをコンパイルし、一般公開する。

追記

もちろん可能であれば)2つのプラットフォームのバランス情報を同期させることも検討したい。

 
Interesting:

同じことが言えるのは、MT4の取引プロセスをMT5に適応させる場合だけで、そうでない場合は、特定の状況において違いが生じる可能性があります(しかも、かなり重大な違いが)。

例を挙げるとすれば、「反転」と「切り捨て」の2つだけです(コンパクトに書けば、それほどスペースは取りません)。

そして、このようなシステムで最も「厄介」で複雑なのは、フリップとトランケーションであることは間違いない。

ex5ライブラリに関しては、私も同意します(特別なクラスライブラリを作るのは良い解決策かもしれません)。しかし、1つ大きな「しかし」があります。

DLLの問題は、多くの人が思っているよりも簡単に解決できる:

1.ライブラリのソースコードを公開する;

2.ソースコードをMQに提供し、MQがそれをチェックし、ライブラリをコンパイルし、一般公開する。

追記

もちろん可能であれば)2つのプラットフォームのバランスシート情報を同期させることも検討したい。

ロールオーバーでもカットでも違いはなく、違いは現時点での気配レベルの違いと約定ラグにのみ現れます。

理想的には、MT間の気配値が等しく、タイムラグが0であれば、取引は同じ利益をもたらします。

要点はご理解いただけたと思いますが、利益はベッティングによってもたらされます。両端末で、同じ瞬間に、同じクォートで、同じベットをすれば、同じ利益が得られます。

DLLでは、MQがすべてのサードパーティのコードを掘り下げ、その安全性をチェックすることはほとんどありませんし、コンパイラdelphiまたはsrpは、誰もが持っているわけではありません。あるバイブルのコードを投稿し、コンパイルされたファイルを別のファイルで置き換えることができます。だから今のところex5だけ。

 
Urain:

サーバーに送られたものはすべてOnTrade() に表示されます。しかし、リクエストではなく、約定した注文に関するサーバーの応答をファイルに転送するには、フィルタリングが必要なだけです。

このような方向は考えていませんでした。

確かに、OnTradeはポジションリストの変更を処理するのに理想的な場所です。既存の取引が起動時に直ちにコピーされるように初期化するだけです(次の取引イベント 時ではありません)。

イベントのフィルタリングは非常に簡単です。ポジションのリストをチェックし、その中で何かが変更された場合にのみ処理を続行します。