Ajude um novato - Funções de dia e hora - página 2

 

Por que eu recebo todos esses erros quando compilo o código?

Compilando 'GAPeaOnlySunday.mq4'...
bool - ponto-e-vírgula esperado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 3)
(' - inicialização esperada Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 22)
TimeDayofWeek - vírgula ou ponto-e-vírgula esperado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (86, 23)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (86, 54)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (86, 70)
(' - inicialização esperada Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 22)
TimeDayofWeek - vírgula ou ponto-e-vírgula esperado Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (87, 23)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (87, 50)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (87, 54)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (87, 65)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (87, 70)
sunday_cond' - expressão em âmbito global não permitida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
sunday_cond' - variável não definida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 6)
'monday_cond' - expressão em âmbito global não permitida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
'monday_cond' - variável não definida Z:\ForexTrading\GabEA_From Mike\GAPeaOnlySunday.mq4 (88, 22)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (88, 34)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (89, 20)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (89, 24)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (92, 35)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (92, 43)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (94, 38)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (94, 42)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (94, 57)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (96, 39)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (96, 45)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (98, 20)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (98, 29)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (100, 32)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (100, 53)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (102, 30)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (102, 55)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (104, 40)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (104, 57)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (104, 99)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (104, 107)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (108, 20)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (108, 30)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (110, 28)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (110, 55)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (112, 30)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (112, 57)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (114, 40)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (114, 57)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (114, 99)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (114, 107)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (122, 43)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 27)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 36)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 46)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 69)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 81)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (123, 94)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (124, 66)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (125, 49)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (126, 31)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (127, 44)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (128, 58)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (134, 44)
Z:\GabEA_From Mike GAPeaOnlySunday.mq4 (136, 12)
57 erro(s), 2 advertência(ões)

 

LOL - porque seu código é um buggy.

depura-o.

comece a procurar por um ponto-e-vírgula ausente, como relatado, do que um parêntese ausente.

codificar não é apenas escrever algumas palavras em um editor, o trabalho principal é depurar o código que se possui.

 

Ou você poderia cortar suas perdas e entrar em contato com o Guinness Book Of Records?


CB

 

Não há erros em meu código EA, apenas o testei para ter certeza. Todos estes erros vieram depois que eu inseri estas quatro linhas de código:


bool sunday_cond = (TimeDayofWeek(TimeCurrent())==0) && (Hour()>=23);
bool segunda-feira_cond = (TimeDayofWeek(TimeCurrent())==1) && (Hora()<=15);
if(sunday_cond || segunda-feira_cond )
if(OrdensTotal()==0)

 
EagleEye:

Não há erros em meu código EA, apenas o testei para ter certeza. Todos estes erros vieram depois que eu inseri estas quatro linhas de código:


if(OrdensTotal()==0) // não deve seguir aqui -> {

se isso é tudo o que você inseriu, você simplesmente não codificou o que tem que ser feito quando se é verdade

como você pode dizer que "seu" (não é Mikes EA?) ea está livre de erros depois que você mudou o código ? você está brincando ?

 

Em vez de "TimeDayofWeek" é "TimeDayOfWeek". O código correto é:

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

Eu verifiquei esta parte, então o erro de "parênteses retos desequilibrados" é outra questão de código restante.

 
abstract_mind:

Em vez de "TimeDayofWeek" é "TimeDayOfWeek". O código correto é:

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hour()>=23);
bool segunda-feira_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hora()<=15);
if(OrderTotal()==0)
if(sunday_cond || segunda-feira_cond )
go_trading();

Eu verifiquei esta parte, portanto o erro "parênteses retos desequilibrados" é outra questão de código restante.

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

isto acima é pelo menos um código de estilo ruim. não é de se admirar que erros como a falta de parentesco sejam comuns

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

Desta forma, é claro que os parênteses estão corretos, e este tipo de código funciona em quase todas as línguas.

{ } são essenciais para um código que deve ser fácil de debugar.

às vezes necessário se o código não estiver apenas em uma linha.

 
meikel:

se isso é tudo o que você inseriu, você simplesmente não codificou o que tem que ser feito quando se é verdade

como você pode dizer que "seu" (não é Mikes EA?) ea está livre de erros depois que você mudou o código ? você está brincando ?

Não, eu não estou brincando. E se você realmente quer conhecer Mike, meu amigo, enviou-mo há muito tempo, porque ele quer que eu o experimente.


Quando eu compilo a EA sem as 4 linhas de código, não há erro algum.

Quando inseri as 4 linhas de código a partir daqui, comete todos os erros.

 
EagleEye:

Não, eu não estou brincando. E se você realmente quer conhecer Mike, meu amigo, enviou-mo há muito tempo, porque ele quer que eu o experimente.


Quando eu compilo o EA sem as 4 linhas de código, não há erro algum.

Quando inseri as 4 linhas de código a partir daqui, comete todos os erros.

siga a dica do abstracts_mind.

você escreveu de, não de

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

tudo após o sinal de igualdade está errado por causa disso, portanto o compilador espera um ponto-e-vírgula após o domingo_de_cond.

 
meikel:

siga a dica do abstracts_mind.

você escreveu de, não de

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

tudo após o sinal de igualdade está errado por causa disso, portanto o compilador espera um ponto-e-vírgula após o sunday_cond.


Então, como deve ser o código?


Neste momento, ele se parece com isto:

//+
+
//| expert start function | //+ +
int start()

bool sunday_cond = (TimeDayOfWeek(TimeCurrent())==0) && (Hora()>=23);
bool segunda_cond = (TimeDayOfWeek(TimeCurrent())==1) && (Hora()<=15);

if(
(OrderTotal()==0)
&&
(sunday_cond || segunda_cond )
)

{
if (Bars<100 || IsTradeAllowed()==falso) retorno;

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