A mudança do TF é um problema - página 4

 

O último projeto me convém completamente.

Obrigado a todos vocês.

 
Vasyl Nosal:
Não. Sem zerá-lo, será o que está nas telas.

Então você tem lacunas dentro do próprio loop, a seqüência é quebrada. Nesse código, que fragmento eu lhe dei, TODAS as barras são recalculadas quando pré_calculadas são zeradas. E isso significa que zerá-las de antemão não tem sentido - uma perda de tempo do processador.

PS. A propósito, você esqueceu uma nuance importante. Por acaso, você está falando do MT5, onde as matrizes de preços não estão invertidas em séries temporais? Neste caso, seria assim:

int OnCalculate(...)
{
   // индекс последнего посчитанного на прошлом вызове бара
   // с которого начинаем расчёт
   int nStartBar = MathMax(prev_calculated - 1, 0);

   for(int i = nStartBar; i < rates_total; i++)
   {
       // рассчитываем индикатор на всех непосчитанных барах
   }
}
 
Sergei Vladimirov:

Então você tem lacunas dentro do próprio loop, a seqüência é quebrada. Nesse código, que fragmento eu lhe dei, TODAS as barras são recalculadas quando pré_calculadas são zeradas. E isso significa que zerá-las de antemão não tem sentido - uma perda de tempo do processador.

PS. A propósito, você esqueceu uma nuance importante. Por acaso, você está falando do MT5, onde as matrizes de preços não estão invertidas em séries temporais? Nesse caso, seria assim:

mql4

Não. Aqui está com seu projeto em um par onde não havia história.

Arquivos anexados:
 

Bem. O problema acabou não sendo tão simples.

Os desenvolvedores pedem uma nova variável de touro para armazenar se a tabela é atualizada e o rearme automático dos amortecedores se mais de 1 barra for carregada.

 
Vasyl Nosal:

Bem. O problema acabou não sendo tão simples.

Os desenvolvedores pedem uma nova variável de touro para armazenar se a tabela é atualizada e o rearme automático dos amortecedores se mais de 1 barra for carregada.

Você tem duas variáveis: pré_calculadas e taxas_total. Controlando o carregamento do histórico (neste caso pré-cálculo==0) você deve pensar o que fazer com os amortecedores do indicador - o comportamento usual nestes casos, é igualar o carregamento do histórico ao primeiro evento de carregamento do indicador.
 
Karputov Vladimir:
Você tem duas variáveis à sua disposição: pré_calculadas e taxas_total. Ao controlar a carga do histórico (com pré-cálculo==0) você tem que pensar no que fazer com os buffers indicadores - o comportamento usual em tais casos é igualar a carga do histórico ao primeiro evento de carga do indicador.
O que isso tem a ver com o pedido? Há 4 opções aqui e nenhuma delas funciona.
 
Vasyl Nosal:

Bem. O problema acabou não sendo tão simples.

Os desenvolvedores estão pedindo uma nova variável de touro para armazenar se a tabela foi atualizada e os amortecedores automáticos foram reinicializados se mais de 1 barra foi carregada.

Leve seu tempo, por favor.

E enquanto você espera por uma resposta dos desenvolvedores, ouça o que o moderador disse acima. Recomendo e releio este seu tópico de forma atenciosa desde o início.

Preste atenção a este posto do moderador, por exemplo: https://www.mql5.com/ru/forum/68180#comment_2089395, onde ele citou:

if(prev_calculated==0)  // значит история изменилась или это первый проход

Afinal de contas, eu, assim como outras pessoas, já vos insinuei sobre isso, assim como algumas outras coisas, em meus dois posts: https://www.mql5.com/ru/forum/68180/page3#comment_2095342

Veja a Documentação, que é citada ali (não apenas na parte da frase destacada, mas no texto como um todo).

Leve seu tempo, por favor, e então tudo dará certo para você em termos de solução deste seu problema. Boa sorte!

 
Dina Paches:

Leve seu tempo, por favor.

E enquanto você espera uma resposta dos desenvolvedores, ouça o que o moderador disse acima. Recomendo que você releia esta linha novamente.

Preste atenção a este posto do moderador, por exemplo: https://www.mql5.com/ru/forum/68180#comment_2089395 onde ele citou:

Afinal de contas, eu, assim como outras pessoas, insinuei-lhe sobre isso, assim como algumas outras coisas, em meus dois posts: https://www.mql5.com/ru/forum/68180/page3#comment_2095342

Dê uma olhada na Documentação que você deu lá.

Leve seu tempo, por favor, e então tudo dará certo para você em termos de solução deste seu problema. Boa sorte!

Você tem uma solução para o código?

Ou você tem medo de que eu mude o TF e seu projeto não funcione também? Está tudo bem, estamos resolvendo aqui um problema GERAL.

 
Vasyl Nosal:

Você tem uma solução para o código?

Ou você tem medo de que eu mude o TF e seu projeto também não funcione? Tudo bem, estamos resolvendo um problema comum aqui.

Mas eu ainda recomendo usar o conselho que dei neste post: https://www.mql5.com/ru/forum/68180/page4#comment_2097011.

E eu tenho soluções para mim.

Para seu próprio conselho, sinta-se à vontade para continuar sem mim. Uma dica de direção geral (ver pré_cálculo e taxas_total) foi dada a você muitas vezes por várias pessoas aqui.

De sua suposição sobre mim, presumo que você também não percebeu o seguinte, que eu lhe disse:

A implementação pode ser diferente, dependendo da tarefa. As nuances podem ser diferentes. Por que você não vê como as coisas são implementadas em outros países, dependendo de várias condições? Incluindo com a ajuda de rasgar para entender, determinar, formar opções aceitáveis para você mesmo, dependendo das tarefas?

Como você provavelmente não notou o post de Victora Nikolaev: https://www.mql5.com/ru/forum/68180/page2#comment_2091839

Você tem uma cabeça, não tem? Eu tenho.

Você quer resolver seu problema? Parece que assim é.

Portanto, se você quiser e precisar, pode trazer à tona suas soluções para diferentes programas e produzi-los você mesmo.

Eu ou qualquer outra pessoa nesta linha tenho que lhe fornecer algo mais detalhado? Não.


 
Dina Paches:

...


Você tem um código de solução?
Razão: