Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 472

 
Pr0t0tip:

Hola, tengo el siguiente problema. El registro da un OrderModify de 130 cuando se prueba, ayúdame a encontrar una salida. Aquí está el código del EA:


SL = NormalizeDouble(Bid+StopLoss*Point, Digits);

SL = NormalizeDouble(Bid-TakeProfit*Point, Digits);     Здесь поменяй   SL  на   TP
SL = NormalizeDouble(Ask-StopLoss*Point, Digits);

SL = NormalizeDouble(Ask+TakeProfit*Point, Digits);     И здесь
 

'}' - no todas las vías de control devuelven un valor

destaca dicho error en la función..... aunque devuelve un valor y funciona bien en otro indicador sin este error


 
Zver4991:

'}' - no todas las vías de control devuelven un valor

destaca dicho error en la función..... aunque devuelve un valor y funciona bien en otro indicador sin este error



Abre en un nuevo editor, resalta el primer corchete y marca el último, verás todo de una vez.
 

¿Puede decirme si es posible organizar una ejecución paso a paso del programa en modo de depuración? Y añadir más variables para el seguimiento

 
Zver4991:

'}' - no todas las vías de control devuelven un valor

la función..... aunque devuelve un valor y funciona bien en otro indicador sin este error


Este es un mensaje que le indica que hay opciones de bifurcación en la función, cuando puede no devolver nada. Por ejemplo:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
}
//+----------------------------------------------------------------------------+

El valor de la variable a parece estar limitado en el rango de 0 a 2, pero el compilador sigue considerándolo un error.

Poner return() con el valor de retorno por defecto de la función antes del paréntesis de cierre del cuerpo de la función y todo estará bien:

//+----------------------------------------------------------------------------+
int TestFunc(int a) {
   if(a>2 || a<0) a=2;
   if(a==0) return(1);
   else if(a==1) return(2);
   else if(a==2) return(3);
   return(-1);
}
//+----------------------------------------------------------------------------+
 
artmedia70:

Esto le indica que hay opciones de bifurcación en la función cuando ésta puede no devolver nada. Por ejemplo:

El valor de la variable a parece estar limitado en el rango de 0 a 2, pero el compilador sigue considerándolo un error.

Poner return() antes del paréntesis de cierre del cuerpo de la función con el valor de retorno por defecto de la función y todo será grano de arena:


¿Qué pasa si a no es un tipo int?

tipo de función - valor de retorno al final de la función

int  - return(-1);

void - return;

bool - return(false);

string - return(""); 
 
artmedia70:

Esto le indica que hay opciones de bifurcación en la función cuando ésta puede no devolver nada. Por ejemplo:

El valor de la variable a parece estar limitado a un rango de 0 a 2, pero el compilador sigue considerándolo un error.

Poner return() antes del paréntesis de cierre del cuerpo de la función con el valor de retorno por defecto de la función y todo será grano de arena:


muchas gracias..... me ha salvado los nervios
 
Vladon:


¿Qué pasa si el tipo de una persona no es int?

el tipo de función es el resultado devuelto al final de la función


¿De qué se trata? Sólo he puesto un ejemplo, lo primero que se me ha ocurrido. Podrías haber escrito una función que devolviera cualquier otro tipo de datos (excepto void)... Eso no cambia la cuestión.
 
artmedia70:
¿De qué se trata? Sólo he puesto un ejemplo, lo primero que se me ha ocurrido. Podrías haber escrito una función que devolviera cualquier otro tipo de datos (excepto void)... Eso no cambia la cuestión.


Sólo estaba aclarando el tipo de datos. Esta es una rama de preguntas de los novatos, por lo que esperan el mismo retorno en cualquier función
 

¡Ayuda con los bichos!

Decidí hacer un EA para mí en base a un ejemplo del manual de mql4. Llevo una semana trasteando con él, pero siempre me da algún tipo de error.

Por favor, compruebe qué puede estar mal, tal vez haya que cambiar o eliminar algo además de los paréntesis.

Errores:

'}' - final inesperado del programa expert.mq4 218 3

'{' - paréntesis desequilibrados expert.mq4 23 2

Archivos adjuntos:
expert_1.mq4  9 kb