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 ?
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á ?
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 !
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
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