Erros, bugs, perguntas - página 2484
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Caros programadores, encontrei um problema. Precisa da vossa atenção.
A questão é que TesterStop() eExpertRemove() não interrompem o teste imediatamente. Aqui está uma ilustração do erro. Desculpe por alguma intemperança nesse posto.
Pensei que seria mais correcto introduzir a constante MQL_TESTER_STOP - um sinal de término de testes por TesterStop() ou ExpertRemove().
Neste caso, seríamos capazes de seleccionar outras acções:
Uma paragem imediata do Expert Advisor significa uma perda de memória. A paragem imediata do Expert Advisor pode deixar blocos de memória não libertados. Por conseguinte, a paragem imediata do Expert Advisor só é utilizada no final do terminal do cliente ou do agente testador e só se o Expert Advisor não processar a bandeira de paragem e continuar a execução.
TesterStop dá o comando para terminar os testes. Isto significa que após o actual manipulador OnInit, OnTick, OnTimer, OnChartEvent estar terminado, não serão tratados mais eventos do testador, uma vez que o ciclo de processamento está terminado. E OnTester e OnDeinit serão chamados
Interromper imediatamente a EA significa corrupção da memória. A paragem imediata do Expert Advisor pode deixar blocos de memória não libertados. Por conseguinte, a paragem imediata do Expert Advisor só é utilizada no final do terminal do cliente ou do agente testador e só se o Expert Advisor não processar a bandeira de paragem e continuar a execução.
TesterStop dá o comando para terminar os testes. Isto significa que após o actual manipulador OnInit, OnTick, OnTimer, OnChartEvent estar terminado, não serão tratados mais eventos do testador, uma vez que o ciclo de processamento está terminado. E OnTester e OnDeinit serão chamados.
Obrigado, já tinha percebido isso. Mas não resolve o problema. Pode ser resolvido ou pela constanteMQL_TESTER_STOP ou pelaalteração do retorno do vazio para o bool.
Uma solução inesperada foi sugerida porAlexey Viktorov. Se o retorno for utilizado após o TesterStop(), tudo parece estar normalizado. Como e porquê acontece, pessoalmente, não consigo perceber. No entanto...
Por conseguinte, ou se acrescenta este ponto à documentação ou se muda ovazio para bool.
P.S. Eu encontrei este problema na construção 2085. Antes disso, não havia qualquer problema. Diz-me alguma coisa? )))
Olá,
Porque é que no testador por vezes os indicadores utilizados não são desenhados?
Reinicio o terminal - eles começam a exibir...
Depois voltam a parar - embora o código não tenha mudado...
Gostaria também de fazer uma segunda pergunta:
porque é que os objectos gráficos não são actualizados no testador apesar de um ChartRedraw(0) forçado; ?
De facto, o testador actualiza-os depois, mas com enormes atrasos e imbecis.
Obrigado.
EDIT: desculpe, falso alarme, este problema está resolvido (o problema estava no meu código de falhas)
Mas a questão sobre os indicadores ainda se mantém.
@Slava disse-me, na construção de 2007 TesterStop() passou o controlo apenas em OnDeinit ? Não houve passagem de controlo para a OnTester?
É por isso que o meu código funcionou bem e o resultado do teste, nesse caso, foi 0.
@Slava disse-me, na construção de 2007 TesterStop() passou o controlo apenas em OnDeinit ? Não houve passagem de controlo para a OnTester?
É por isso que o meu código funcionou bem e o resultado do teste em tal caso foi 0.
Crie a sua bandeira global, coloque-a antes de chamar o TesterStop, e analise-a no OnTester.
Comece a sua bandeira global, levante-a antes de chamar o TesterStop, e analise-a no OnTester.
Já o tenho )))) Acabou por não ser assim tão simples. Em princípio, o problema está resolvido, só quero ouvir a confirmação de que o TesterStop funcionava antes de forma algo diferente.
Se não houver qualquer ligação na descrição, o efeito não aparece.
Pode ter um sistema operativo 32x. Ou pode estar a ficar sem RAM.