Diskussion zum Artikel "3 Methoden zur Beschleunigung von Indikatoren anhand des Beispiels der linearen Regression"
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.
. Übrigens, es gibt auch Formeln der Regression zweiter Ordnung durch Mashki.
- www.mql5.com
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.
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.
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.
- www.mql5.com
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
- Stimmen: 3
- 2012.03.08
- Vladislav Eremeev
- www.mql5.com
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?
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
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