MT4 iMAOnArray e iBandsOnArray effetto del numero di elementi sui calcoli - pagina 8

 
Sergey Efimenko:
Dovevo indovinare che c'è un codice diverso? Sopra lo screenshot anche, dove le ultime 100 barre sono state contate, ma in realtà tutte le barre sono state contate, ma solo 100 sono state copiate nel buffer. Sì e perché non postare subito il codice? Non ci sarebbe stata una tale risposta. Avrei risposto in modo sostanziale: non capisco qual è il punto? Si può vedere immediatamente dal codice cosa sta succedendo, cosa conta e se ci sono i difetti di cui sopra. E cosa ti dà lo schermo? Nient'altro che il risultato, e a proposito del risultato già detto, può essere raggiunto in diversi modi, ma non tutti sono accettabili per il compito in questione - ridurre il tempo di calcolo.

Convincente. Deve essere stata la quantità presa prima... Mi dispiace per questo.

 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);

Il risultato è nello screenshot qui sopra.

 
Alexey Viktorov:

Convincente. Deve essere stata la quantità presa prima... Mi dispiace.

Il risultato è nello screenshot qui sopra.

Quante di queste sciocchezze si possono dire?
 
Dmitry Fedoseev:
Quante di queste sciocchezze puoi sparare?
Ha risposto prima.

Alexey Viktorov:

Sei l'unico che può iniziare una scazzottata. Conta con quanti membri del forum hai interagito con questo tono di voce in questo modo con me ora. Vai via, Satana.

 
Alexey Viktorov:
Ha risposto prima.
Allora, quante di queste sciocchezze puoi sputare? Cosa sta cercando di dimostrare?
 
Dmitry Fedoseev:
Quante di queste sciocchezze puoi sparare? Cosa sta cercando di dimostrare?
Niente per te.
 
Alexey Viktorov:
Niente per te.
E a chi e cosa?
 
Dmitry Fedoseev:
E per chi e cosa?
Per il mio bene, mi sto divertendo. Così il mio cervello non si secca, e allo stesso tempo la gente potrebbe beneficiarne. Non fai altro che cagare... Vai via, Satana...
 
Alexey Viktorov:
Per il mio divertimento. Per evitare che il mio cervello si secchi, e allo stesso tempo, forse la gente ne beneficerà. Non fai altro che cagare... Vattene, Satana...
Allora avete sbagliato posto per l'intrattenimento.
 
Alexey Viktorov:

Convincente. Deve essere stata la quantità presa prima... Mi dispiace.

Il risultato è nello screenshot qui sopra.

Prova a impostare la modalità SMMA :) Ma anche senza, c'è ancora un'eccessiva copia dell'array, e se si moltiplicano i calcoli per ogni tick, specialmente quando il periodo di smoothing cresce, anche l'array crescerà.
 
Sergey Efimenko:
Prova la modalità SMMA :)
O EMA
Motivazione: