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
Não, eu não uso sono() ou messagebox(), mas faço muito trabalho na função MyInit(), que leva cerca de 5 segundos.
Você pode ver isso no arquivo de log:
2013.11.15 14:35:32 Teste reduzido 1180990: USDJPY M15 DebugStart: InitialHistoryGapCapClosed
2013.11.15 14:35:32 Teste reduzido 1180990: USDJPY M15 DebugMyInit começa: <---------- começa o trabalho
2013.11.15 14:35:32 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 1 nach CreateHistory()
2013.11.15 14:35:33 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 2 nach CreateHistory()
2013.11.15 14:35:34 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 3 nach CreateHistory()
2013.11.15 14:35:35 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 4 nach CreateHistory()
2013.11.15 14:35:35 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 5 nach CreateHistory()
2013.11.15 14:35:36 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 6 nach CreateHistory()
2013.11.15 14:35:37 Teste reduzido 1180990: USDJPY M15 DebugMyInit InitialMyInitCalls: 0 IndexCount: 7 nach CreateHistory()
2013.11.15 14:35:37 Teste reduzido 1180990: USDJPY M15 DebugMyInit Retornar InicialMyInitCalls: 0 IndexCount: 8 <---------- termina o trabalho
2013.11.15 14:35:37 Teste reduzido 1180990: USDJPY M15 DebugStart: último retorno em InitialGapFound
Mas por que isso faria com que o MT4 entrasse em loop depois disso?
Todos vocês falam de loops infinitos, mas ninguém está curioso sobre o que a CreateHistory() faz. De acordo com a saída do log, ele aparece apenas na última execução().
Presumi que fosse algum tipo de função de salvar a história . . . se o OP quiser mostrá-la, ele o fará . . . Presumo que ele não o faça e mesmo que o faça, provavelmente não vai nos ajudar a ajudá-lo. A maneira mais rápida é ele postar seu código para que alguém possa olhar para ele com um novo par de olhos... . .
mt4forum 2013.11.16 11:14
Mas por que isso faria com que o MT4 entrasse em loop depois disso?
A julgar pelo seu arquivo de registro, parece que já estava em loop. O que acontece depois que ele chega a 8 ? ele estava em loop, se ele estava em loop, como você sabe que ele saiu desse loop ? Ele retornou ao init() ?
Você adicionou Print("Start Started"); e ele nunca apareceu no arquivo de log, então ele nunca entrou na função start(). Isso sugere que ele nunca saiu da função init(). Coloque mais declarações Print() e reduza-a.
Antes de mais nada, obrigado pelo grande interesse, e desculpem pela minha resposta tardia.
Abordarei os diferentes comentários nas seguintes entradas.
Não, mas você estraga a rosca de interface e o MT4 trava... você não pode fazer o que está fazendo em um EA?
Eu executei o programa como EA. Ou ele também pendura ou trava o MT4.
Eu executei o programa como EA. Ou ele também pendura ou trava o MT4.
Todos vocês falam de loops infinitos, mas ninguém está curioso sobre o que o CreateHistory() faz. De acordo com a saída do log, ele aparece apenas na última inicialização() executada.
CreateHistory() faz muito trabalho. Ele percorre os pares de moedas e prazos e gera gráficos off-line.
Mas o arquivo de registro mostra que ele termina corretamente.
A julgar pelo seu arquivo de registro, parece que já estava em um loop. O que acontece depois de chegar a 8 ? estava em loop, se fosse como você sabe que saiu desse loop ? Ele voltou ao init() ?
Você adicionou Print("Start Started"); e ele nunca apareceu no arquivo de log, então ele nunca entrou na função start(). Isso sugere que ele nunca saiu da função init(). Coloque mais declarações Print() e reduza-a.
Após chegar a 8, ele retorna corretamente à função init().
A seguinte linha no arquivo de log mostra que "DebugMyInit return ..." é a última linha de debug em MyInit().
2013.11.15 12:33:22 Teste reduzido 395052: USDJPY M15 DebugMyInit return InitialMyInitCalls: 0 IndexCount: 8
Eu uso minha própria função de impressão para gerar o arquivo de log. A impressão ("Start Started") não imprime para esse arquivo de log.
A entrada
2013.11.15 12:33:22 Teste reduzido 395052: USDJPY M15 DebugStart: último retorno em InitialGapFound
mostra, que ele saiu da função init().
Se eu posso confiar, que minha função de depuração registra todas as informações corretamente, então o arquivo de registro nos diz, que após a última execução do init(),
start() é abandonado e não é chamado novamente. Esse é o problema.