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
Pode ser verificado, basta executar a verificação em um loop infinito. como iniciar este loop ao iniciar o terminal durante uma interrupção de conexão é um problema completamente à parte. Uma vez que você tenha seu loop funcionando, ele fará o que é esperado.
Seu problema não tem nada a ver com a função IsConnected(). Com o mesmo argumento, você também pode reclamar da função Print() ou Alert() ou qualquer outra função que você não possa chamar porque não pôde iniciar o código inteiro em primeiro lugar por alguma razão completamente diferente.
ok, deixe-me explicar algo Porque estou usando muito Terminlas Ao longo de toda a minha utilização da cpu está subindo para 100 prcent e é por isso que preciso desligar alguns terminais
E quando os liguei (naturalmente automático) vi algumas vezes que eles não estavam conectados e a EA estava rodando sobre eles não informou que não havia conexão,
isto é, eu comecei este tópico e até agora a única maneira que encontrei é como eu disse acima com um programa externo.
Talvez esteja relacionado ao "recurso" que foi introduzido pela primeira vez com o Windows XP SP2 que se recusa a ter mais do que apenas um punhado de conexões semi-abertas a qualquer momento, principalmente para incomodar as pessoas que querem usar aplicações intensivas de rede. AFAIK existem métodos para corrigir este "recurso" irritante e restaurar a operabilidade normal: http://blog.davidkaspar.com/archives/2005/04/windows-xp-sp2-and-event-id-4226.php
Procure o evento 4226 no registro de eventos do windows.
Esta é a única maneira correta de forçar um start() a partir de dentro do init() em uma EA. Não é permitido fazer isto em um indicador, uma vez que a start() será executada na rosca GUI.
Isto é bom, mas nem sempre funciona porque o carrapato pode ter desaparecido antes mesmo de ter retornado, caso em que o carrapato é descartado. Para destacar isto, se você acrescentar uma pausa de 5ms depois
então start() não será executado.
Existe uma solução melhor para que o consultor especializado comece() a executar em carga sem exigir um tique real do corretor?
Eu pouco velho, masprocurando uma solução para o mesmo problema que eu tive sobre este tópico.
Na verdade, a afirmação de qjol de que "a única maneira de fazer isso é com um script; o problema é que não há como abrir o terminal com um script carregado" é parcialmente verdadeira. Com um script ok, mas há uma maneira de iniciar um script com o terminal do cliente. Isto está documentado na ajuda do metatrader (F1, Ferramentas, Configuração na Inicialização). Talvez não seja o mesmo no momento em que este tópico foi iniciado.
Então eu desenvolvi um pequeno script para fazer o trabalho. Use isto com um script de inicialização, exemplo :
E lauch terminal com algo como :
"...\Metatrader 4\terminal.exe" config\start.ini
Oi, pessoal,
Vocêsconhecem algum de vocês, por que não trabalhar com carrapatos falsos de roteiro - https://www.mql5.com/en/forum/128803/page2#373539(página 2) este tópico para construir 600++?
Meu sistema operacional é Vista. Obrigado.
Oi, pessoal,
Vocêsconhecem algum de vocês, por que não trabalhar com carrapatos falsos de roteiro - https://www.mql5.com/en/forum/128803/page2#373539(página 2) este tópico para construir 600++?
Meu sistema operacional é Vista. Obrigado.
Desde a build > 600 você tem que substituir "A" de ansi por "W" de unicode
por que é usado 2 e 1 no parâmetro
por que é usado 2 e 1 no parâmetro
Está fora do escopo da MQL, mas não tem a função aqui:
Caso outra pessoa esteja procurando por informações sobre a função IsConnected().
Portanto, sim, a função não funcionará sob a função start() ou OnTick(), porque se não houver conexão, então nenhum novo tick chegará, e a função não acionará de qualquer forma....
Então, o que devemos fazer?
Use a função OnTimer(), para verificar regularmente a conexão, independentemente dos tiquetaques recebidos.
fridayda13:
Portanto, sim, a função não funcionará sob a função start() ou OnTick(), porque se não houver conexão, então não chegará nenhum novo tick, e a função não acionará de qualquer forma....
Então, o que devemos fazer?
Use a função OnTimer(), para verificar regularmente a conexão, independentemente dos tiquetaques recebidos.
Você não deve fazer nada, porque não há nada que você possa fazer. Leva mais de 30 segundos antes que o tempo de rede se esgote e a função mude de valor. O que você vai fazer quando nada tiver mudado e você não tiver nenhuma conexão?
Só é útil se você nunca mais retornar do início/docurso (verifique antes de um OrderSend.) ou após o OrderSend para novas tentativas dentro do mesmo tick.
Em vez disso, se a OrderSend falhar, registre-a, retorne e teste/retroceda no próximo tick. Feito.