[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 613

 
Wie prüfe ich, ob ein offener Auftrag oder ein schwebender Auftrag mit einer bestimmten magischen Nummer vorliegt? Wir können das Vorhandensein eines Auftrags prüfen, aber wie prüfe ich, ob ein Auftrag nicht vorliegt?
 
sllawa3:
Wie prüfe ich, ob ein offener Auftrag oder ein schwebender Auftrag mit einer bestimmten magischen Nummer vorliegt? Wir können das Vorhandensein eines Auftrags prüfen, aber wie prüfe ich, ob ein Auftrag nicht vorliegt?

Wenn es keine Präsenz gibt, dann gibt es auch keine Präsenz :)))
 
Techno:
Wenn es keine Verfügbarkeit gibt, dann gibt es keine Verfügbarkeit :)))
ja... wenn... dann behält der Selektor den Wert der Verfügbarkeit der letzten Pose...
 
sllawa3:
Ja... wenn nur... der Selektor den Wert behält, die letzte Pose zu haben...
Die Selektorfunktion speichert nichts, sie wählt nur die Reihenfolge der eingehenden Nummer aus, und diese Nummer wird in die Schleife eingebaut
 
DDFedor:

- die Nummern der äußersten Balken für den betreffenden Zeitraum abrufen.

- die Funktionen der Maximal- und Minimumsuche verwenden.

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

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

Es ist also ziemlich einfach, nicht wahr?
   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
           );
Oder?
 
sllawa3:
Wie kann ich prüfen, ob ein offener Auftrag oder ein schwebender Auftrag mit einer bestimmten magischen Nummer vorliegt? Wir können prüfen, ob ein Auftrag ausgewählt wurde, aber wie kann ich prüfen, ob er fehlt?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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) {код, если нету позиции}

Das gilt auch für Bestellungen ...

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

Beim Testen dieses Codes gibt das Protokoll unendlich oft das Ergebnis "8" aus.
Können Sie mir sagen, wie ich es schaffe, dass das Ergebnis nur einmal angegeben wird?
Ich danke Ihnen.
 
Oper:

Beim Testen dieses Codes gibt das Protokoll unendlich oft das Ergebnis "8" aus.
Können Sie mir sagen, wie ich es schaffe, dass das Ergebnis nur einmal angegeben wird?
Ich danke Ihnen.
können Sie dies in die Funktion init() verschieben.
 
sllawa3:

Ich habe ein Problem ... Hilfe ...

Der Selektor findet einen Auftrag, wenn es eine offene Position gibt, aber wenn es keine offene Position gibt, wie kann ich sie finden? Der Selektor zeigt immer noch die letzte geschlossene Position an.


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 значит открытых ордеров по текущему символу с заданным магиком типа бай нету

Was ist das Problem?

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