Características da linguagem mql5, subtilezas e técnicas - página 97
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
Então, já havia uma espécie de solução no KB:
Mas não para o guião. E é bastante difícil para a EA, porque sugere que se despenhe do OnTick no caso de uma situação indefinida. E esta situação pode acontecer algures no interior do Expert Advisor. E não só teremos que sair de lá, para sair do OnTick, mas pode haver necessidade de abrir, por exemplo, duas posições ao mesmo tempo (a la cart). Mas o segundo só deve ser aberto se o primeiro tiver sido aberto com sucesso. Neste caso, ser expulso da OnTick após o primeiro OrderSend, para dizer de forma branda, não é bom.
Mas não para o guião. E é bastante difícil para a EA, porque é sugerido que se despenhe do OnTick em uma situação indefinida. E esta situação pode acontecer algures nas entranhas do Expert Advisor. E não só teremos que sair de lá, para sair do OnTick, mas pode haver necessidade de abrir, por exemplo, duas posições ao mesmo tempo (a la cart). Mas a segunda só deve ser aberta se a primeira tiver sido concluída com sucesso. Neste caso, ser expulso da OnTick após o primeiro OrderSend, para dizer de forma branda, não é bom.
O script pode abrandar para o número explícito de posições.
Conselheiro especializado... Numa EA, temos de considerar isto na lógica das funções de abertura de posição - elas são chamadas da EA com o retorno do resultado do seu trabalho. O resultado da ordem do mercado volta a ser falso. E então a EA vai trabalhar com a lógica inerente a ela. Sim, eu concordo que é mais difícil implementar em alguns EAs já prontos do que considerar imediatamente tais probabilidades. Mas é por isso que o ramo está aqui - para que outros conheçam e usem o conhecimento.
O script pode ser desacelerado até que um número explícito de posições seja recebido.
Você também pode abrandar o Expert Advisor.
O Conselheiro Especialista... No Expert Advisor, teremos que considerar isto na lógica da função de abertura de posição - eles são chamados da EA com o retorno do resultado do seu trabalho. O resultado é devolvido falso se houver uma ordem do mercado. E então a EA vai trabalhar com a lógica inerente a ela. Sim, eu concordo que é mais difícil implementar em alguns EAs já prontos do que considerar imediatamente tais probabilidades. Mas é para isto que serve o ramo - para que os outros saibam e usem o conhecimento.
Só tens de esperar um pouco até que a troca passe. Sair do TS até o próximo tick é uma decisão terrível.
Você também pode atrasar o conselheiro.
Só tens de esperar um pouco até que a troca tenha passado. Sair do TS até o próximo tick é uma decisão assustadora.
Bem, nesse código, a espera pelo tempo definido está feita. Mas você não pode esperar horas - ele espera algum tempo por um determinado número de tentativas para obter um ambiente válido, depois sai com o resultado. Caso contrário, se você esperar muito tempo, o ambiente de negociação pode mudar muito, e é tarde demais para beber o borjomi :)
Bem, esse código espera por um determinado período de tempo, mas você não pode esperar por horas - ele espera por um determinado número de tentativas para obter um ambiente válido. Mas você não pode esperar horas - ele espera por algum tempo por um número especificado de tentativas para obter um ambiente válido, depois sai com o resultado. Caso contrário, se você esperar muito tempo, o ambiente de negociação pode mudar muito, e é tarde demais para beber o borjomi :)
Sim, eu não reparei na espera. Isso serve. Eu estava muito mais atento então.
Imho, focar emPositionsTotal() é a decisão errada em qualquer caso. Durante o processamento do seu pedido, outra posição poderia abrir/fechar na conta, por exemplo, se vários EAs estiverem funcionando. O que o impede de verificar a resposta do servidor, uma vez que ela é projetada pelos desenvolvedores?
Na verdade, não vejo muito sentido em PosiçõesTotal, exceto no controle geral. Uma EA deve claramente controlar os carrapatos de suas posições e trabalhar apenas nelas.
Após usar ChartIndicatorGet() a função IndicatorRelease(handle) deve necessariamente ser chamada. Está escrito sobre isso no exemplo da função ChartIndicatorGet(), mas não na nota de função! Os desenvolvedores queriam corrigir a documentação, mas não o fizeram. Devido ao encerramento do SD, isto provavelmente nunca será feito.
Pessoalmente, encontrei o problema de um indicador de "enforcamento". De falar com o SD:
Ah, ou seja, quando eu executei o indicador X no gráfico, ele procurou em todos os indicadores e detectou uma cópia usando afunçãoChartIndicatorGet()- ele incrementava o contador. Apaguei o primeiro indicador X - contador decrescente, mas esqueci-me do segundo - tem o indicador "pendurado", porque o seu cabo não foi limpo?
Sim. É exactamente assim que funciona. Portanto, o OnDeinit não funciona.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Como importar dados históricos para o csv para simbolizar o costume usando CustomRatesUpdate?
fxsaber, 2018.08.19 12:01
A parte inglesa do fórum mostrou
Para quê? Para salvar alguns bytes de memória? Além disso, com o dobro você obtém números diferentes (== será falso) e os inteiros podem transbordar.