[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 613

 
未決済注文や指定したマジックナンバーの保留注文がないことを確認するには? オーダーセレクトの有無は確認できますが、注文がないことを確認するにはどうすればよいですか?
 
sllawa3:
未決済注文や指定したマジックナンバーの保留注文がないことを確認するにはどうすればよいですか? 注文の選択を確認することはできますが、不在を確認するにはどうすればよいですか?

存在感がなければ、存在感もない :)))
 
Techno:
空きがなければ、空きがないのです :)))
はい、もし...なら、セレクタは最後のポーズの可用性の値を保持します...
 
sllawa3:
そうですね...セレクターが最後のポーズをとるという価値さえあれば...。
セレクタ関数は何も保存せず、受信した番号から順番を選ぶだけで、この番号はループの中で構築される
 
DDFedor:

- 当該期間の一番外側のバーの数字を取得する。

- は、最大値探索関数と最小値探索関数を使用します。

https://docs.mql4.com/ru/series/iLowest

https://docs.mql4.com/ru/series/iHighest

つまり、かなり基本的なことなんですね。
   int      NBars,MostHiBar, MostLoBar;
   double   MostHiPrice,MostLoPrice;
   
//-----------------------------------------------------------------
   NBars       = 80;
   MostHiBar   = iHighest(NULL,PERIOD_D1,MODE_HIGH,NBars,0);      // Номер "максимального" бара
   MostLoBar   = iLowest (NULL,PERIOD_D1,MODE_LOW, NBars,0);      // Номер "минимального" бара
   MostHiPrice = iHigh   (NULL,PERIOD_D1,MostHiBar);              // Цена  "максимального" бара
   MostLoPrice = iLow    (NULL,PERIOD_D1,MostLoBar);              // Цена  "минимального" бара

   Comment (
            "\n", 
            "Наибольшая цена за ", NBars, " дней = ", MostHiPrice, "\n",
            "Наименьшая цена за ", NBars, " дней = ", MostLoPrice
           );
そうだろ?
 
sllawa3:
未決済注文や指定したマジックナンバーの保留注文がないことを確認するにはどうすればよいですか? 注文の選択を確認することはできますが、不在を確認するにはどうすればよいですか?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 06.03.2008                                                     |
//|  Описание : Возвращает флаг существования позиций                          |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время открытия)           |
//+----------------------------------------------------------------------------+
bool ExistPositions(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal();
 
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (ot<=OrderOpenTime()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
//жжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжжж
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.03.2008                                                     |
//|  Описание : Возвращает флаг существования ордеров.                         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время установки)          |
//+----------------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal(), ty;
 
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ty=OrderType();
      if (ty>1 && ty<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (ot<=OrderOpenTime()) return(True);
          }
        }
      }
    }
  }
  return(False);
}
if (ExistPositions(СИМВОЛ, ОПЕРАЦИЯ, МАГИК, ВРЕМЯ ОТКРЫТИЯ)==false) {код, если нету позиции}

それは注文でも同じです ...

 
 int ticket;
 int start()  
 {
 int prim=8;
 while(ticket<prim)
 {
 ticket++;
 }
 Print(ticket);
 return;
 }

このコードをテストすると、ログは無限に "8 "という結果を出します。
結果が1回しか出ないようにする方法を教えてください。
ありがとうございます。
 
Oper:

このコードをテストすると、ログは無限に "8 "という結果を出します。
結果が1回しか出ないようにする方法を教えてください。
ありがとうございます。
を使えば、これをinit()関数に移動させることができます。
 
sllawa3:

問題が発生した ... 助けてくれ ...

セレクタは、オープンがあれば注文を見つけますが、オープンがない場合はどのように見つけるのですか? セレクタは、まだ最後の既存のクローズドポジションを表示します ...


int DS=0;
for(int i = 0; i < OrdersTotal(); i++)
  {
    if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) // если под такой позицией ордер не выбран идём на следующий круг 
      { if(OrderSymbol() == Symbol())// если символ ордера не совпадает с символом инструмента идём на следующий круг
         { if(OrderMagicNumber() == MAGA) // если Magic ордера не совпадает с MAGA идём на следующий круг  
             {if(OrderType() == OP_BUY)DS++; // если дошли аж суда и тип бай то увеличиваем счётчик на 1
             }
         }
      }
  }
// если тут DS=0 значит открытых ордеров по текущему символу с заданным магиком типа бай нету

何が問題なのでしょうか?

 
rebiata podskajute skolko stoil Maiatnik (Swinger) v 2008 gody?