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
Oi Stringo,
infelizmente, este erro persiste.
Ao executar o script de teste por baixo e trocar de uma conta para outra (no meu caso de teste eu usei contas de 2 ou 3 corretores diferentes e troquei de um para outro), você pode ver que depois de algumas trocas de contas (número bastante aleatório) a conexãoState realmente não muda de volta para 1, ela permanece 0 mesmo que o Terminal _ esteja_ conectado.
Aos seus olhos, isto pode não ser um bug crítico. Entretanto, para algumas pessoas que desenvolvem scripts que exibem o connectionState, os resultados dos testes conduzidos são bastante alarmantes.
É por isso que eu estava muito grato se você pudesse dar uma olhada nesta questão novamente.
Aqui está o testScript:
Atenciosamente, o seu,
Daniel.
Devo também confirmar o mesmo erro. No meu EA eu verifico simultaneamente se existe conexão. Caso não exista, meu script sai.
Alguém encontrou uma solução para isso?
O roteiro não pode determinar o problema por causa do loop infinito e da independência dos tiquetaques recebidos.
O problema pode mostrar apenas especialistas. Simples especialista com apenas uma linha de código - Print(IsConnected());
Tick income (significa que o terminal está conectado) - a função iniciar é executada - oops! IsConnected() retorna 0 (ou seja, falso)
obrigado
sim eu uso
o problema é que quando a conexão está de volta IsConnected() kepps o antigo valor é falso e não muda para verdadeiro! Mas eu estou vendo o preço se mover e o terminal está conectado 100%. Isto é um bug porque o loop infinito foi quebrado e o início foi executado porque nada aconteceu no primeiro tick depois que a conexão foi restaurada. Mas por alguma razão Is Connected() ainda retorna falso. Se eu remover a EA do gráfico e colocar novamente tudo funciona bem até que a próxima conexão seja perdida.
Isto me deixa louco. Por favor, faça algo a respeito disso!
Obrigado
Liliput - se acima está o esboço de início() de uso, por que ficar nele com o loop infinito?
Eu pergunto porque normal? a maneira é entrar > quero trabalhar? não:retorno > fazer trabalho > retornar
(normal - é subjetivo, é claro ;o)
não lhe dizer como projetar - esse é o seu negócio, apenas perguntando o seu raciocínio, então eu aprendo mais/ver diferentes maneiras de fazer as coisas!
O que me levou a perguntar?
Não tenho idéia de como o Terminal se comporta se, por exemplo, um EA se recusa a retornar a ele por talvez muitos tiquetaques de dados que, como o EA não retorna - o Término simplesmente não faz a chamada para começar()... ou - ele simplesmente não faz a chamada e eventualmente devido a muitos tiquetaques de dados que passam sem ter sido capaz de chamar o início do EA() o Terminal entra em profundidades desconhecidas e manifesta o problema conectado?
;)
Será que isso pode resolver o problema?
Liliput - se acima está o esboço de início() de uso, por que ficar nele com o loop infinito?
Eu pergunto porque normal? a maneira é entrar > quero trabalhar? não:retorno > fazer trabalho > retornar
(normal - é subjetivo, é claro ;o)
não lhe dizer como projetar - esse é o seu negócio, apenas perguntando o seu raciocínio, então eu aprendo mais/ver diferentes maneiras de fazer as coisas!
O que me levou a perguntar?
Não tenho idéia de como o Terminal se comporta se, por exemplo, um EA se recusa a retornar a ele por talvez muitos tiquetaques de dados que, como o EA não retorna - o Término simplesmente não faz a chamada para começar()... ou - ele simplesmente não faz a chamada e eventualmente devido a muitos tiquetaques de dados que passam sem ter sido capaz de chamar o início do EA() o Terminal entra em profundidades desconhecidas e manifesta o problema conectado?
;)
ukt, não há problema que eu responda. Eu faço loop infinito porque preciso fazer muitas operações e não quero esperar por um novo tick para fazê-las. Portanto, assumo o controle do terminal desta maneira e faço meu trabalho quando preciso e quero. Eu uso RefreshRates() para obter dados reais.
Então é lógico checar se existe conexão com o corretor porque eu envio/fecho/modificar ordens e se não existe conexão então não funciona. simples é que. há também outras verificações para sair do loop que eu uso. por exemplo IsStoped() e assim por diante, mas o problema não está no meu código, está no IsConnected().