Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 76
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
problema resolvido através da comparação de preços
Neste contexto, meu ponto é o seguinte:
Por esta razão, seria melhor ter matrizes globais - para ordens e posições fechadas e abertas. Uma vez em um novo tick, passamos uma vez a quantidade necessária de pedidos/posições, preenchendo duas matrizes com eles. E então obtemos todos os dados necessários deles no mesmo carrapato. Observe que não apenas a última ordem/posição fechada/aberta e todos os seus dados são calculados, mas também todos os carrapatos de pais e filhos de todas as posições são pesquisados em caso de fechamento parcial. Assim, a qualquer momento posso ver de que posição é este ou aquele bilhete, se ele foi parcialmente fechado mais de uma vez - tudo isso já funciona em uma classe que funciona em um temporizador. Tenho muitos outros dados que preciso com um pequeno número total de ciclos. A profundidade da história necessária para as arrays é definida para o testador.
E assim por diante ...
Desculpe. Mais uma adição (não para contrabalançar, mas como uma adição), eu gostaria de acrescentar que as matrizes locais comestática não se perdem. Isto é, se as condições permitirem que você faça sem declará-las globalmente.
Agora estou reescrevendo-o lentamente por 5. Quero dizer que o preço pode mudar muito rapidamente e o nível pode ser menor que o nível de stop-loss, o que levará a um erro. Quero dizer que o preço pode mudar muito rapidamente e o nível será menor que o nível de parada permitido, o que levará a um erro.
Entendo que esta coisa do"SymbolInfoTick" é necessária para obter o preço atual?
Portanto, para obter o Ask and Bid real em mql4, a atualização deveria ter sido chamada de qualquer forma. E acontece que é pouco provável que a carga mude em comparação com a chamada SymbolInfoTick().
Mas aqui está outra adição: Eu escrevo SymbolInfoTick() no seguinte loop para obter preços precisos
while(!SymbolInfoTick(_Symbol, mqlTick));
Se obtivermos preços normais desde a primeira vez, este loop não aumentará o tempo de execução. E se houver algum fracasso, é melhor repetir do que obter o mesmo preço em vez do preço atual.
Portanto, para obter o Ask and Bid real em mql4, você tem que ligar para a atualização de qualquer maneira. E acontece que é pouco provável que a carga mude em comparação com a chamada SymbolInfoTick().
Mas aqui está outra adição: para obter preços reais sem erros, eu coloquei SymbolInfoTick() neste loop
while(!SymbolInfoTick(_Symbol, mqlTick));
Se obtivermos preços normais desde a primeira vez, este loop não aumentará o tempo de execução. E se houver algum fracasso, é melhor repetir do que obter o mesmo preço em vez do preço atual.
Estou vendo, mas onde devo colocá-lo, dentro do ciclo, ou antes?
Portanto, para obter o Ask and Bid real em mql4, você tem que ligar para a atualização de qualquer maneira. E acontece que é pouco provável que a carga mude em comparação com a chamada SymbolInfoTick().
Mas aqui está outra adição: para obter preços reais sem erros, eu coloquei SymbolInfoTick() neste loop
while(!SymbolInfoTick(_Symbol, mqlTick));
Se obtivermos preços normais desde a primeira vez, este loop não aumentará o tempo de execução. E se houver algum fracasso, é melhor repetir do que obter o mesmo preço em vez do preço atual.
E se não o receber de todo? Como se retarda o ciclo?
Sim, logicamente pode ser, por exemplo, que o terminal tenha perdido a conexão - há muitas razões para isso, eu o fiz perder a conexão 50 vezes por dia.
Qual é a melhor maneira de obter preços atualizados, ao mesmo tempo em que é menos intensivo em recursos, pense em você - para a rede de arrasto.
Sim, logicamente pode ser, por exemplo, que o terminal tenha perdido a conexão - há muitas razões para isso, eu o fiz perder a conexão 50 vezes por dia.
Qual é a melhor maneira de obter preços atualizados, ao mesmo tempo em que é menos intensivo em recursos, lembre-se - para a rede de arrasto.
Confira 10 páginas atrás, há um esquema muito bom lá.