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

 
danil77783:

Artyom bon après-midi. Je m'appelle Daniel. Ma question est la suivante. J'ai écrit mon Expert Advisor en MQL4, pour être plus précis, réécrit à partir du tutoriel vidéo. Apparemment, il y a quelques erreurs dedans, mais il ne compile pas bien.

Le compilateur affichera les erreurs en spécifiant la ligne et la position dans la ligne. Veuillez vous y référer

Insérez le texte du programme en utilisant le bouton SRC au-dessus du texte de votre message - regardez, c'est mieux !

//+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+

#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

Vous pouvez également joindre un fichier - il apparaîtra alors immédiatement dans le MetaEditor.

 
LRA:

Le compilateur générera des erreurs indiquant la ligne et la position dans la ligne. Se référer à eux

Insérez le texte du programme en utilisant le bouton SRC au-dessus du texte de votre message - regardez, c'est mieux !!!

Vous pouvez également joindre un fichier - il apparaîtra alors immédiatement dans MetaEditor.


Désolé pour le comportement incorrect, je me corrige, je vous donne ma parole :) Je suis épuisé absolument.....

//+------------------------------------------------------------------+
//|                                                        test7.mq4 |
//|                        Copyright 2017, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//-------------------------------------------------------------------
extern double lots            = 0.1;
extern int    TakeProfit      = 300;
extern int    StopLoss        = 50;
extern int    Magic           = 777; 
extern int    Slippage        = 3;
//-------------------------------------------------------------------
extern string TMA             = "Параметры индикатора TMA";
extern string TimeFrame       = "current time frame";
extern int    HalfLength      = 56;
extern int    Price           = PRICE_CLOSE;
extern double ATRMultiplier   = 2.0;
extern int    ATRPeriod       = 100;
extern bool   Interpolate     = true;
//-------------------------------------------------------------------
double PriceHigh, PriceLow, SL ,TP;
int ticet;


//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   if (Digits == 3 || Digits == 5);
   {
       TakeProfit *=10;
       StopLoss   *=10;
       Slippage   *=10;
   }  
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
    PriceHigh = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 1, 0);  
    PriceLow  = iCustom(NULL, 0, "TMA_Fair", TimeFrame, HalfLength, Price, ATRMultiplier, ATRPeriod, Interpolate, 2, 0);  
    
    if (CountSell() == 0 && Bid >= PriceHigh)
    {
      tik et = OrderSend(Symbol(), OP_SELL, lots, Bid, Slippage, 0, 0, "TMA robot", Magic, 0, Red);  
      if (tiket > 0)
      {
          SL = NormalizeDouble(Bid + StopLoss*Point, Digits);
          TP = NormalizeDouble(Bid - TakeProfit*Point, Digits);
          
          if (OrderSelect(ticet, SELECT_BY_TICKET)) 
              OrderModify(tiket, OrderOpenPrice(), SL, TP, 0);
        }
    }
  }
//--------------------------------------------------------------------------------------------
 if (CountBuy() == 0 && Ask <= PriceLow)
    {
      tiket = OrderSend(Symbol(), OP_BUY, lots, Ask, Slippage, 0, 0, "TMA robot", Magic, 0, Blue);  
      if (tiket > 0)
      {
          TP = NormalizeDouble(Ask + TakeProfit*Point, Digits);
          SL = NormalizeDouble(Ask - StopLoss*Point, Digits);
          
          if (OrderSelect(ticet, SELECT_BY_TICKET)) 
              OrderModify(tiket, OrderOpenPrice(), SL, TP, 0);
        }
    }
//+------------------------------------------------------------------+
int CountSell() 
  {
    int count = 0;
    for (int trade = OrdersTotal()-1; trade>=0; trade--)
    {
       if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
       {
          if (OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_SELL)
             count++;
       }   
    }
    return(count);
  }
//-----------------------------------------------------------------------------------------------  
  int CountBuy() 
  {
    int count = 0;

    for (int trade = OrdersTotal()-1; trade>=0; trade--)
    {
       if (OrderSelect(trade, SELECT_BY_POS, MODE_TRADES))
       {
          if (OrderSymbol() == Symbol() && OrderMagicNumber) == Magic && OrderType() == OP_BUY)
             count++;
       }   
    }
    return(count);
  }

J'ai marqué les lignes avec des erreurs, fichier..... joint, s'il vous plaît jeter un coup d'oeil, merci d'avance !

 
 
danil77783:

Je m'excuse pour ce comportement incorrect, je vais me corriger, je vous en donne ma parole :) Je suis complètement épuisé ....

J'ai marqué les lignes avec des erreurs, j'ai joint le fichier....., veuillez le consulter, merci d'avance !

Est-il si difficile de voir que ticet et tiket sont des variables différentes ?

Et vous ne pouvez pas voir de parenthèses fermées sans parenthèses ouvertes aussi ?

 
Merci beaucoup pour votre aide ! !! .... J'ai corrigé toutes les erreurs, sauf une que je n'arrive pas à comprendre. Je vous demande de m'aider. Où est-ce que je me suis encore trompé ?
 
danil77783:
Merci beaucoup pour votre aide ! !! .... J'ai corrigé toutes les erreurs, sauf une que je n'arrive pas à comprendre. Je vous demande de m'aider. Où est-ce que je me suis encore trompé ?
Vous avez ce bloc hors du corps de la fonction OnTick, enlevez un crochet.
 
Alekseu Fedotov:
Vous avez ce bloc hors du corps de la fonction OnTick, enlevez un support.

Et puis il manquera une parenthèse.

La parenthèse au-dessus de la ligne sélectionnée doit être déplacée vers le bas, avant la ligne moins.

}
//+------------------------------------------------------------------+
 
Alexey Viktorov:

Et puis il manquera une parenthèse.

La parenthèse au-dessus de la ligne en surbrillance doit être déplacée vers le bas avant la ligne moins.

Oh, oui, vous devriez.

 

Tout ! !! .... Merci beaucoup. Je l'ai compilé. Ça marche !

 
danil77783: Tout ! !! .... Merci beaucoup. Je l'ai compilé. Ça marche !

Quel est le bénéfice ? De plus, cette pièce ici avec la fonction vide peut être jetée. Essayez-le...

//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   
  }