MT4 iMAOnArray e iBandsOnArray efeito do número de elementos nos cálculos - página 8

 
Sergey Efimenko:
Eu deveria adivinhar que existe um código diferente? Acima da imagem da tela também, onde as últimas 100 barras foram contadas, mas na verdade todas as barras foram contadas, mas apenas 100 foram copiadas para o buffer. Sim e por que não afixar o código imediatamente? Não teria havido tal resposta. Eu teria respondido substantivamente, não entendo qual é o objetivo? Você pode ver imediatamente pelo código o que está acontecendo, o que conta e se existem as falhas acima. E o que a tela lhe dá? Nada além do resultado, e sobre o resultado já dito, ele pode ser alcançado de maneiras diferentes, mas nem todos são aceitáveis para a tarefa em questão - para reduzir o tempo de cálculo.

Convincente. Deve ter sido a quantia tomada antes... Desculpe por isso.

 int i, limit;
   limit = prev_calculated == 0 ? rates_total-1 : rates_total-prev_calculated;
   double buffer[];                   // это промежуточный буфер для расчёта
    ArraySetAsSeries(buffer, true);   // это сам знаешь

   for(i = limit; i >= 0; i--)
     {
      Buffer[i]=open[i];             // в комментарии не нуждается
      
       BufferBMA[i] = NormalizeDouble(iMAOnArray(Buffer, 0, 5, 0, MODE_LWMA, i), _Digits); // Я воспользовался этим буфером чтобы не описывать ещё один
      
     if(rates_total-i >= rates_total-50)   // Всё основное действо...
      {
       ArrayCopy(buffer, Buffer, 0, i, 5);  // Копируем в дополнительный буфер часть основного 
       BufferMA[i] = NormalizeDouble(iMAOnArray(buffer, 0, 5, 0, MODE_LWMA, 0), _Digits);  // и вычисляем среднее значение с указанным периодом
      }
     }
return(rates_total);

O resultado está na imagem da tela acima.

 
Alexey Viktorov:

Convincente. Deve ter sido a quantia tomada antes... Sinto muito.

O resultado está na imagem da tela acima.

Quanto deste absurdo você pode dizer?
 
Dmitry Fedoseev:
Quanto deste absurdo você pode dizer?
Eu já respondi antes.

Alexey Viktorov:

Você é o único que pode começar uma briga. Conte com quantos membros do fórum você interagiu neste tom de voz comigo agora. Vá embora, Satanás.

 
Alexey Viktorov:
Respondido anteriormente.
Então, quanto deste absurdo você pode dizer? O que você está tentando provar?
 
Dmitry Fedoseev:
Quanto deste absurdo você pode dizer? O que você está tentando provar?
Nada para você.
 
Alexey Viktorov:
Nada para você.
E para quem e o quê?
 
Dmitry Fedoseev:
E para quem e o quê?
Para meu próprio bem, estou me divertindo. Assim, meu cérebro não seca, e talvez as pessoas se beneficiem com isso. Tudo o que você faz é merda... Vá embora, Satanás...
 
Alexey Viktorov:
Para minha própria diversão. Para evitar que meu cérebro seque e, ao mesmo tempo, talvez as pessoas se beneficiem. Tudo o que você faz é merda... Vá-se embora, Satanás...
Então você tem o lugar errado para o entretenimento.
 
Alexey Viktorov:

Convincente. Deve ter sido a quantia tomada antes... Sinto muito.

O resultado está na imagem da tela acima.

Tente configurar o modo SMMA :) Mas mesmo sem ele, ainda há uma cópia excessiva da matriz, e se você multiplicar os cálculos por cada tick, especialmente à medida que o período de suavização cresce, a matriz também crescerá.
 
Sergey Efimenko:
Experimente o modo SMMA :)
Ou EMA