Erro número 6 - página 28

 
Isto é o que eu recebi ontem. Construir 183 beta de 7/10. Após o reinício manual, tudo está bem.

18:29:55 Contexto comercial: iniciar conexão
18:29:55 'Alpari-Demo': iniciar conexão
18:29:56 '67794' - erro de login (6, 10054)
18:29:56 '67794': não é possível fazer o login [Sem conexão].
18:30:35 'TradeContext': iniciar conexão
18:30:35 'Alpari-Demo': iniciar conexão
18:30:35 '67794' - erro de login (6, 10054)
18:30:35 '67794': não é possível fazer o login [Sem conexão].
18:31:03 'TradeContext': iniciar conexão
18:31:03 'Alpari-Demo': iniciar conexão
18:31:03 '67794' - erro de login (6, 10054)
18:31:03 '67794': não é possível fazer o login [Sem conexão].
18:31:10 'TradeContext': iniciar conexão
18:31:10 'Alpari-Demo': iniciar conexão
18:31:10 '67794' - erro de login (6, 10054)
18:31:10 '67794': não é possível fazer o login [Sem conexão].
18:31:11 'TradeContext': iniciar conexão
18:31:11 'Alpari-Demo': iniciar conexão
18:31:11 '67794' - erro de login (6, 10054)
18:31:11 '67794': não é possível fazer o login [Sem conexão].
18:31:20 'TradeContext': iniciar conexão
18:31:20 'Alpari-Demo': iniciar conexão
18:31:20 '67794' - erro de login (6, 10054)
18:31:20 '67794': não é possível fazer o login [Sem conexão].
18:31:27 'TradeContext': iniciar conexão
18:31:27 'Alpari-Demo': iniciar conexão
18:31:27 '67794' - erro de login (6, 10054)
18:31:27 '67794': não é possível fazer o login [Sem conexão].
 
xxx
 
Os resultados do teste de especialista proposto por Slava "pegue deste fio e o execute".
"Eu o executei em dois computadores com versões diferentes do MT4 das 18:00 às 24:00 do dia 11.10.2005.
Primeiro computador: Versão Extended Logging datada de 05.10.2005: 114 erros 146 e 1 erro 138.
Segundo computador: versão oficial de 07.10.2005: 278 erros número 146

Explique, Slava...
 
Primeira comp: versão com registro estendido a partir de 05.10.2005: 114 ошибок номер 146 и 1 номер 138
Segunda comp: versão oficial a partir de 07.10.2005: 278 erros número 146

Explicar, Slava...

Deixe-me explicar. para excluir o erro 146 (contexto comercial está ocupado), você precisa fazer uma pausa antes de lançar o semáforo. em vez de
if(!IsTesting()) GlobalVariableSet(strTradeSemaphore, 0.0)
;


escreva

	if(!IsTesting()) { Sleep(1000); GlobalVariableSet(strTradeSemaphore, 0.0); }


o tamanho do atraso deve ser ajustado "organolepticamente". pode ser diferente para computadores diferentes

 
<br / translate="no"> o tamanho do atraso deve ser ajustado "organolepticamente". pode ser diferente para computadores diferentes
Legal!
"Algo no meu motor começou a bater
Vamos ouvi-lo
E há um cheiro de gasolina vindo da cabine.
Vamos cheirá-lo".
 
Sleep(1000); - o erro não desapareceu
Sleep(10000); - o erro não desapareceu
Como você o faz "organolepticamente"?
 
Sleep(1000); - o erro não desapareceu<br / translate="no"> Sleep(10000); - o erro não desapareceu
Qual é a forma "organoléptica" de fazer isso?

por favor, encontre o valor quando o erro desaparecer. informe este valor e envie os logs do Expert Advisor do valor anterior (ainda errado) para stringoATmetaquotesDOTru
 
Depois de algum pensamento, descobriu-se que existe um método exato. Vou tentar formulá-lo
while(!IsStopped() && !IsTradeAllowed()) Sleep(1000); GlobalVariableSet(strTradeSemaphore, 0.0);


ou seja, estamos esperando que nosso próprio contexto comercial seja liberado

e esta situação é extremamente estranha. após uma operação comercial ser executada, o contexto é liberado instantaneamente. caso contrário, seria impossível fechar posições no loop

 
Sleep(1000); - o erro não desapareceu<br/ translate="no"> Sleep(10000); - o erro não desapareceu
O que é fazê-lo "organolepticamente"?

outra pergunta. você não tem outros Consultores Especialistas que negociam? eles podem não saber nada sobre nosso semáforo comercial. então o erro 146 é muito bem explicável
 
logs enviados.
Onde devo colocar este código?
while(!IsStopped() && !IsTradeAllowed()) Sleep(1000); GlobalVariableSet(strTradeSemaphore, 0.0);