偉大で恐ろしいMT4の永遠(または移行の戦略方法) - ページ 30

 
mt4で私はグラフが8000ピップに限られている見ていないフィボナッチの垂直方向のレベルのチャートを圧縮することはできません)))どのようにそれを解決するために?
 

フォートでは不思議とそうなるんです。以下、ポジションクロージングの主要部分です。

  if(Trade.PositionClose(mSymbol))
  {
     // --- Введем задержку пока не получим номер сделки, но не более 2-х секунд
    int cnt = 0;
    ulong deal = 0;
    while(((deal = Trade.ResultDeal()) == 0) && cnt < 20) {Sleep(100); ++cnt;}
    
    if(deal == 0)
    {
      ulong ttOrder = Trade.ResultOrder();
      if(HistoryOrderSelect(ttOrder))
      {
        ENUM_ORDER_STATE state = ENUM_ORDER_STATE(HistoryOrderGetInteger(ttOrder, ORDER_STATE));
        LOG("После закрытия позиции № сделки=0, Order=" + string(ttOrder) + " state=" + EnumToString(state));
      }
      return false;
    }
  }

以下はExpert Advisorのログからの抜粋です。つまり、ResultDeal()のチェックを20回繰り返した後、取引チケットがゼロになる部分まで到達しました。


JL    0    10:08:04.462    e-MultiPattern-0.15 (RTS-9.21,M5)    cStoploss::sortSL12 Дистанция контртренд=0 BID=172690.0, закроем Short
JM   0    10:08:06.695    e-MultiPattern-0.15 (RTS-9.21,M5)     ** 333-cMyTrade::ClosePosition. После закрытия позиции № сделки=0, Order=16868286 state=ORDER_STATE_FILLED

以下は、端末のログからの抜粋です。

IG 0 10:08:04.465 Trades '733618': Exchange buy 2 RTS-9.21 at market
KN 0 10:08:04.480 Trades '733618': accepted exchange buy 2 RTS-9.21 at market
OQ 0 10:08:04.481 Trades '733618': Exchange buy 2 RTS-9.21 at market.21 at market placed for execution

FG 0 10:08:04.517 Trades '733618': order #16868286 buy 2 / 2 RTS-9.21 at market done in 52.注文番号'733618': Buy 2 / 2 RTS-9.21 at market done in 52.326 ms
JN 0 10:08:04.517 Trades '733618': deal #3413752 buy 2 RTS-9.21 at 172780 done (based on order #16868286)

MT5のトレードロジックに詳しい方、アドバイスお願いします。端末のログによると、注文と取引の作成は一瞬で行われました -04.517 秒です。

しかし、whileループ内のEAはトレードチケットを見ることなく、20回繰り返した後、06.695 秒で終了しています。なぜ、受注券はあるのに、取引券がない構造なのか?

特にパーシャルクローズを利用した場合、トレードチケットの入手は どのように保証されるのでしょうか?

 
Vasiliy Pushkaryov 取引券の入手は どのように保証されるのでしょうか?

落とし穴が多いので、簡単に説明できない。ユーザーが問題なく作業できるようなソリューションを書きました。しかし、内部実装の解析は特別な目利きのために行うものです。

 
mt4のテスターをちゃんと作れば、数年後にはmt5のことは忘れ去られているだろう。
 
Dmitry Fedoseev #:

そして、真面目に言うと...?

ユーモア」スレッドはこちら

ボトムアップの互換性は、ソフトウェアの基本要件の一つです。前のバージョンのコードは、後続のバージョンで適切に認識されなければならない。そうでなければ、開発者はこれまでの開発を放り出して、新しいものを導入するだけです。どこにも行けない道。

MQL4のコードをMQL5のコードにコンパイルする必要性がある(まずは開発者にとって)ことには、まったく同意します。

 
Vladimir Baskakov #:
mt4のテスターをちゃんと作れば、数年後にはmt5はみんなに忘れ去られるでしょう。

バスカコフ、そして娘は悪名高きMT5を使用...。

 
6ヶ月前に指標を出すと約束したのに、出さなかった。
 
fxsaber #:

ResultDealが0であれば、ループを100万回繰り返しても、不変のパラメータであるため、0のままである。

発注された成行注文は、OrderSendの結果であるため。

よくわからないんです。MqlTradeResultの 構造体ヘルプには、次のように書かれています。

クローズで注文券が返ってきたが、注文券がない場合、このTRADE_ACTION_PENDINGの操作種別になるのか?

またはTRADE_ACTION_DEALで、トレードチケットが「遅れて」ストラクチャーに含まれない可能性があるのでしょうか?

I.e. HistorySelect-functionsで順番に案件を探した方が良いのでは?

 

あと、すみません、痛いところを突かれましたね。開発者の方へ:MT4のメンテナンスに非常識で不当な費用を費やすのはやめてください、すでにハイクラスの専門家の半分がそれをやっています。

MQL4-MQL5コンパイラを一度ビルドして、重要なことに集中する。最終版で競合他社の中で安定した1位を獲得する。

 
Vasiliy Pushkaryov #:

よくわからないんです。MqlTradeResult 構造体のヘルプには、次のように書かれています。

クローズでオーダーチケットが返ってきたのに、トレードチケットがない場合、TRADE_ACTION_PENDINGタイプの取引なのでしょうか?

またはTRADE_ACTION_DEALで、トレードチケットが「遅れて」ストラクチャーに含まれない可能性があるのでしょうか?

つまり、HistorySelect-functionsで順番に案件を探した方がいいのでしょうか?

ただし、SBのPositionClose(Symbol)メソッドでは、取引種別にTRADE_ACTION_DEALが割り当てられています。

トレードチケットはあるはずなのに、ないことが多いことがわかった。