MT4 iMAOnArray und iBandsOnArray Auswirkungen der Anzahl der Elemente auf die Berechnungen - Seite 8

 
Sergey Efimenko:
Hätte ich erraten sollen, dass es einen anderen Code gibt? Obiger Screenshot zeigt auch, dass die letzten 100 Balken gezählt wurden, aber tatsächlich wurden alle Balken gezählt, aber nur 100 in den Puffer kopiert. Ja, und warum nicht gleich den Code veröffentlichen? Eine solche Antwort hätte es nicht gegeben. Ich hätte inhaltlich geantwortet, dass ich nicht verstehe, worum es geht. Aus dem Code können Sie sofort ersehen, was vor sich geht, was zählt und ob es die oben genannten Fehler gibt. Und was zeigt Ihnen der Bildschirm? Nichts anderes als das Ergebnis, und über das Ergebnis wurde bereits gesagt, dass es auf verschiedene Arten erreicht werden kann, aber nicht alle davon sind für die vorliegende Aufgabe akzeptabel - um die Rechenzeit zu reduzieren.

Überzeugend. Das muss der Betrag gewesen sein, der vorher genommen wurde... Es tut mir leid.

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

Das Ergebnis ist auf dem obigen Screenshot zu sehen.

 
Alexey Viktorov:

Überzeugend. Das muss der Betrag gewesen sein, der vorher genommen wurde... Es tut mir leid.

Das Ergebnis ist auf dem obigen Screenshot zu sehen.

Wie viel von diesem Unsinn können Sie sagen?
 
Dmitry Fedoseev:
Wie viel von diesem Unsinn können Sie noch erzählen?
Ich habe bereits geantwortet.

Alexey Viktorov:

Du bist der Einzige, der eine Schlägerei anzetteln kann. Zählen Sie mal nach, mit wie vielen Forumsmitgliedern Sie in diesem Tonfall jetzt mit mir interagiert haben. Geh weg, Satan.

 
Alexey Viktorov:
Die Frage wurde bereits beantwortet.
Wie viel von diesem Unsinn können Sie also noch erzählen? Was wollen Sie damit beweisen?
 
Dmitry Fedoseev:
Wie viel von diesem Unsinn können Sie noch erzählen? Was wollen Sie damit beweisen?
Für Sie nicht.
 
Alexey Viktorov:
Nichts für Sie.
Und für wen und was?
 
Dmitry Fedoseev:
Und für wen und was?
Mir selbst zuliebe habe ich Spaß. So trocknet mein Gehirn nicht aus, und vielleicht profitieren andere davon. Alles, was du tust, ist scheißen... Geh weg, Satan...
 
Alexey Viktorov:
Zu meiner eigenen Belustigung. Um mein Gehirn vor dem Austrocknen zu bewahren, und gleichzeitig, damit andere vielleicht davon profitieren. Alles, was du tust, ist scheißen... Verschwinde, Satan...
Dann haben Sie den falschen Ort für Unterhaltung.
 
Alexey Viktorov:

Überzeugend. Das muss der Betrag gewesen sein, der vorher genommen wurde... Es tut mir leid.

Das Ergebnis ist auf dem obigen Screenshot zu sehen.

Versuchen Sie, den SMMA-Modus einzustellen :) Aber auch ohne diese Funktion wird das Array übermäßig oft kopiert, und wenn Sie die Berechnungen mit jedem Tick multiplizieren, vor allem, wenn die Glättungsperiode zunimmt, wird das Array ebenfalls wachsen.
 
Sergey Efimenko:
Versuchen Sie den SMMA-Modus :)
Oder EMA