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
Desenvolvedores, você tem um erro em algum lugar.
Veja a captura de tela do Comentário após fechar o terminal e abri-lo após 1 minuto.
Número de elementos inicializados e que o primeiro, segundo, terceiro e quarto elemento do buffer está vazio.
O indicador conta apenas o 0° tampão. Então, por que 2 velas?
Desenvolvedores, você tem um erro em algum lugar.
Veja a captura de tela do Comentário após fechar o terminal e abri-lo após 1 minuto.
Número de elementos inicializados e que o primeiro, segundo, terceiro e quarto elemento do buffer está vazio.
O indicador conta apenas o 0° tampão. Então, por que 2 velas?
Porque quando você analisa para uma nova barra, você não verifica o número de barras, mas se limita a verificar o tempo. Quando você inicia o terminal ou quebra a conexão com o servidor durante a operação, um tique vem antes que as barras que faltam (ao histórico completo) cheguem. Neste tick, uma nova vela é criada, mas há uma lacuna (falta de histórico) entre ela e o histórico no terminal, que será baixada do servidor e inserida no sistema, e como você não analisa o número de barras, você vai pensar que não há uma nova barra no próximo cálculo, e é aí que a segunda vela aparece. Após a abertura de um novo bar, ele desaparecerá.
E não importa que no deinit a zeragem ocorra quando o terminal é fechado?
Vasily, execute um indicador de teste que imprime o número de barras.
Isto é o que se imprime no tronco.
Talvez isto lhe diga de onde vem o problema...
Por favor, peça uma resposta simples aos desenvolvedores.
Quando o terminal é fechado, a função DeInit() é executada nos programas anexados à carta?
A rigor, não.
OnDeinit é executado. O DeInit só será executado se você o chamar explicitamente da OnDeinit.
Se você estiver se referindo à antiga função deinit, tenha também em mente que os nomes das funções são sensíveis a maiúsculas e minúsculas. Ou seja, deInit é uma função desconhecida, deinit é um ponto de entrada padrão na desinicialização (como OnDeinit)
E não importa que no deinit a zeragem ocorra quando o terminal é fechado?
Quem se importa? Quando o terminal é fechado, esses buffers não são mais necessários, pois serão imediatamente liberados quando o programa for descarregado, o que ocorre imediatamente após o OnDeinit
Tente apenas mudar o cronograma. OnDeinit funcionará, os amortecedores permanecerão (porque a descarga do programa não acontece neste caso), mas ninguém garante seu conteúdo da "vida passada".
Leia, finalmente, a documentação! https://docs.mql4.com/ru/runtime/running e https://docs.mql4.com/ru/runtime /event_fire#deinit
Quem se importa? Quando o terminal é fechado, esses buffers não são mais necessários, pois serão imediatamente liberados quando o programa for descarregado, o que ocorre imediatamente após o OnDeinit
Tente apenas mudar o cronograma. OnDeinit funcionará, os amortecedores permanecerão (como o programa não é descarregado neste caso), mas ninguém garante seu conteúdo da "vida passada".
Leia, finalmente, a documentação! https://docs.mql4.com/ru/runtime/running e https://docs.mql4.com/ru/runtime /event_fire#deinit
Então, no meu caso, os amortecedores são bifurcados quando o gráfico é reaberto?
Você não tem bifurcação tampão.
É assim que você mesmo preenche seu buffer. A primeira vez, quando você o desenha; a segunda vez, quando você recebe uma porção de dados. Ambas as vezes você opera com o mesmo valor de Tempo[0].
Você não está tendo uma divisão tampão.
É assim que você mesmo preenche seu buffer. A primeira vez na renderização e a segunda vez na chegada dos dados. Ambas as vezes você opera com o mesmo valor de Tempo[0].
OK.
Por favor, corrija a ajuda em inglês e pronto.
Também a ajuda inglesa diz quea ArrayInitialize não devolve nada.