Características da linguagem mql5, subtilezas e técnicas - página 239
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
Como posso saber se um símbolo tem dados, para que eu não o deixe na janela [Market Watch] se não tiver?
SymbolInfoTick.
SymbolInfoTick.
Tentei essa opção. Infelizmente, ela não funciona. Se um símbolo for adicionado à janela [Market Watch] pela primeira vez, ainda não há dados sobre ele e SymbolInfoTick retorna valores nulos.
Também testei as funções CopyXXX, mas elas não têm um tempo limite e o processo de espera pelos dados do servidor dura cerca de 45 segundos, o que é muito longo.
Preciso de uma maneira rápida de descobrir se um caractere é inutilizável. Estou me referindo a casos como este:
//---
Esses símbolos não têm dados no servidor e precisam de uma maneira de identificá-los para que não sejam adicionados à janela [Visão geral do mercado] ou removidos da lista, caso sejam.
P.S. Talvez haja alguma maneira de remover o bloqueio de remoção de símbolos da lista na janela[ Market Watch]?
Tentei essa opção. Infelizmente, ela não funciona. Se um símbolo for adicionado à janela [Market Watch] pela primeira vez, ainda não há dados sobre ele e SymbolInfoTick retorna valores nulos.
É fácil obter símbolos funcionais manualmente.
Tentei essa opção. Infelizmente, ela não funciona. Se um símbolo for adicionado à janela [Market Watch] pela primeira vez, ainda não há dados sobre ele e SymbolInfoTick retorna valores nulos.
Também testei as funções CopyXXX, mas elas não têm tempo limite e o processo de espera pelos dados do servidor dura cerca de 45 segundos, o que é muito longo.
Preciso de uma maneira rápida de descobrir se um caractere é inutilizável. Estou me referindo a casos como este:
//---
Esses símbolos não têm dados no servidor e precisam de uma maneira de identificá-los para que não sejam adicionados à janela [Market Watch] ou removidos da lista, caso sejam.
P.S. Talvez haja alguma maneira de remover o bloqueio de remoção de símbolos da lista na janela[Market Watch]?
Estou lutando contra isso há cerca de 6 anos e peço aos desenvolvedores que coloquem as coisas em ordem aqui.
Infelizmente, esse problema não foi resolvido e, no momento, há situações em que o terminal trava quando alguém acessa um instrumento financeiro pela primeira vez.
Como posso saber se um símbolo tem dados, para que eu não o deixe na janela [Market Watch] se não tiver?
Eu uso essa verificação em um loop:
Mas, depois disso, não consigo remover manualmente os símbolos da janela [Market Watch], nem um por um nem todos de uma vez, enquanto o Expert Advisor está no gráfico:
Tente verificar a hora da última cotação.
Se for 0, não há dados.
Acabei de verificar os gráficos abertos.
É possível obter dados adicionais alternando entre servidores. Não sei se é possível implementar isso por meio do código.
Se por "entre servidores" você quer dizer "entre corretoras", então dificilmente, a menos que você tente brincar com perfis.
Mas se eu realmente precisasse alternar entre diferentes servidores de uma corretora (a Open tinha muitas, a Finam tinha duas), eu o faria por meio do iptables/nftables e meus scripts bash. Mas é mais fácil para mim aqui, pois tenho o Linux.
Se por "entre servidores" você quer dizer "entre corretores".
.
Sim, em princípio, isso é possível.
Mas, como não há como descobrir o nome e o IP do servidor no programa MQL, você terá que descobri-los manualmente, alternando entre os servidores e verificando para qual IP a conexão está indo.
Em seguida, é possível, fazendo alterações na configuração do firewall, proibir a conexão com algum servidor (aqui é necessário fazer o rejacking de pacotes, não descartá-los para evitar o tempo limite), forçando o MT a mudar para outro.
Novamente, não é difícil para mim fazer isso no Linux, mas não consigo imaginar como fazê-lo no Windows.
Tente verificar a hora da última citação.
Se for 0, não há dados.
Acabei de verificar os gráficos abertos.
Isso também se aplica a um caso semelhante:
Se os ticks forem raros, todos esses símbolos serão excluídos.
É fácil obter símbolos funcionais manualmente.
Não. Você precisa de um sistema totalmente automático.
Estou lutando com isso há 6 anos e peço aos desenvolvedores que coloquem ordem aqui.
Infelizmente, esse problema não foi resolvido e, no momento, há situações em que o terminal desliga quando alguém acessa um instrumento financeiro pela primeira vez.
Notei isso somente ao chamar as seguintes funções:
//---
Desenvolvedores do terminal:
1. excluem a possibilidade de adicionar símbolos sem dados no servidor de negociação.
2. Possibilitar a desativação do bloqueio de exclusão de símbolo na janela [Market Watch] ou corrigi-lo se for um bug. Agora isso só pode ser feito reiniciando o terminal.
3. Para funções como CopyXXX , adicionar um parâmetro opcional adicional para definir o tempo limite (tempo máximo de espera pelos dados do servidor).
Não consigo reproduzir isso no momento. Até o momento, ele funciona sem atrasos. Mas parece que em alguns casos isso pode acontecer.
4. corrigir o erro de espera infinita ao usar as funções Bars(), iBars(), SeriesInfoInteger(symbol, PERIOD_M1, SERIES_BARS_COUNT) nos casos em que
Uma tentativa de excluir o programa do gráfico pode fazer com que o terminal fique suspenso por vários minutos.
5. Corrigir o erro de espera infinita ao usar funções se não houver conexão com o servidor:
Nesse caso, você também pode adicionar um parâmetro opcional adicional para definir o tempo limite (tempo máximo de espera pelos dados do servidor).
//---
P.S. Até agora, optei pela variante com a verificação de dados com funções como CopyXXX. Mas vou observar se o problema descrito acima aparecerá novamente.