Il y a une idée de commerce intéressante. Aidez-moi à trouver des erreurs dans le code (mql4). - page 17

 
Karputov Vladimir:

Veuillez insérer le code correctement :Insérez le code correctement dans le forum(j'ai corrigé votre message).

Ajouté : Je recommande aussi fortement d'utiliser le styleur de code - il aidera à détecter les erreurs(Travailler avec le code source : Styler - Développement de programmes).

J'ajouterai aux fortes recommandations d'utiliser des fonctions actualisées

comme

int OnInit()
void OnTick()

et d'autres...

 
vladislavch19:

Veuillez m'indiquer où écrire ou qui peut m'aider à corriger deux erreurs dans le conseiller '}'. - fin de programme inattendue '{' - parenthèses non équilibrées TMA.mq4



Oooooooooh combien d'erreurs syntaxiques il y a.

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern double Lots            = 0.01;
extern int    Slippage        =5;
extern string comment         ="Продажа";
extern int    Megic           = 123;
extern string Indi            = "данные индикатора";
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 ticket;
bool res;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   if(Digits==3 || Digits==5)
     {
      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()

  {
   PriceHigh=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,1,0);
   PriceLow=iCustom(Symbol(),0,"TMA with Distancer",TimeFrame,HalfLength,Price,ATRMultiplier,ATRPeriod,Interpolate,2,0);

   if(Bid>=PriceHigh)
     {
      SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
      TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,comment,123,0,Maroon);

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
            res=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
        }
     }

   if(Ask<PriceLow)
     {
      SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
      TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);

      ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,comment,123,0,clrDarkBlue);

      if(ticket>0)
        {
         if(OrderSelect(ticket,SELECT_BY_TICKET)==true)
            res=OrderModify(ticket,OrderOpenPrice(),SL,TP,0);
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountSell()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
           {
            if(OrderType()==OP_SELL)count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountBuy()
  {
   int count=0;
   for(int trede=OrdersTotal()-1;trede>=0;trede--)
     {
      if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic)
           {
            if(OrderType()==OP_BUY)count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
 
Dans la matinée a décidé de parier sur le réel, mais quelque chose dernière option hibou ne tient pas les premières options semblent accrocher, et ce 6 mouches et rechargé - sur la démo puis a travaillé bien .... ou c'est trop bon - ils ne laissent pas faire...))
 
Сергей Криушин:
Dans la matinée a décidé de parier sur le réel, mais quelque chose dernière option hibou ne tient pas les premières options semblent accrocher, et ce 6 mouches et rechargé - sur la démo puis a travaillé bien .... Ou est-ce que c'est trop bon - ne pas le laisser fonctionner...))
J'ai fait une purge générale - maintenant debout... j'ai nettoyé 13 trojans du code... MT5 périmé... je n'ai pas utilisé de robot depuis un moment... ont dû s'empiler...
 
Сергей Криушин:
Dans la matinée a décidé de parier sur le réel, mais quelque chose dernière option hibou ne tient pas les premières options semblent accrocher, et ce 6 mouches et rechargé - sur la démo puis a travaillé bien .... ou c'est trop bon - ils ne laissent pas faire...))
d Que dit le journal de bord quand il s'envole ? J'ai fini de réécrire mon EA avec mt5 pour mt5 aujourd'hui.
 
Sergey Gritsay:
d Que dit le journal de bord quand il vole ? J'ai fini de réécrire un EA croisé avec un martin pour mt5 aujourd'hui.
Je ne sais pas, j'ai peur de le toucher... J'ai peur d'y toucher... et martin est pour les gens risqués, ou vendez seulement - pariez 1000$ - ça va rapporter gros, sur mon compte réel aujourd'hui j'ai aussi fait 3$ de profit.... c'est bien... et si je ne deviens pas trop gourmand, je ne vais probablement pas tout claquer, ce qui me permettra d'ouvrir d'autres comptes plus tard... merci beaucoup...))
 
Сергей Криушин:

voici le rapport... et voici la deuxième poussée...

Qu'est-ce que je peux dire, continuez comme ça.
 
erreur 'ST' - identifiant non déclaré test3.mq4 69 13 et perte possible de données en raison de la conversion de type test3.mq4 85 15

extern string TMA="Параметры";
extern int   TakeProfit       =100;
extern int   StopLoss         =50;
extern int    Megic           = 123;
extern double Lots            = 0.01;
extern int    Slippage        =5;
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 ticket;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   if(Digits==3 || Digits==5)
     {

      TakeProfit*=10;
      StopLoss*=10;
      Slippage*=10;
      }
      



                return(INIT_SUCCEEDED);
                
     }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+


//---

//+------------------------------------------------------------------+
//| 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(CountBuy()==0 && Ask<=PriceLow)

        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,0,0,"tma",Megic,0,Blue);
         if(ticket>0)
           {
            TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            ST=NormalizeDouble(Ask-StopLoss*Point,Digits);

            if(OrderSelect(ticket,SELECT_BY_TICKET))

              if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
                Print("Ошибка");
               }
  
        }

      if(CountSell()==0 && Bid>=PriceHigh)

        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,0,0,"tma",Megic,0,Red);
         if(ticket>0)
           {
            ST=NormalizeDouble(Bid+StopLoss*Point,Digits);
            TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);

            if(OrderSelect(ticket,SELECT_BY_TICKET))

               if( OrderModify(ticket,OrderOpenPrice(),ST,TP,0))
               Print("Ошибка");
           }
           }
        }
      //+------------------------------------------------------------------+
      int CountSell()
        {
         int count=0;
         for(int trede=OrdersTotal()-1;trede>=0;trede--)
           {
            if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
              {
               if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_SELL)

                  count++;
                  
              }
           }
         return(count);
        }

      int CountBuy()
        {
         int count=0;
         for(int trede=OrdersTotal()-1;trede>=0;trede--)
           {
            if(OrderSelect(trede,SELECT_BY_POS,MODE_TRADES))
              {
               if(OrderSymbol()==Symbol() && OrderMagicNumber()==Megic && OrderType()==OP_BUY)

                  count++;
                  
              }
           }
        
      return(count);
     }
//+------------------------------------------------------------------+

 
vladislavch19:
erreur 'ST' - identifiant non déclaré test3.mq4 69 13 et perte possible de données en raison de la conversion de type test3.mq4 85 15


vous avez déclaré un nom de variable

double PriceHigh,PriceLow,SL,TP;

mais vous en écrivez une autre

ST=NormalizeDouble(Ask-StopLoss*Point,Digits);
 

Aucune erreur avec les variables, "merci".

maintenant il prévient de la perte possible de données due à la conversion de type test3.mq4 87 15

et le testeur ne peut pas ouvrir le fichier "C:\Users\ÀÀministrator\AppData\Roaming\MetaQuotes\Terminal\F8B0CF1E1FEED3B00D2D7E193237B799\MQL4\indicators\TMA_Fair.ex4" [2].