Diskussion zum Artikel "3 Methoden zur Beschleunigung von Indikatoren anhand des Beispiels der linearen Regression"

 

Neuer Artikel 3 Methoden zur Beschleunigung von Indikatoren anhand des Beispiels der linearen Regression :

Dieser Beitrag behandelt die Methoden zur Optimierung der Berechnungsalgorithmen von Indikatoren. Jeder wird eine Methode finden, der seine/ihre Anforderungen am besten erfüllt. Drei Methoden werden hier beschrieben. Eine ist ziemlich simpel, die zweite erfordert solide mathematische Kenntnisse und die dritte benötigt einen gewissen Scharfsinn. Für die Realisierung der meisten beschriebenen Methoden werden Indikatoren oder Designmerkmale des MetaTrader 5 Terminals verwendet. Die Methoden sind weitestgehend universell einsatzfähig und können nicht nur für die Beschleunigung der Berechnung der linearen Regression verwendet werden, sondern auch für viele andere Indikatoren.

Basisindikator

Der Indikator, der für die Darstellung aller 3 Methoden verwendet wird, ist der Indikator der linearen Regression. Er erstellt auf jedem Balken eine Regressionsfunktion (gemäß der festgelegten Anzahl der letzten Balken) und zeigt, welchen Wert er bei diesem Balken haben sollte. Als Ergebnis erhalten wir eine durchgehende Linie:

So sieht der Indikator im Terminal aus

 

Die Gleichung der linearen Regression sieht so aus:

In unserem Fall ist x die Nummer des Balkens und y der Preis.

Die Verhältnisse der erwähnten Gleichung werden so berechnet:

Autor: Andrew

 

Ehrlich gesagt bajan, über diese ist bereits fünf Jahre als auf dem vierten Forum bekannt.

Aber ich denke, es wird für Anfänger interessant sein.

Der Artikel zeigt einmal mehr, dass statistische Methoden in Standard-Indikatoren implementiert Regel, nicht unterschätzen sie.

 
Dialog des Autors. Alexander Smirnov. Dies ist die zweite Diskussion zu diesem Thema, die erste war irgendwo im Jahr 2006.
. Übrigens, es gibt auch Formeln der Regression zweiter Ordnung durch Mashki.
Диалог автора. Александр Смирнов. - MQL4 форум
  • www.mql5.com
Диалог автора. Александр Смирнов. - MQL4 форум
 
Urain:

Ehrlich gesagt bajan, über diese ist bereits fünf Jahre als auf dem vierten Forum bekannt.

Aber ich denke, Neulinge werden sich dafür interessieren.

Ja, der Artikel ist eher auf Anfänger ausgerichtet.

Der Artikel zeigt einmal mehr, dass statistische Methoden, die in Standardindikatoren implementiert sind, regieren, man sollte sie nicht unterschätzen.

Das ist ganz klar. Ich denke, dass die in das Terminal eingebauten Indikatoren (iMA usw.) nicht nur aufgrund des Wissens der Terminalentwickler über Optimierungsmethoden schnell arbeiten, sondern auch aufgrund der Tatsache, dass sie als Teil einer exe-Datei ausgeführt werden. Das heißt, im Gegensatz zu externen Indikatoren handelt es sich um eine vollwertige Kompilierung und nicht um einen Pi-Code. Nun, vielleicht haben sie einen direkten Hochgeschwindigkeitszugriff auf Timer, der bei externen Indikatoren nicht möglich ist.

Ich habe versucht, nicht-eingebettete Mashas für die Faltungsmethode zu verwenden - obwohl sie gut optimiert sind, sind sie viel langsamer als die eingebetteten.

Urain:
Dialog des Autors. Alexander Smirnov. Dies ist die zweite Diskussion zu diesem Thema, die erste war irgendwo im Jahr 2006.
. Übrigens gibt es auch Formeln für die Regression zweiter Ordnung über Mashki.

Ja, ich habe ähnliche Themen gesehen. Aber nirgendwo war klar, wie die Faltung Schritt für Schritt zustande kommt. Ich musste alle Formeln selbst herleiten (ich habe mehrere Blätter mit Entwürfen geschrieben), um alle Nuancen in dem Artikel zu erklären. Es gibt zum Beispiel einen kniffligen Punkt mit der Taktnummerierung für LWMA.

 
ds2: Ja, ich habe ähnliche Threads gesehen. Aber nirgendwo war Schritt für Schritt klar, wie die Faltung ausfiel. Ich musste alle Formeln selbst ausgeben (ich habe mehrere Blätter mit Entwürfen geschrieben), um alle Nuancen in dem Artikel zu erkennen. Es gibt z.B. einen kniffligen Moment mit der Taktnummerierung für LWMA.

Hier ist der Beweis. Das heißt, ein bisschen früher als Urain den Link gegeben hat.

Ich erhebe keinen Anspruch auf Priorität :). Es ist, allgemein gesprochen, eine fast triviale Tatsache.

P.S. Wenn ich nicht alles vergessen habe, war das Ergebnis des Geschwindigkeitsvergleichs immer noch zugunsten der klassischen Berechnung - aber deutlich optimiert (der Unterschied ist nicht groß, aber immerhin; siehe Candid' a's Beiträge). Eine ähnliche Technik, die auf Regressionen höherer Ordnung (quadratisch, kubisch usw.) angewandt wird, scheint jedoch den Vorteil der "Faltungs"-Methode gegenüber der klassischen Methode aufzeigen zu können.

Диалог автора. Александр Смирнов. - MQL4 форум
  • www.mql5.com
Диалог автора. Александр Смирнов. - MQL4 форум
 

Sehr guter und nützlicher Artikel, aber ich habe eine Frage.

Wenn wir die Moving Totals Methode verwenden, ist es wahr, dass der Indikator eine Menge Geschwindigkeit gewinnt, aber das bedeutet, dass wir 4 Hilfspuffer hinzufügen müssen, die den Speicherverbrauch erhöhen.

Die Frage ist also, welche Methode besser ist, die Standard-Methode, die weniger Speicher benötigt, oder die Moving Totals Methode, die mehr Speicher benötigt, aber schneller ist?

 

In der Implementierung ist etwas falsch:

Wenn LRMethod == LR_M_Sum

ist, stellt sich heraus, dass Sx und Sxx Konstanten sind:

Sxx = ExtBufSxx[prevbar];

ExtBufSxx [bar] = Sxx;

Wenn das der Fall ist, warum dann die Puffer?


Vielleicht geht es noch schneller, wenn Sie SMA und LWMA mit der Methode der gleitenden Summe zählen und das Ergebnis als eine Faltung zählen.

Außerdem wäre es gut, die Steigung der Regression zu kennen, die auch über SMA und LWMA berechnet werden kann.

Ich habe es auf 4 implementiert: https://www.mql5.com/de/code/10642

Быстрая LRMA
Быстрая LRMA
  • Stimmen: 3
  • 2012.03.08
  • Vladislav Eremeev
  • www.mql5.com
Написан под впечатлением от статьи "3 метода ускорения индикаторов на примере линейной регрессии". Считает очень быстро.
 

Hallo,

,,Es erstellt die Regressionsfunktion bei jedem Balken (entsprechend der definierten Anzahl der letzten Balken) und zeigt an, welchen Wert sie bei diesem Balken haben sollte''

Aber wie kann ich die Steigung der letzten Regressionslinie berechnen (ich kenne nur den letzten Punkt, der die Kurve bildet)...


Danke für die Hilfe

Petr

 

Hallo

danke für diesen Artikel. Aber könnten Sie mir bitte sagen, wie ich Ihre Methoden in meinem MQL5-Code aufrufen kann? Ich verstehe nicht, wie es zu tun, ich verstehe nicht die Liste der Parameter innerhalb Ihrer Methoden. wie kann ich den Wert durch die lineare Regression zu einem bestimmten Zeitpunkt in meinem Code nach der Integration Ihrer zurückgegeben bekommen?