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

 
Urain:

この差は、現時点での相場水準の差と約定ラグにのみ現れます。

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


すべての取引戦略ではありません(上に書いたように、MT4の取引方法をMT5に適応させない場合のことです)。

私はR2とMT5の結果の違いについて話しているのではありません(しかし、Rumusは本当に人生から外れているので、考慮に入れません)。

本当にMT4での取引をMT5で管理したい人は、逆のプロセスを考えるべきである。

同時に、(多通貨の条件下で)フリップとカットを正確にストラテジーにもっと使うこと。

また、すべての取引プロセスと残高情報をGMTまたは端末のローカル時間(同じタイムゾーンにある場合)で同期させることができれば最高です。

追記

それは「レート」の問題ではなく、預金の負荷の問題でもありません。何をあきらめなければならないか、どのように戦略を変更するかということだ。

この意味での唯一の利便性は、すべてのMT4取引プロセスが100%の結果でnettengに調整できることです。

もちろん、重要なポイントは、反転やカットのような現象は、ほとんどの取引戦略では非常にまれであるということです。

Urain

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

残念ながら、MQL5はDLLの助けを借りて得られる可能性の少なくとも半分をすぐに提供することはないだろう。

サンドボックス」から抜け出すことができ、それほどかさばらないDLLは、多くの開発ツールに実装することができる。

オプションとして、WinAPIに結びついたMQLライブラリを適用することができます。

 
Interesting:

すべての取引戦略についてではありません(上に書いたように、MT4の取引方法をMT5に適応させない場合のことです)。

R2とMT5の結果の違いについて話しているのではありません(しかし、Rumusは本当に人生から外れているので、考慮に入れません)。

この文章を読むのは何度目かになりますが、MT5からMT4(またはその逆)に移行する際に、財務結果が変わる注文/取引のシーケンスを少なくとも1つ挙げてください。履歴の注文/取引のリストが変わるのでも、現在のオープンポジションの表示が変わるのでもなく、財務結果が変わるの です。

取引条件が同一であれば(気配値/スプレッド/スワップ/ストップレバーなど)、MT5での結果はMT4と同じかそれ以上(MT4で2つのカウンターポジションがある場合は、スワップによりそれ以上)になると主張します。


確かに、取引をコピーする 際に、すべてのニュアンスの会計処理を整理するのは難しい作業です。しかし、これは別の作業であり、ネッティング問題の理論的な部分とは何の関係もありません。

 
komposter:

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

ポジションリストをチェックし、その中で何かが変更された場合にのみ処理を続行します。

OnTrade イベントでは、約定した取引だけでなく、発注した注文も表示されます。
 
Urain:
OnTradeでは、約定した取引だけでなく、発注した注文についてもイベントが表示されます。
つまり、注文の発注/取消/執行に反応する必要はないということです。そのためには、ポジションが 変更されたかどうかをチェックする必要があります。
 

いいアイデアだ。素晴らしいコピー機だ!ずっと前にやろうとしたが、うまくいかなかった。


作者に敬意を。!!!

 
komposter:
つまり、発注/取消/約定注文に反応する必要はないということです。そのためには、ポジションが 変更されたかどうかをチェックする必要がある。

では、OnTimerのコピーを作って、次のように名前を変えてください:

void OnTimers()
  {
//--- 位置を取得する 
   get_positions();
//--- 位置が等しくない場合は、新しいデータを保存する。
   if(compare_positions())saves_positions();
  }
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- 位置を取得する 
   get_positions();
//--- 位置が等しくない場合は、新しいデータを保存する。
   if(compare_positions())saves_positions();
  }

//そして、OnDeinitでタイマーの破壊をコメントアウトする;

そして、OnInitのEventSetTimer(1);の代わりに、タイマーの破壊をコメントアウトする。

OnTimers();

ZYは実際に全体の手直しをしているが、月曜日にしかチェックできない。

 
Urain:

じゃあ、OnTimerのコピーを作って、名前をこう変えればいい:

そういうことだ、簡単だよ)


Urain

そして、OnInitで、EventSetTimer(1);; の代わりに、次のようにする。

初期化が「失敗」した場合(例えば、ターミナルを起動した ときにデータが時間内にロードされなかった場合)、コピー機は次の取引イベントが発生するまで「スリープ」します。この場合、初期化が成功するまで動作する無限ループか同じオンタイマーを提供する必要があります。

 
Urain:

ライブラリに関しては、ex5のライブラリに反対しているわけではないが、dllはエンドユーザーをがっかりさせるので使いたくない。

また、MT4のコピーを追加インストールすることは、エンドユーザーにとってあまり便利ではありません;-)。ほとんどの場合、ユーザーはすでに長い間MT4をインストールしており、MT5のファイルにはまったく入っていません。トリックとしてsubstを使用することを推奨すべきでしょうか?
 
marketeer:
MT4の追加インストールは、エンドユーザーにとってもあまり便利ではありません。)ほとんどの場合、ユーザーはすでに長い間MT4をインストールしており、MT5のファイルにはまったく入っていません。もしかしたら、トリックとしてsubstを使うことを勧めるべきかも?
私も同じようなことを考えていました。しかし、substにはいくつかの落とし穴がある(少なくともXPでは):物理ディスクにアクセスできなくなる
 
marketeer:
MT4の追加インストールは、エンドユーザーにとってもあまり便利ではありません。)ほとんどの場合、ユーザーはすでに長い間MT4をインストールしており、MT5のファイルにはまったく入っていません。もしかしたら、トリックとしてsubstを使うことを勧めるべきかも?

私はシグナル送信チャンネルについての記事を書く ことを目的としたのではなく、最もシンプルで理解しやすい解決策を見つけました。

シグナル送信は別の記事のテーマだと思います。

私の知る限り、また個人的なやり取りをする限り、多くのユーザーが最大12台のMTをマシンに載せているが、何の問題もない。それに、MT4は単純なコピーで簡単に移行できる。さらに、私のコードにはマジックのプロテクションがないので、コピーと手動で同時に口座を使用することはできません。