Hay una idea de comercio interesante. Ayúdame a encontrar errores en el código (mql4). - página 17

 
Karputov Vladimir:

Por favor, inserta el código correctamente:Inserta el código correctamente en el foro(he corregido tu mensaje).

Añadido: También recomiendo encarecidamente utilizar elestilizador de código - ayudará a detectar errores(Trabajar con el código fuente: Styler - Desarrollo de programas).

Me sumo a las firmes recomendaciones de utilizar funciones actualizadas

como

int OnInit()
void OnTick()

y otros...

 
vladislavch19:

Por favor, aconsejen dónde escribir o quién puede ayudarme a corregir 2 errores en el asesor '}' - final inesperado del programa '{' - paréntesis desequilibrados TMA.mq4



Oooooooooh cuántos errores sintácticos hay.

//+------------------------------------------------------------------+
//|                                                      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);
  }
//+------------------------------------------------------------------+
 
En la mañana decidió apostar por el real, pero algo última opción búho no mantiene las primeras opciones parecen colgar, y este 6 moscas y recargado - en la demo entonces funcionó bien ... o es demasiado bueno - no lo dejan trabajar...))
 
Сергей Криушин:
En la mañana decidió apostar por el real, pero algo última opción búho no mantiene las primeras opciones parecen colgar, y este 6 moscas y recargado - en la demo entonces funcionó bien ... O es demasiado bueno - no dejar que funcione...))
Hice una purga general - ahora en pie... limpié 13 troyanos del código... MT5 rancio...no he usado el robot en un tiempo... deben haberse amontonado...
 
Сергей Криушин:
En la mañana decidió apostar por el real, pero algo última opción búho no mantiene las primeras opciones parecen colgar, y este 6 moscas y recargado - en la demo entonces funcionó bien ... o es demasiado bueno - no lo dejan trabajar...))
d ¿Qué dice en los registros cuando sale volando? Hoy he terminado de reescribir mi EA con mt5 para mt5.
 
Sergey Gritsay:
d ¿Qué dice en los registros cuando vuela? Hoy he terminado de reescribir un EA cruzado con un martin para mt5.
No sé, tengo miedo de tocarlo... Tengo miedo de tocarlo... y martin es para gente arriesgada, o vender solamente - apostar $1000 - se pagará con creces, en mi cuenta real hoy también hice $3 de ganancia... eso es bueno... y si no me vuelvo avaricioso, probablemente no lo arruinaré, así que podré abrir un par de cuentas más después... Muchas gracias...))
 
Сергей Криушин:

aquí está el informe... y este es el segundo chorro...

Bueno, qué puedo decir, sigue así.
 
error 'ST' - identificador no declarado test3.mq4 69 13 y posible pérdida de datos debido a la conversión de tipos 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:
error 'ST' - identificador no declarado test3.mq4 69 13 y posible pérdida de datos debido a la conversión de tipos test3.mq4 85 15


has declarado un nombre de variable

double PriceHigh,PriceLow,SL,TP;

pero escribe otro

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

No hay errores con las variables, "gracias".

ahora advierte de la posible pérdida de datos debido a la conversión de tipo test3.mq4 87 15

y en el probador no se puede abrir el archivo 'C:\N-Un administrador\N-de datos\N-de la formación\N-de las cotizaciones\N-de los terminales\N- F8B0CF1E1FEED3B00D2D7E193237B799\NMQL4\Nde los indicadores\Nde la feria.ex4' [2].

Razón de la queja: