Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1187

 
Сергей Таболин:

Eu poderia estar errado, mas acho que você não tem nenhuma idéia de como a EA funciona. O que você quer dizer com "o programa está em execução"?

Uma dica - antes de mais nada, descubra o que são OnInit, OnTick e OnDeinit. Acho que tudo vai se encaixar ))))

Geralmente, a julgar por sua resposta, você mesmo não entende realmente como o programa funciona. Uma vez que parece uma pergunta tola. Sim, assim como o comentarista anterior pensa que pára. Apenas pela experiência de programação em outras linguagens, acho que ele executa seu corpo em loop, e quando chega um evento, ele mergulha nele. Se o programa executa seu corpo em loop, isso explica porque o programa é escrito dessa forma.
 

Bom dia a todos! Estou testando um Expert Advisor no MT4.
Você pode me dizer qual idioma, ou função no MQL4 deve ser usado para fazer a função Print() imprimir apenas 1 vez no MT4 Tester Log e apenas com o valor da última hora. Aqui está um código simples.

int g;
void OnTick()
{
if (Hour()>g)
{
Print("------------------------------------=",Hour());
g=Hour();
}
}

Print() é impresso no arquivo МТ-4 Log-File em cada hora.

2020.06.24 15:54:12.250 2010.01.04 06:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=6
2020.06.24 15:54:12.249 2010.01.04 05:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=5
2020.06.24 15:54:12.249 2010.01.04 04:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=4
2020.06.24 15:54:12.248 2010.01.04 03:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=3
2020.06.24 15:54:12.247 2010.01.04 02:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=2
2020.06.24 15:54:12.247 2010.01.04 01:00:00  ОПТИМ КОДА EURUSD,M1: ------------------------------------=1
2020.06.24 15:54:12.214 2010.01.01 00:00:00  ОПТИМ КОДА test started
2020.06.24 15:54:12.196 TestGenerator: spread set to 2
2020.06.24 15:54:09.838 Expert ОПТИМ КОДА EURUSD,M1: loaded successfully
2020.06.24 15:54:09.827 Expert ОПТИМ КОДА EURUSD,M1: removed

Mas eu preciso imprimir() no registrador MT-4 apenas uma vez com o último valor da hora. Seria lógico apagar a penúltima entrada, ou seja, a entrada anterior de impressão ( ) após a última aparecer na revista. Eu sei como apagar um pedido, um objeto gráfico. Mas ainda não sei como excluir a entrada Print() do Diário de Bordo.

Obrigado por sua ajuda.

Документация по MQL5: Общие функции / Print
Документация по MQL5: Общие функции / Print
  • www.mql5.com
Данные типа double выводятся с точностью до 16 десятичных цифр после точки, при этом данные могут выводиться либо в традиционном либо в научном формате – в зависимости от того, как запись будет наиболее компактна. Данные типа float выводятся с 5 десятичными цифрами после точки. Для вывода вещественных чисел с другой точностью либо в явно...
 
Valeriy Yastremskiy:
Não. O carrapato não é cortado pelo examinador. Se a EA estiver em funcionamento, os tiquetaques recebidos são pulados. Quando terminar, o próximo tique começará novamente em modo de espera.
Por sua lógica, parece que o programa nunca irá para a função de ajuste de lote. Mas é assim que o programa é escrito pela editora oficial. Escrevi a ordem das funções em cargos anteriores.
 
Vou perguntar novamente, estou com dúvidas em relação aos comentadores anteriores. O exemplo oficial sugere a contagem do volume do lote no corpo do programa, mas não é lógico calculá-lo em cada carrapato? Para que está escrito no corpo do programa?
 
Não posso instalar um EA. O que eu faço? O botão de instalação não clica. Para ser mais preciso, nada acontece quando eu o pressiono
 
Сергей Таболин:

Kalash ou Maxim? ))))))))))))


Pergunta:

Há um roteiro. Ela não pode ser lançada a partir da EA utilizando os meios padrão. Portanto, temos que adicioná-lo ao Expert Advisor como uma função. Mas não quero fazer as mesmas mudanças no Expert Advisor ao editar o roteiro. Como fazer isso? Por meio de inclusões?

Classes) e objetos
Ou por colagem)
 
Ivan_Invanov:
Por sua lógica, conclui-se que o software nunca irá para a função de ajuste de lote. Mas é assim que o programa é escrito pela editora oficial. Eu escrevi a ordem das funções em postos anteriores.
O trabalho de inicialização e deinicialização é feito uma vez. No início e no final.
 
Ivan_Invanov:
Geralmente, a julgar por sua resposta, você mesmo não entende realmente como o programa funciona. Portanto, parece que é uma pergunta tola. Assim como o comentarista anterior pensa que isso pára. Apenas pela experiência de programação em outras linguagens, acho que ele executa seu corpo em loop, e quando chega um evento, ele mergulha nele. Se o programa executa seu corpo em loop, isso explica porque o programa é escrito dessa forma.

A julgar por seu comentário, você também não entende isso. (((

Isto não é "outros idiomas", isto é MQL!

Conselhos para você também - descubra exatamente como este grupo funciona.

Todas as outras funções são derivadas.

Descubra-o.

 
Ivan_Invanov:
Sim, eu não entendo, então eu estou perguntando. Eu sei que o ontick é um evento, mas não entendo para onde a EA vai depois. Ela irá ao corpo do programa e calculará o volume do lote, ou não irá? Por que a EA da editora oficial foi escrita de tal forma?

E você acha que alguém aqui vai começar a reescrever a documentação para você pessoalmente? Só para você? Aqui dentro? Risque que você mesmo....

 
Ivan_Invanov:
Sim, eu não entendo, é isso que estou pedindo. Sei que o ontick é um evento, só não está claro para mim onde a EA então vai. Por que foi escrito desta maneira pela editora?

Você mostraria o código (mas você tem que entender que se você mostrar o código então os direitos autorais estão à vista) e os caras olharão o esquema da EA e dirão o que é chamado e o que não é aberto um acordo ou não.

Razão: