Senha EA

 

Colegas,

Estou tentando pôr uma senha para um EA funcionar. O trecho é o que segue abaixo colocado em Expert initialization function . Nos Input´s eu tenho uma linha assim: input long password = 0; // Senha

Em Global Variables eu tenho: datetime fromdate;    e    datetime init_date = 0; 


      fromdate = TimeCurrent();

      TimeToStruct(fromdate,ea_datetime);

      long psw = (ea_datetime.year + ea_datetime.mon + ea_datetime.day);

      if(psw != password)

      {

         Alert("Senha errada");

         return(INIT_PARAMETERS_INCORRECT);

      }

      else

      {

         Alert("Senha correta"); 

      }


Sempre dá SENHA ERRADA, a menos que eu troque o .day (dia). Se no lugar do .day e repetir .mon ou .year dá certo. Ou seja, não está reconhecendo o dia (.day). 


O que de mais simples eu preciso pôr para passar a funcionar com o .day conforme é a fórmula ?


Grato

 
sergiomt:

Colegas,

Estou tentando pôr uma senha para um EA funcionar. O trecho é o que segue abaixo colocado em Expert initialization function . Nos Input´s eu tenho uma linha assim: input long password = 0; // Senha

Em Global Variables eu tenho: datetime fromdate;    e    datetime init_date = 0; 


      fromdate = TimeCurrent();

      TimeToStruct(fromdate,ea_datetime);

      long psw = (ea_datetime.year + ea_datetime.mon + ea_datetime.day);

      if(psw != password)

      {

         Alert("Senha errada");

         return(INIT_PARAMETERS_INCORRECT);

      }

      else

      {

         Alert("Senha correta"); 

      }


Sempre dá SENHA ERRADA, a menos que eu troque o .day (dia). Se no lugar do .day e repetir .mon ou .year dá certo. Ou seja, não está reconhecendo o dia (.day). 


O que de mais simples eu preciso pôr para passar a funcionar com o .day conforme é a fórmula ?


Grato

Não dá pra responder sem saber o valor da variável 'password' (o que a pessoa digitou no input).

Sugiro imprimir o valor das variáveis 'psw' e 'password' logo antes do 'if' que compara as duas, que aí com certeza você entenderá o que está errado. 

 

Patinhas, 

O input fica em 0 aguardando digitação do valor correto, ou seja, da soma ano + mês + dia. Hoje a senha seria: 2019 + 8 + 4 = 2031

Terei que digitar 2031 para dar certo, mas digito e não dá certo, mostra sempre SENHA ERRADA e na aba diário mostra:  failed with code 32767 (incorrect parameters)

Agora se eu eliminar do código o ea_datetime.day aí dá sempre certo, somando só ano e mês


Será que tem a ver com o fato da data ser aaaa mm dd ?


 
A data no meu PC é padrão dd mm aaaa
 

Com certeza é algo errado com o ea_datetime.day

Não está reconhecendo o dia, se eu tiro ele dá sempre certo. Ao digitar a senha certa o EA inicializa perfeitamente. Tipo soma de ea_datetime.year com ea_datetime.mon hoje seria 2019 + 8 = 2027

De fato digito 2027 e dá certo

Agora se eu pôr o .day na fórmula, nunca dá certo


Por que será ?

 
sergiomt:

Colegas,

Estou tentando pôr uma senha para um EA funcionar. O trecho é o que segue abaixo colocado em Expert initialization function . Nos Input´s eu tenho uma linha assim: input long password = 0; // Senha

Em Global Variables eu tenho: datetime fromdate;    e    datetime init_date = 0; 


      fromdate = TimeCurrent();

      TimeToStruct(fromdate,ea_datetime);

      long psw = (ea_datetime.year + ea_datetime.mon + ea_datetime.day);

      if(psw != password)

      {

         Alert("Senha errada");

         return(INIT_PARAMETERS_INCORRECT);

      }

      else

      {

         Alert("Senha correta"); 

      }


Sempre dá SENHA ERRADA, a menos que eu troque o .day (dia). Se no lugar do .day e repetir .mon ou .year dá certo. Ou seja, não está reconhecendo o dia (.day). 


O que de mais simples eu preciso pôr para passar a funcionar com o .day conforme é a fórmula ?


Grato

O EA é seu?


Se ele tem senha, existem um motivo para isso...


Explique-se melhor.

 

Caro Flávio,

Por favor, eu venho me esforçando para entender a linguagem MQL5, mas não é simples para quem tem CPF começando com 01. Alguns outros foristas daqui me ajudam bastante (o Patinhas tem sido bacana demais). Sua pergunta se o EA é meu foi idiota, e piorou no final no "Explique-se melhor". De qualquer forma, sempre com a bandeira da Paz estendida, eu peço apenas que nunca mais poste nada em meus tópicos.

Com certeza será uma tarefa fácil e de certa forma até agradável.

 

O trecho do código que eu estou tentando entender:

long psw = (ea_datetime.year + ea_datetime.mon + ea_datetime.day);

if(psw == password)


soma ano + mês + dia, fosse hoje seria, 2019 + 08 + 04 = 2031

Então seria este o valor que eu deveria digitar lá nos Input´s em Input password quando eu quiser pôr esta EA num gráfico qualquer


Digito 2031 e dá errado e quem está causando o erro é somente o ea_datetime.day


Sem ele dá certo, com ele dá errado. Ou seja, por que o .day está atrapalhando ? Por que o código não reconhece o dia = day ?


Grato

 

Nuss, saca muito

Patinhas, muito obrigado, boa semana

Foi exatamente isso, coloquei como dia (day) a data de sexta-feira e deu certo


Muito grato

 

Desculpem, apaguei sem querer a minha última resposta ao SergioMT (este pato caduco aqui às vezes se enrola também).

Pra ficar registrada a solução do problema: é que o TimeCurrent() retorna a data da última mensagem recebida do servidor e, como hoje é domingo, estava retornando a data de sexta-feira.

 

Deu certo numa fórmula que eu havia modificado achando que resolveria, não naquela dos comentários anteriores

Mas o que importa foi a sua grande sacada, esperto

Não importa a fórmula (se é ano+mês+dia, ou qualquer outra composição com estas variáveis). O day teria que ser o de sexta-feira. Perfeito.


D+


Tópico resolvido !

Razão: