Erreurs, bugs, questions - page 1471

 
Vladimir Pastushak:

A quoi sert le modificateur const à la fin d'une méthode ?

Quels avantages obtenons-nous en utilisant ce modificateur dans l'initialisation des noms de variables ?

Je suis conscient du fait que la variable ne peut pas changer et obtenir une valeur différente.

Peut-être que ce modificateur accélère le fonctionnement du programme ?

Cela vient de OOP. Cela signifie que la méthode ne modifie pas l'objet à partir duquel elle est appelée. Les arguments n'ont rien à voir avec cela.

L'avantage est que lorsque vous regardez le prototype, vous verrez que l'objet ne sera pas modifié, c'est-à-dire qu'il sera visible.

 
Si vous cliquez avec le bouton droit de la souris dans l'onglet graphique du testeur MT4 et sélectionnez "Copier", la fenêtre/menu contextuel ne disparaît pas.
 

Bonjour à tous) S'il vous plaît, aidez-moi à écrire un code (plus correctement une petite partie) mon but est d'écrire une fonction qui sélectionne l'historique des commandes et là j'ai besoin de voir la valeur à laquelle la dernière commande a été fermée, positive ou négative. Veuillez indiquer qui fait cela (je me creuse déjà les méninges )))))).

Merci d'avance.

 
Tema97:

Bonjour à tous) S'il vous plaît, aidez-moi à écrire un code (plus correctement une petite partie) mon but est d'écrire une fonction qui sélectionne l'historique des commandes et là j'ai besoin de voir la valeur à laquelle la dernière commande a été fermée, positive ou négative. Si vous connaissez le code, veuillez m'en informer (je me suis déjà creusé la tête). )))))

Merci d'avance.

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);
   }
//+------------------------------------------------------------------+

Nous le vérifions de cette façon :

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

Bonjour à tous) S'il vous plaît, aidez-moi à écrire un code (plus correctement une petite partie) mon but est d'écrire une fonction qui sélectionne l'historique des commandes et là j'ai besoin de voir la valeur à laquelle la dernière commande a été fermée, positive ou négative. Veuillez indiquer qui fait cela (je me creuse déjà les méninges )))))).

Merci d'avance.

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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);
}

Pour le savoir, il faut faire ceci :

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

MQL4

Vérifiez comme ça :

))))

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. 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:

))))

Vous réalisez que vous êtes stupide avec vos sous-entendus maintenant, n'est-ce pas ?

Le code est le mien. J'ai pris la logique et les noms de variables d'Igor. Donc je ne prends pas votre allusion. Le nom de la fonction ? Est-ce que ça reflète le sens, ou est-ce que tu ne connais pas l'anglais ?

 
Artyom Trishkin:

MQL4

Vérifiez comme ça :

Merci beaucoup !!!!
 
Vladislav Andruschenko:

pour savoir ce que vous faites :

Merci beaucoup ! !!

 
Artyom Trishkin:

Vous réalisez que vous êtes stupide avec vos sous-entendus maintenant, n'est-ce pas ?

Le code est le mien. J'ai pris la logique et les noms de variables d'Igor. Donc je ne prends pas votre allusion. Le nom de la fonction ? Est-ce que ça a du sens, ou est-ce que tu es nul en anglais ?

C'est un mec. Aucun commentaire. Bonne chance avec ça. Je me fiche de la façon dont vous écrivez ou de qui vous adoptez. Je viens de voir le vrai visage.