Erros, bugs, perguntas - página 383

 

O meu Expert Advisor a dada altura começa a comportar-se mal, uma mensagem aparece no registo quando é removida do gráfico:

Término anormal

Afunção OnDeinit está vazia. O que significa esta mensagem?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
molotkovsm:

O meu Expert Advisor a dada altura começa a comportar-se mal, uma mensagem aparece no registo quando é removida do gráfico:

Término anormal

Afunção OnDeinit está vazia. O que significa esta mensagem?

Que está em loop ... ou algo semelhante...
 
AlexSTAL:
Que ele está fixado... ou algo do género...
O que mais poderia ser? É só que cada carrapato da citação é exibido, com os tempos de execução das secções de código com loops, tudo parece estar bem.
 
molotkovsm:
O que mais, coisas semelhantes podem acontecer? É só que cada tick de uma citação é exibido, com o tempo de execução das secções de código com loops, tudo parece estar bem.
Tive uma rescisão anormal quando lancei uma tarefa que exigia grandes cálculos e reiniciei o terminal sem o saber. Quando deixei o terminal "sozinho" para trabalhar durante cerca de 15-20 minutos, os resultados necessários apareceram.
 

Build 439, 441, Win XP 32-bit OS. Desliga os agentes com a mensagem "Agente demasiado lento...". A última construção que funcionou bem, na minha opinião, foi 425.

O agente é demasiado lento...

 
Yedelkin:
Tive uma rescisão anormal quando lancei uma tarefa que exigia grandes cálculos e reiniciei o terminal sem o saber. Quando deixei o terminal "sozinho" para trabalhar durante cerca de 15-20 minutos, os resultados necessários apareceram.

Em loops grandes, adicionar IsStopped() como condição de saída.

 
MONTEGRO:

Build 439, 441, Win XP 32-bit OS. Desliga os agentes com a mensagem "Agente demasiado lento...". A última construção que funcionou bem, na minha opinião, foi 425.

Tem apenas agentes locais?

Isto será rectificado em breve

 
stringo:

Tem apenas agentes locais?

Não, acontece também com os mais remotos.

stringo:

Esta situação será resolvida num futuro próximo

Não seria óptimo se libertasse um parâmetro configurável pelo utilizador sobre o tempo médio que um agente é considerado como retardado?

 
MONTEGRO:

Não, acontece também com os mais remotos.

Seria óptimo, talvez um parâmetro configurável pelo utilizador sobre o tempo médio em que um agente é considerado lento?

Com local e remoto, essa é a ideia. Se forem apenas agentes locais, então a verificação da lentidão será desactivada.

Não vamos introduzir um parâmetro personalizado. Iremos melhorar o algoritmo de detecção de agentes lentos.

Na verdade, se a mensagem "agente lento falhou" aparecer, significa que o agente lento demasiado lento tinha duplicado o trabalho que estava a executar, e deu-o a outro agente. E este outro agente completou a tarefa duplicada antes do "agente lento" (tendo em conta que as tarefas não foram distribuídas em paralelo, mas com um atraso significativo). Assim, o agente "lento" é realmente demasiado lento, e foi posto fora do caminho durante algum tempo

 
stringo:

Em loops grandes, adicione IsStopped() como condição adicional de saída

Exactamente! Utiliza frequentemente esta função na sua biblioteca padrão - agora estou a começar a compreender o seu valor prático. Obrigado.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5