どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 712

 
artmedia70:
答えは自ずと出てくるはずです。オープンポジションを開始時刻順に並べ替えることができます。そして、ソートされた配列からリストで閉じます。

複雑なのですが、注文を開いた順に 閉じるコードがあります。

//+------------------------------------------------------------------+
//|                 Закрыть все ордера                               |
//+------------------------------------------------------------------+


double ClossAllOrders ()

{
  for(int i=0; i<OrdersTotal(); )
  {
    if ( !OrderSelect(i, SELECT_BY_POS) )
      break;
    
    int type   = OrderType();

    bool result = false;
    
    switch(type)
    {
      //Close opened long positions
      case OP_BUY       : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3, Lime );
                          break;
      
      //Close opened short positions
      case OP_SELL      : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3, Lime );
                          break;

      //Close pending orders
      case OP_BUYLIMIT  :
      case OP_BUYSTOP   :
      case OP_SELLLIMIT :
      case OP_SELLSTOP  : result = OrderDelete( OrderTicket() );
    }
    
    if(result == false)
    {
      Print("Order " , OrderTicket() , " failed to close. Error:" , GetLastError() );
      i++;
      Sleep(500);
    }  
  }
}

// End

ここで、私が理解するところでは、ソートはOrderTicketを 犠牲にして行われます。

コードにどう書くか)

 
_new-rena:

138 - 「要求された価格が古いか、買値と売値が混在しています。

開閉価格はあるので再計算できませんが、ここに問題があります価格を 照会してMarketInfoを使用して値を与え、これを 別の変数に再割り当てする必要があります)。

ありがとうございます)しかし、私の問題はEA自体にあり、この関数にあるのではないことが判明しました。
 
あるレベルの記憶方法。仮に、ろうそくの最大値だったとしましょう。しかし、この値を変数に代入するのは、ifを通してでした。そして、別の状況では、この変数がゼロになります。
 
305:
あるレベルの暗記方法。仮に、それがロウソクの最大値であったとしよう。しかし、この値を変数に代入するのはifを通してでした。そして、別の状況では、この変数はゼロになります。
多分https://book.mql4.com/ru/variables/arrays。以下に必要なものがあると思います。

時系列配列

 
これではダメだ、横線を試して みよう
 
305:
これではダメだ、横線を試してみる。

kimは何でも記憶するために様々な機能を持っています。名前を実行するのに3分ほどかかりますが、もしかしたら、https://www.mql5.com/ru/forum/131859

 
7Konstantin7:

複雑なのですが、注文を開いた順に 閉じるコードがあります。

ここで、私が理解するところでは、ソートはOrderTicketを 犠牲にして行われます。

コードに入れたいと思います)

お願いです、注文を閉じる順番が決まっていて、連続しない秘訣を教えてください。数秒でアカウントの寿命はどう変わる?

ありがとうございます。

 
Roger:

注文を連続させず、一定の順序で決済する秘訣を教えてください。数秒の差で、アカウントの寿命が変わるとは。

ありがとうございます。

私は彼らが開かれた順番に注文を閉じている関数()を書き換えることができなかったそのトロールを取りましょう:シャッフル

この関数では、まず利益のある注文をすべて決済し、次に損失のある注文をすべて決済するため、スタック内のバランスチャートが醜くなり、さらに間違ったデータ(最大ドローダウン、最大損失注文シリーズ、最大利益、最大利益注文シリーズ)が発生します。

もし、混合 モードで注文を閉じたら、このような大きな値にはならないでしょう。

決済注文を開いた順に使用すれば、バランスチャートはより均等になり、ステートメントのデータ情報もより適切になります。

仮にたくさんのペアを取引するとして、それを一つずつカバーしていくと、あるペアは先に価格がなくなってしまうかもしれません。

オープンした順にカバーすれば、あるペアでクローズし、次に別のペアでクローズするというように、より分散されます

MT4は最大8つの注文を同時に送ることができると思いますが、よくわかりません、この場合、さらに速くクローズすることができます。

 
7Konstantin7:

注文を開いた順に閉じるように()関数を変更することができなかったトロールを例に挙げてみましょう。

この関数では、すべての利益が出ている注文と、すべての損失が出ている注文が最初に閉じられ、その結果、スタックのバランスチャートが醜くなり、さらに間違ったデータ:最大ドローダウン、損失注文の最大シリーズ、最大利益、利益注文の最大シリーズが得られます。

その後、それは愚かなまともなジェットコースターであることが判明し、例えば、それは500ドルによって上昇した後、400ドルによって下落した。我々は混合 モードで注文を閉じていた場合、そのような大きな値が存在しないでしょう。

決済注文を開いた順に使えば、バランスチャートはより滑らかになり、ステートメントのデータ情報もより適切になります。

仮にたくさんのペアを取引して、1つずつ全部決済していくと、あるペアは先に価格がなくなってしまうかもしれません。

オープンした順にカバーすれば、あるペアでクローズし、次に別のペアでクローズするというように、より分散されます

MT4は最大8つの注文を同時に送ることができると思いますが、よくわかりません、この場合、さらに速くクローズすることができます。

逆サイクル。最も早いオープンポジションを 探し、それをクローズし、サイクルの最初に移動する。閉じるべきポジションがなくなるまで続ける。
 
artmedia70:
逆サイクル。最も早いオープンポジションを探し、それをクローズし、サイクルの最初に移動する。このようにして、閉じるべきポジションがすべてなくなるまで続けます。

ありがとうございます。私はできませんが、ただ、誰かがその機能で数行走り書きするか、フクロウを落とすことができると思いました、最終版です。難しいとは思わないが、誰も助けてくれそうにない。

メンバー間で転送することが可能であれば、mql5が与えることができる)上の4つのクレジットがあります。