MetaquotesはなぜMT4ではなくMT5を推すのですか? - ページ 3

 
Stanislav Korotky:

また、どのMT4Orders関数を使用していますか?非同期(OrderSendAsync、OrderCloseAsync)かそうでないか?これが問題なのでしょう。

まだ調べていません。ただ、接続して速度をチェックし、mql5のオリジナルコードと比較し、オリジナルを削除して、mql4のコードでライブラリだけを残しました。

 
Vitaly Muzichenko:

私は理解できず、ただ接続して速度を確認し、mql5のオリジナルコードと比較し、オリジナルを削除して、mql4のコードでライブラリだけを残しました。

ライブラリの詳細ではなく、どのように使われてきたか、問題を理解するために聞いているのです。一般的には、チップを渡した。

 
Stanislav Korotky:

ライブラリーの内部を聞いているのではなく、何が原因なのか、どのように使われているのかを聞いているのです。とにかく、ヒントをあげました。


問題は、ライブラリの使い方ではない。

問題は、MT4で複雑なポジションを持たず、注文を持っていることです。したがって、今示したような効果を得るためには、12個のオーダーをクローズする必要があります。

ちなみに、テスターではそのような効果はありません。そして、デモでは持っていません。でも、実際のアカウントでは持っているんですよ。

この場合、mql4からmql5への「1→1」のコード移行は不可能である。

mql4で受注した仕事は、mql4の可能性に合わせて十分に整理する必要があります。

ここで言っても仕方がない。

ヴィタリー・ムジチェンコ

MT4の唯一の大きな欠点は ...

ただ、mql4にはある機能があり、mql5には他の機能があるということです。この場合、mql5が有利になります。しかし、この問題はmql4で正常に解決できる。

 
Andrey F. Zelinsky:

問題は、ライブラリの使い方ではない。

問題は、MT4では、集約されたポジションはなく、注文があることです。そして、12個のオーダーを閉じることで、示された効果が得られます。

ちなみに、テスターではそのような効果はありません。そして、デモでは持っていません。でも、実際のアカウントでは持っているんですよ。

この場合、mql4からmql5への「1→1」のコード移行は不可能である。

mql4で受注した仕事は、mql4の可能性に合わせて十分に整理する必要があります。

ここで言っても仕方がない。

ただ、mql4にはある機能があり、mql5には他の機能があるということです。この場合、mql5が有利になります。しかし、この問題はmql4では正常に解決できる。

MT4では何が加速できるのですか?

 if(OT==OP_BUY) {
   error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage,Blue);
   if(!error) Print("Error ",GetLastError());
 }
 if(OT==OP_SELL) {
   error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage,Red);
   if(!error) Print("Error ",GetLastError());
 }
 
Andrey F. Zelinsky:

問題は、ライブラリの使い方ではない。

問題は、MT4では、集約されたポジションはなく、注文があることです。そして、12個のオーダーを閉じることで、示された効果が得られます。

MT4とMT5のヘッジ口座(この場合はまさにそのような取引システムです)を比較するのは合理的です。それと総量規制の位置づけはどうなっているのでしょうか?MT5では、全く同じポジションの山=4分割注文に相当するものが存在することになります。とにかく、また話を問題から遠ざけている。

 
Vitaly Muzichenko:

MT4では何が加速できるのですか?

上記でXXXAsync関数に置き換えることを提案しました。役に立つかどうかはわかりませんが、一度試してみてはいかがでしょうか。

 
Stanislav Korotky:

上記でXXXAsync関数に置き換えることを提案しました。役に立つかどうかはわかりませんが、一度試してみてはいかがでしょうか。

少しずれているのでしょう。MT5ではこのコードで問題なく、<MT4Orders>を 使用すると すべてが即座に閉じられます。

MT4での問題がありますが、そこには明白な理由があり、<MT4Orders>を 必要としない 最も単純な四則演算のコードが存在します。100枚以上ありますよ、スクリーンショットもあります。自分の都合のいいようにスライドすることもあるし、終値が始まって値動きした場合も結構ある。何が関係しているのか分かりませんが、おそらく注文を送る順番が原因だと思います。

 

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

MetaquotesはなぜMT4ではなくMT5を滑らせるのですか?

ヴィタリー・ムジチェンコ さん 2017.09.23 20:50

MT4では何が加速できるのですか?

 if(OT==OP_BUY) {
   error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Bid,Digits),slippage,Blue);
   if(!error) Print("Error ",GetLastError());
 }
 if(OT==OP_SELL) {
   error=OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),slippage,Red);
   if(!error) Print("Error ",GetLastError());
 }

最低でもね。

  • ラベルをなくすことで、コードのスピードアップが図れます。
  • 価格の正常化は必ずしも必要ではありません。アスクやビッドの価格が小数点以下の桁数が多くても、正規化すれば良い結果が得られるわけではありません。

価格値の正規化は、その価格を用いた数学的演算を行う場合にのみ必要です。価格に付加価値をつける場合、または価格から減額する場合。

 
Vitaly Muzichenko:

おそらく少しずれているのでしょう。MT5ではこのコードで問題なく、<MT4Orders>を 使用すると すべてが即座に閉じられます。

MT4の問題がありますが、そこは明らかな理由で、<MT4Orders>を 必要としない 最も単純な四則演算のコードが存在します。100枚以上ありますよ、スクリーンショットもあります。自分の都合のいいようにスライドすることもあるし、終値が始まって値動きした場合も結構ある。何の関係もないのですが、注文を送る順序の関係でしょう。

そう、私のせいなのだ、私が馬鹿なのだ。

解決方法のバリエーションは以下の通りです。複数の注文を閉じる代わりに、カウンターの総量を置き、その後、相互破壊まで数回OrderCloseByを呼び出します。

 
Stanislav Korotky:

解決策としては、複数の注文を決済するのではなく、カウンターの総量を置いてから、OrderCloseByを相互に破壊するまで何度も呼び出すことである。

このバリエーションは、残念ながら1つのシンボルに対してのみ機能します。


MT4のコドベースに非同期オーダー機能が何年も追加されないのは不思議です。