Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 509

 
Aleksey Stukalov:
¿Qué tiene de malo un trailing stop? Ya está integrado en el terminal.
Pruébalo y lo entenderás
 

La gente amable ayuda con la compilación de EA muy por favor, no soy bueno en la programación.

Este es el error que obtengo al compilar 'delete' - nombre esperado

El error en el código está resaltado en rojo

void delete(int type){

if(OrdersTotal()>0){

for(i=TotalPedidos()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

if(type!=6 && type!=7 && type!=8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==type)OrderDelete(OrderTicket();

if(type==6)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_SELLSTOP || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

if(type==7)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_BUYSTOP || OrderType()==OP_BUYLIMIT)OrderDelete(OrderTicket());

if(type==8)if(OrderSymbol()==Symbol() && OrderMagicNumber()==magic && OrderType()==OP_SELLSTOP || OrderType()==OP_SELLLIMIT)OrderDelete(OrderTicket());

}

}

}


Aquí hay otro error '(' - se esperaba un puntero de objeto

if(oppositedelete){delete(OP_SELLSTOP);delete(OP_SELLLIMIT);}

Y aquí "} - no todas las vías de control devuelven un valor

int countglobal(){

int cnt=0;

if(OrdersTotal()>0){

for(i=TotalPedidos()-1;i>=0;i--){

OrderSelect(i,SELECT_BY_POS,MODE_TRADES);

cnt++;

}

return(cnt);

}

}

 
Anton Razmyslov:

La gente amable ayuda con la compilación de EA muy por favor, no soy bueno en la programación.

Este es el error que obtengo al compilar 'delete' - nombre esperado

El error en el código está resaltado en rojo

void delete(int type){.

..............

Dice que no se puede llamar de esa manera. Debes llamar a la función con otro nombre.

y este "no todas las rutas de control devuelven un valor" sobre la función que no tiene ruta de retorno y no devuelve ningún valor, escriba return(0); antes del último "}" de la función

 
Спасибо большое!
 
Tema97:
Buenas tardes a todos) Compartir el código para un stop loss móvil - para conducir el precio )))) Gracias de antemano
//---------------------------------
void Trailing3(int Mag,string Symb,int Dist,int Shag,bool Isp_shag,bool Isp_bezubitok)
  {
   double dist=0,shag;
   if(Digits==3 || Digits==5)
      dist=Dist*10*Point; shag=Shag*10*Point;
   if(Digits==2 || Digits==4)
      dist=Dist*Point; shag=Shag*Point;

   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      int res=OrderSelect(pos,SELECT_BY_POS,MODE_TRADES);
      if(OrderMagicNumber()==Mag && OrderSymbol()==Symb)
        {
         if(OrderType()==OP_BUY)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(Bid-OrderOpenPrice(),Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)<NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(Bid-OrderStopLoss(),Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Bid-dist,OrderTakeProfit(),0,clrTeal);
           }
         else  if(OrderType()==OP_SELL)
           {
            if(!Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && !Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(!Isp_shag && Isp_bezubitok && NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && 
               NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
            if(Isp_shag && Isp_bezubitok && NormalizeDouble(OrderOpenPrice()-Ask,Digits)>=NormalizeDouble(shag,Digits) && 
               NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble(OrderOpenPrice(),Digits) && NormalizeDouble(OrderStopLoss()-Ask,Digits)>NormalizeDouble(dist,Digits))
               OrderModifyX3(OrderTicket(),0,Ask+dist,OrderTakeProfit(),0,clrCrimson);
           }
        }
     }

  }
//-----------------------------------------------
 
Hola a todos. Descargado MT4, el probador de estrategias sólo funciona desde diciembre de 2015, ¿quién sabe cómo chulear el terminal?
 
olleg.1:
Hola a todos. Descargado MT4, el probador de estrategias sólo funciona desde diciembre de 2015, ¿quién sabe cómo parchear el terminal?
Descargue las cotizaciones del instrumento requerido. Servicio - Archivo de cotizaciones.
 
Gracias.
 

Hola a todos.

Podríais decirme cómo implementar en el EA la posibilidad de comprobar si la variable de entrada está en el rango o no, de una forma más sencilla y correcta. Por ejemplo:

a) Más de 10, pero menos de 20

b) Más de 20 o menos de 10

c) etc.

ZS: hasta ahora tenemos 3 valores para comprobar cada variable: caso para el interruptor (mayor que/menor que/mayor que, pero menor que/menor que) y 2 valores. Supongo que podrías hacer un bucle con esta construcción y pasar por todas las variables... ¿Es esta la dirección correcta?

 
Антон:

Hola a todos.

Podríais decirme cómo implementar en el EA la posibilidad de comprobar si la variable de entrada está en el rango o no, de una forma más sencilla y correcta. Por ejemplo:

a) Más de 10, pero menos de 20

b) Más de 20 o menos de 10

c) etc.

ZS: hasta ahora tenemos 3 valores para comprobar cada variable: caso para el interruptor (mayor que/menor que/mayor que, pero menor que/menor que) y 2 valores. Supongo que podrías hacer un bucle con esta construcción y pasar por todas las variables... ¿Es esta la dirección correcta?

¿Qué variables se pueden incluir en el bucle? Dame el código o escríbelo más claramente