Fehler, Irrtümer, Fragen - Seite 1471

 

Welchen Zweck erfüllt der Modifikator const am Ende einer Methode?

SetPoint(const int point,const datetime time,const double price) const;    < ------

Welche Vorteile haben wir, wenn wir diesen Modifikator bei der Initialisierung von Variablennamen verwenden?

Ich bin mir bewusst, dass sich die Variable nicht ändern und einen anderen Wert erhalten kann.

Vielleicht beschleunigt dieser Modifikator die Arbeit des Programms?

 
Vladimir Pastushak:

Welchen Zweck erfüllt der Modifikator const am Ende einer Methode?

Welche Vorteile haben wir, wenn wir diesen Modifikator bei der Initialisierung von Variablennamen verwenden?

Ich bin mir bewusst, dass sich die Variable nicht ändern und einen anderen Wert erhalten kann.

Kann es sein, dass dieser Modifikator den Programmablauf beschleunigt?

Dies ist aus OOP. Dies bedeutet, dass die Methode das Objekt, von dem aus sie aufgerufen wird, nicht verändert. Argumente haben damit nichts zu tun.

Der Vorteil ist, dass Sie beim Betrachten des Prototyps sehen, dass das Objekt nicht verändert wird, d.h. die Sichtbarkeit.

 
Wenn Sie mit der rechten Maustaste auf die Chart-Registerkarte des MT4-Testers klicken und "Kopieren" wählen, verschwindet das Pop-up-Fenster/Menü nicht.
 

Hallo Leute ) Bitte helfen Sie mir, einen Code zu schreiben (genauer gesagt einen kleinen Teil), mein Ziel ist es, eine Funktion zu schreiben, die die Bestellhistorie auswählt, und dort muss ich den Wert sehen, bei dem die letzte Bestellung geschlossen wurde, positiv oder negativ. Bitte teilen Sie uns mit, wer dies tut (ich zerbreche mir bereits den Kopf )))))

Ich danke Ihnen im Voraus.

 
Tema97:

Hallo Leute ) Bitte helfen Sie mir, einen Code zu schreiben (genauer gesagt einen kleinen Teil), mein Ziel ist es, eine Funktion zu schreiben, die die Bestellhistorie auswählt, und dort muss ich den Wert sehen, bei dem die letzte Bestellung geschlossen wurde, positiv oder negativ. Bitte teilen Sie uns mit, wer dies tut (ich zerbreche mir bereits den Kopf )))))

Ich danke Ihnen im Voraus.

MQL4

//+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу, типу и магику
   bool isLossLastClosePos(string sy, int op, int mn) {
      datetime t=0;
      int i, j=EMPTY;
      for(i=OrdersHistoryTotal()-1; i>=0; i--) {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
            if(OrderMagicNumber()!=mn) continue;
            if(OrderSymbol()!=sy)      continue;
            if(OrderType()!=op)        continue;
            if(t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
      if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
         if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
         }
      return(false);
   }
//+------------------------------------------------------------------+
   // Возвращает флаг закрытия последней позиции в убытке. Позиция выбирается по символу и магику
   bool isLossLastClosePos(string sy, int mn) {
      datetime t=0;
      int i, j=EMPTY;
      for(i=OrdersHistoryTotal()-1; i>=0; i--) {
         if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
            if(OrderMagicNumber()!=mn) continue;
            if(OrderSymbol()!=sy)      continue;
            if(OrderType()>1)          continue;
            if(t<OrderCloseTime()) {
               t=OrderCloseTime();
               j=i;
               }
            }
         }
      if(OrderSelect(j,SELECT_BY_POS,MODE_HISTORY)) {
         if(OrderProfit()+OrderCommission()+OrderSwap()<0) return(true);
         }
      return(false);
   }
//+------------------------------------------------------------------+

Wir prüfen es so:

if(isLossLastClosePos(symbol, magic)) {
   // последняя позиция закрыта в убытке
   }
 
Tema97:

Hallo Leute ) Bitte helfen Sie mir, einen Code zu schreiben (genauer gesagt einen kleinen Teil), mein Ziel ist es, eine Funktion zu schreiben, die die Bestellhistorie auswählt, und dort muss ich den Wert sehen, bei dem die letzte Bestellung geschlossen wurde, positiv oder negativ. Bitte teilen Sie uns mit, wer dies tut (ich zerbreche mir bereits den Kopf )))))

Vielen Dank im Voraus.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает тип закрытия по профиту, 
//|  1= позиция закрыта в профите,                                             |
//|  2- позиция закрыта в минусе                                               |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
int isCloseLastPosByStoporTake(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
      double ocp=OrderProfit();
if (OrderProfit()+OrderCommission()+OrderSwap()>0) return(1);
if (OrderProfit()+OrderCommission()+OrderSwap()<0) return(2);
  }
  return(0);
}

Um das herauszufinden, müssen Sie Folgendes tun:

if(isCloseLastPosByStoporTake("",-1,-1)==1) // Позиция закрыта в плюсе
if(isCloseLastPosByStoporTake("",-1,-1)==2) // Позиция закрыта в минусе
 
Artyom Trishkin:

MQL4

Prüfen Sie es so:

))))

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг убыточности последней позиции.                 |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isLossLastPos(string sy="", int op=-1, int mn=-1) {
  datetime t;
  int      i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    if (OrderProfit()<0) return(True);
  }
  return(False);
}
 
Vladislav Andruschenko:

))))

Sie wissen schon, dass Ihre Anspielungen albern sind, oder?

Der Code gehört mir. Die Logik und die Variablennamen habe ich von Igor übernommen. Ich verstehe Ihren Hinweis also nicht. Der Name der Funktion? Spiegelt es die Bedeutung wider, oder sind Sie der englischen Sprache nicht mächtig?

 
Artyom Trishkin:

MQL4

Prüfen Sie es so:

Herzlichen Dank!!!!
 
Vladislav Andruschenko:

um herauszufinden, was du tust:

Herzlichen Dank!!!

Grund der Beschwerde: