Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1622

 
makssub #:

... Je vérifierai ça un de ces jours.

Aujourd'hui ou l'autre jour ?

C'est troublant...

 
Roman Sharanov NULL.
Mais si je copie simplement le code du premier constructeur au second et que je ne l'appelle pas, tout fonctionne. Quel est le problème ?
PapaYozh #:


Le problème se trouve dans MQL.

Dans de telles situations, je place l'initialisation dans une méthode séparée que je tire de différents constructeurs.

---

Il y a également un problème avec l'appel du constructeur parent.

Le problème est de ne pas comprendre ce qui se passe lorsqu'on l'appelle :

CWave(namePref, startPrice, startTime, endPrice, endTime);

Et là, c'est simple. Un objet CWave est créé et immédiatement détruit))). Cet objet temporaire n'a rien à voir avec l'instance dans le constructeur de laquelle l'appel a été fait))).

 
Vladimir Simakov #:

Le problème est de ne pas comprendre ce qui se passe quand on passe un appel :

Et là, c'est simple. Un objet CWave est créé et immédiatement détruit). Cet objet temporaire n'a rien à voir avec l'instance dans le constructeur de laquelle l'appel a été fait))).

Où avez-vous vu le nouvel opérateur ?
 

Bonjour à tous ! !!

J'écris une grille EA, j'ai besoin de trouver un profit seulement pour l'ordre avec le ticket maximum et l'ordre avec le ticket minimum (le minimum est pour plus tard), maintenant je veux trouver un profit pour l'ordre maximum. Je vous joins la fonction et une image qui montre le principe d'ouverture d'une grille de commandes. Ma question est la suivante : suis-je correct dans l'écriture de la fonction de calcul du profit d'un ordre avec un ticket maximal ? Merci d'avance.

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
         ticket = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
        max_ticket = OrderTicket();
        if(max_ticket > ticket)
        {
          ticket = max_ticket;
          max_ticket_profit = OrderProfit();
        }
      }
    }
  }
  return(max_ticket_profit);
}

 
Сергей Таболин #:

Alors aujourd'hui ou l'autre jour ?

C'est un peu alarmant...

C'est bon. Je voulais vérifier maintenant, mais ils m'ont appelé et j'ai réalisé que je ne serais pas de retour de sitôt. C'est un sacré rapport, n'est-ce pas ?)

 
EVGENII SHELIPOV #:

Bonjour à tous ! !!

J'écris une grille EA, j'ai besoin de trouver un profit seulement pour l'ordre avec le ticket maximum et l'ordre avec le ticket minimum (le minimum est pour plus tard), maintenant je veux trouver un profit pour l'ordre maximum. Je vous joins la fonction et une image qui montre le principe d'ouverture d'une grille de commandes. Ma question est la suivante : suis-je correct dans l'écriture de la fonction de calcul du profit d'un ordre avec un ticket maximal ? Merci d'avance.

//+----------------------------------------------------------------------------+
//| Расчет профита максимального ордера в сетке                                |
//+----------------------------------------------------------------------------+
double GetProfitMaxOrder(int otype)
{
  int max_ticket=0;
  double max_ticket_profit = 0;
  {
   for (int cnt = OrdersTotal() - 1; cnt >= 0; cnt--) 
    {
    if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderType() == otype)
      {
      if(max_ticket < OrderTicket())
         {
         max_ticket = OrderTicket();
         max_ticket_profit = OrderProfit()+OrderCommission()+OrderSwap();
        }
      }
    }
  }
  return(max_ticket_profit);
}
 
Vladimir Simakov #:

Le problème est de ne pas comprendre ce qui se passe quand on passe un appel :

Et là, c'est simple. Un objet CWave est créé et immédiatement détruit). Cet objet temporaire n'a rien à voir avec l'instance dans le constructeur de laquelle l'appel a été fait))).


Pas de fantaisie. L'essentiel de ce qui se passe est que vous appelez une méthode qui est un constructeur avec un ensemble différent de paramètres. Aucun objet n'est créé par cette opération.

Un appel similaire au constructeur, qui n'aboutira pas non plus au résultat souhaité :

this.CWave(namePref, startPrice, startTime, endPrice, endTime);
 
Bon après-midi. Veuillez indiquer comment trouver le prix d'ouverture de l'ordre le plus proche du prix actuel. MQL4. Avez-vous des exemples ?
 

Bonjour, pourriez-vous me dire si j'ai bien compris l'expression ?

MaxMartinLot = Lot*MathPow(K_Martin,OrdersClose); - signifie K_Martin, dans la mesure des OrdersClose ?

 
законопослушный гражданин #:

Bonjour, pourriez-vous me dire si j'ai bien compris l'expression ?

MaxMartinLot = Lot*MathPow(K_Martin,OrdersClose); - signifie K_Martin, dans la mesure des OrdersClose ?

Qu'est-ce que OrdersClose ?

Voir ici