Ayuda a un novato - Funciones de día y hora - página 2

 

¿Por qué recibo todos estos errores cuando compilo el código?

Compilando 'GAPeaOnlySunday.mq4'...
'bool' - punto y coma esperado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 3)
'(' - inicialización esperada Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 22)
'TimeDayofWeek' - se esperaba coma o punto y coma Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 23)
Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 54)
')' - paréntesis derecho desequilibrado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 70)
'(' - inicialización esperada Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 22)
'TimeDayofWeek' - se esperaba coma o punto y coma Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 23)
Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 50)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (87, 54)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (87, 65)
')' - paréntesis derecho desequilibrado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 70)
'sunday_cond' - expresión en ámbito global no permitida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'sunday_cond' - variable no definida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'monday_cond' - expresión en ámbito global no permitida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
'monday_cond' - variable no definida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (88, 34)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (89, 20)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (89, 24)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (92, 35)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (92, 43)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (94, 38)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (94, 42)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (94, 57)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (96, 39)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (96, 45)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (98, 20)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (98, 29)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (100, 32)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (100, 53)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (102, 30)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (102, 55)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (104, 40)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (104, 57)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (104, 99)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (104, 107)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (108, 20)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (108, 30)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (110, 28)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (110, 55)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (112, 30)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (112, 57)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (114, 40)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (114, 57)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (114, 99)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (114, 107)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (122, 43)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 27)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 36)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 46)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 69)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 81)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (123, 94)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (124, 66)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (125, 49)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (126, 31)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (127, 44)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (128, 58)
Z:\ForexTrading\GabEA_From MikeGAPeaOnlySunday.mq4 (134, 44)
')' - paréntesis derecho desequilibrado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (136, 12)
57 error(es), 2 advertencia(s)

 

LOL -porque tu código tiene errores.

depúralo.

comienza a buscar un punto y coma faltante, como se informa, que un paréntesis faltante.

codificar no es solo escribir algunas palabras en un editor, el trabajo principal es depurar el código propio.

 

¿O podrías cortar por lo sano y ponerte en contacto con el Libro Guinness de los Récords?


CB

 

No hay errores en el código de mi EA, sólo lo probé para estar seguro. Todos estos errores vinieron después de insertar estas cuatro líneas de código:


bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hour()<=15);
if(sunday_cond | monday_cond )
if(OrdersTotal()==0)

 
EagleEye:

No hay errores en el código de mi EA, sólo lo probé para estar seguro. Todos estos errores vinieron después de insertar estas cuatro líneas de código:


if(OrdersTotal()==0) //no debería seguir esto -> {

si eso es todo lo que has insertado, simplemente no has codificado lo que hay que hacer cuando el if es verdadero

¿cómo puede decir que "su" (no es Mikes EA?) ea es libre de errores después de cambiar el código? estás bromeando?

 

En lugar de "TimeDayofWeek" es "TimeDayOfWeek". El código correcto es:

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
if(OrdersTotal()==0)
if(sunday_cond | monday_cond )
go_trading();

He verificado esta parte, por lo que el error de "paréntesis derecho desequilibrado" es otro problema del código restante.

 
abstract_mind:

En lugar de "TimeDayofWeek" es "TimeDayOfWeek". El código correcto es:

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);
if(OrdersTotal()==0)
if(sunday_cond | monday_cond )
go_trading();

He verificado esta parte, por lo que el error de "paréntesis derecho desequilibrado" es otro problema del código restante.

if(OrdersTotal()==0)
if( sunday_cond || monday_cond )
go_trading();

esto de arriba es, al menos, código de mal estilo. no es de extrañar que errores como la falta de parenthis sean habituales

if(
    (OrdersTotal()==0)
    &&
    (sunday_cond || monday_cond )
  ) 
   {
    go_trading();
   }

De esta manera queda claro que los paréntesis son correctos, y este tipo de código funciona en casi todos los lenguajes.

{ } son esenciales para el código que debe ser fácil de depurar.

a veces necesarios si el código no es de una sola línea.

 
meikel:

si eso es todo lo que has insertado, simplemente no has codificado lo que hay que hacer cuando el if es verdadero

¿Cómo puedes decir que "tu" (¿no es el EA de Mikes?) ea está libre de errores después de cambiar el código? ¿estás bromeando?

No, no estoy bromeando. Y si realmente quieres saber Mike, mi amigo, me lo ha enviado hace mucho tiempo porque quiere que lo pruebe.


Cuando compilo el EA sin las 4 líneas de código no hay ningún error.

Cuando inserto las 4 líneas de código de aquí hace todos los errores.

 
EagleEye:

No, no estoy bromeando. Y si realmente quieres saber Mike, mi amigo, me lo ha enviado hace mucho tiempo porque quiere que lo pruebe.


Cuando compilo el EA sin las 4 líneas de código no hay ningún error.

Cuando inserto las 4 líneas de código de aquí da todos los errores.

sigue la pista de abstracts_mind.

has escrito de, no De

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

todo después del signo igual es incorrecto por eso el compilador espera un punto y coma después de sunday_cond.

 
meikel:

sigue la pista de abstracts_mind.

has escrito de, no de

bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);

todo después del signo igual es incorrecto debido a esto, por lo que el compilador espera un punto y coma después de sunday_cond.


Entonces, ¿cómo debería ser el código?


Ahora mismo se ve así:

//+------------------------------------------------------------------+
//| función experta de inicio |
//+------------------------------------------------------------------+
int start()

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool monday_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hour()<=15);

if(
(OrdersTotal()==0)
&&
(sunday_cond || monday_cond )
)

{
if (Bars<100 || IsTradeAllowed()==false) return;

if(CalculateCurrentOrders(Symbol())==0) CheckForOpen();

Razón de la queja: