![Lernen Sie, wie man ein Handelssystem mit der Standardabweichung entwirft](https://c.mql5.com/2/49/learnhow_standard_deviation_600x314.jpg)
Lernen Sie, wie man ein Handelssystem mit der Standardabweichung entwirft
Einführung
Willkommen zu einem neuen Artikel in unserer Serie, in der wir durch diese Serie lernen, wie wir ein Handelssystem mit den beliebtesten technischen Indikatoren erstellen können. In diesem neuen Artikel werden wir ein neues Tool im Detail kennenlernen, das zur Verbesserung unseres Handels eingesetzt werden kann, und wir werden lernen, wie man ein Handelssystem auf der Grundlage des zugrunde liegenden Konzepts erstellt. Dieser neue Indikator ist die Standardabweichung. Wir werden diesen Indikator folgende Themen behandeln:
- Standardabweichung - Definition
- Standardabweichung - Strategie
- Standardabweichung - Blaupause der Strategie
- Standardabweichung - Handelssystem
- Schlussfolgerung
Im Abschnitt über die Definition der Standardabweichung erfahren wir genauer, was die Standardabweichung ist, was sie misst und wie wir sie manuell berechnen können, um das grundlegende Konzept dahinter kennenzulernen, und wenden dies dann auf ein Beispiel zur Berechnung des Standardabweichungswerts an. Danach werden wir zum nächsten Thema übergehen, der Standardabweichungsstrategie, um zu lernen, wie wir den Standardabweichungsindikator durch einfache Strategien, die auf dem Grundkonzept des Indikators basieren, nutzen können. Dann werden wir zum nächsten Thema, der Blaupause einer Strategie mit der Standardabweichung für ein Handelssystem dieser Strategie, da die Blaupause einer Schritt-für-Schritt-Anleitung die Ideen organisiert, um ohne Probleme ein Handelssystem zu schaffen. Danach werden wir zum interessantesten Thema in diesem Artikel übergehen, nämlich dem Standardabweichungs-Handelssystem, um ein Handelssystem für jede erwähnte Strategie zu erstellen, das im MetaTrader 5 verwendet werden kann, um automatisch Signale zu generieren.
Wir werden MetaTrader 5 und den MetaEditor verwenden, um MQL5 (MetaQuotes Language) Codes zu schreiben, um unser Handelssystem zu erstellen. Wenn Sie nicht wissen, wie Sie MetaEditor herunterladen und verwenden können, können Sie das Thema „Schreiben von MQL5 Code in MetaEditor“ in einem früheren Artikel lesen, um mehr darüber zu erfahren.
Ich empfehle Ihnen, das Gelernte selbst anzuwenden, um Ihr Verständnis zu vertiefen und weitere Erkenntnisse über das Thema oder verwandte Themen zu gewinnen, damit Sie den größten Nutzen aus den Informationen des Artikels ziehen können. Darüber hinaus müssen Sie jede Strategie selbst testen, bevor Sie sie auf Ihrem echten Konto anwenden, um sicherzustellen, dass sie für Sie nützlich ist, denn es gibt nichts, was für jeden Menschen geeignet ist.
Haftungsausschluss: Alle Informationen werden in der vorliegenden Form nur zu Informationszwecken bereitgestellt und sind nicht für Handelszwecke oder als Ratschläge gedacht. Die Informationen garantieren keinen Erfolg. Wenn Sie sich dafür entscheiden, diese Materialien auf einem Ihrer Handelskonten zu verwenden, tun Sie dies auf eigenes Risiko und Sie sind allein verantwortlich.
Beginnen wir mit unseren Themen, um unser neues Werkzeug kennenzulernen.
Standardabweichung - Definition
In diesem Thema werden wir den Indikator Standardabweichung genauer kennenlernen, indem wir ihn definieren, lernen, was er misst, und wie wir ihn manuell berechnen können, um das grundlegende Konzept dahinter zu verstehen. Dann werden wir diese Berechnung auf ein Beispiel anwenden.
Standardabweichung ist ein Begriff aus der Statistik. Dieser statistische Begriff misst die Streuung um den Mittelwert oder den Durchschnitt. Aber was ist Streuung? Ganz einfach, es ist die Differenz zwischen einem tatsächlichen Wert und dem Mittelwert oder dem Durchschnitt. je höher die Streuung, desto höher die Standardabweichung. Je geringer die Streuung, desto geringer ist die Standardabweichung. Der Indikator Standardabweichung misst die Volatilität.
Nun müssen wir lernen, wie wir die Standardabweichung berechnen können. Dies ist mit den folgenden Schritten leicht möglich:
1- Berechnen des Durchschnitt oder das Mittel des gewünschten Zeitraums.
2- Berechnen der Abweichung, indem jeder Schlusskurs von seinem Durchschnitt subtrahieren wird.
3- Quadrieren jeder der berechneten Abweichungen.
4- Addieren der quadrierten Abweichungen und dann die Division durch die Anzahl der Beobachtungen.
5- Berechnen der Standardabweichung, die gleich der Quadratwurzel aus dem Ergebnis von Schritt vier ist.
Im Folgenden wird diese Berechnung anhand eines Beispiels angewendet, um unser Verständnis zu vertiefen. Wenn wir die folgenden Daten eines Instruments haben.
# | Schlusskurs |
---|---|
1 | 1.05535 |
2 | 1.05829 |
3 | 1.0518. |
4 | 1.04411 |
5 | 1.04827 |
6 | 1.04261 |
7 | 1.04221 |
8 | 1.02656 |
9 | 1.01810 |
10 | 1.01587 |
11 | 1.01831 |
Schritt eins: Wir berechnen den gleitenden 10-Perioden-Durchschnitt und verwenden hier alle MA bis zum zehnten Wert den gleichen gleitenden Durchschnitt. Nach diesem Schritt ergibt sich also folgendes Ergebnis.
Schritt zwei. Berechnen der Abweichung. Im Folgenden wird das Ergebnis nach der Berechnung dargestellt.
Dritter Schritt: Berechnen der quadrierten Abweichung.
Vierter Schritt: Berechnen des 10-Perioden-Durchschnitts der quadrierten Abweichung.
Schritt fünf: Berechnen der Standardabweichung = Quadratwurzel des Ergebnisses von Schritt vier.
Durch die vorangegangenen Schritte haben wir, wie wir feststellen können, die Standardabweichung berechnet. Heutzutage haben wir großes Glück, da wir ihn nicht manuell berechnen müssen, da er ein integrierter Indikator in der MetaTrader 5 Handelsplattform ist. Alles, was wir tun müssen, ist, ihn aus den verfügbaren Indikatoren auf der Handelsplattform auszuwählen. Im Folgenden erfahren Sie, wie Sie das tun können.
Beim Öffnen der MetaTrader 5 Handelsplattform drücken wir auf die Registerkarte Einfügen --> Indikatoren --> Trend --> Standardabweichung.
Danach wird das folgende Fenster für die Parameter des Indikators angezeigt.
1 - Bestimmung des Zeitraums, den wir verwenden werden.
2 - Wert, um den die Indikatorlinie horizontalen verschoben werden soll, wenn wir das tun wollen.
3 - Auswahl des Typs des gleitenden Durchschnitts.
4 - Auswahl des Preistyps, der für die Berechnung verwendet werden soll.
5 - Bestimmen der Farbe der Indikatorlinie.
6 - Den Stil der Linie bestimmen.
7 - Bestimmung der Linienbreite.
Nachdem wir die gewünschten Parameter festgelegt haben, können wir den Indikator wie folgt in den Chart gestartet.
Wie in der vorherigen Abbildung zu sehen ist, wird die Standardabweichung gestartet und im unteren Fenster als Oszillationslinie auf der Grundlage des Standardabweichungswerts angezeigt.
In diesem Thema lernen wir den Indikator Standardabweichung genauer kennen. Wir erfahren, was er ist, was er misst und wie wir ihn manuell berechnen können, um das grundlegende Konzept dahinter zu verstehen und diese Berechnung auf ein Beispiel anzuwenden.
Standardabweichung - Strategie
In diesem Thema und nachdem wir den Indikator Standardabweichung im Detail und sein Hauptkonzept kennengelernt haben, werden wir lernen, wie man diesen Indikator Standardabweichung auf der Basis des ihm zugrunde liegenden Konzepts verwendet. Wir werden lernen, wie der Indikator Standardabweichung durch drei einfache Strategien verwendet werden kann. Die erste, der „Simple Std Dev - Volatility“, wird verwendet, um festzustellen, ob eine Volatilität vorliegt oder nicht. Für die zweite, der „Simple Std Dev - Std und MA“, werden wir sie zusammen mit dem gleitenden Durchschnitt verwenden, um Kauf- oder Verkaufssignale zu erhalten. Die dritte Methode, der „Simple Std Dev - Std, AVG, and MA“, wird zusammen mit dem gleitenden Durchschnitt verwendet, wenn eine hohe Volatilität festgestellt wird, um Kauf- oder Verkaufssignale zu erhalten.
- Strategie eins: Simple Std Dev - Volatility:
Auf der Grundlage dieser Strategie müssen wir die Volatilität auf der Grundlage des Vergleichs zwischen dem aktuellen Std Dev und dem Durchschnitt der fünf vorherigen Std-Werte messen. Wenn der aktuelle Std Dev größer ist als der Std Dev 5-Perioden-Durchschnitt, ist dies ein Signal für hohe Volatilität. Wenn der aktuelle Std Dev niedriger ist als der Std Dev 5-Perioden-Durchschnitt, handelt es sich um eine geringe Volatilität.
Aktueller Std > Std AVG --> hohe Volatilität
Aktueller Std < Std AVG --> geringe Volatilität
- Strategie zwei: Simple Std Dev - Std and MA:
Auf der Grundlage dieser Strategie müssen wir Kauf- und Verkaufssignale erhalten, die auf bestimmten Bedingungen basieren. Wenn der aktuelle Std Dev größer ist als der vorherige Std Dev und der Ask-Wert größer ist als der gleitende Durchschnitt, ist dies ein Kaufsignal. Wenn der aktuelle Std Dev größer ist als der vorherige Std Dev und der Bid-Wert unter dem gleitenden Durchschnitt liegt, ist dies ein Verkaufssignal.
Aktueller Std Dev > Vorherigem. Std Dev und Ask > MA --> Kaufsignal
Aktueller Std Dev > Vorherigem. Std und Bid < MA --> Verkaufssignal
- Strategie drei: Simple Std Dev - Std, Std AVG, and MA:
Auf der Grundlage dieser Strategie müssen wir Kauf- und Verkaufssignale auf der Basis anderer Bedingungen erhalten. Wenn der aktuelle Std Dev größer ist als der Std Dev Avg und der Ask größer ist als der gleitende Durchschnitt, ist dies ein Kaufsignal. Wenn der aktuelle Std Dev größer ist als der Std Dev Avg und der Bid unter dem gleitenden Durchschnitt liegt, ist dies ein Verkaufssignal.
Aktueller Std > Std Avg und Ask > MA --> Kaufsignal
Aktueller Std > Std Avg und Bid < Ma --> Verkaufssignal
In der vorangegangenen Strategie haben wir gelernt, wie man den Standardabweichungsindikator durch drei einfache Strategien verwendet, um die Volatilität zu messen und Kauf- und Verkaufssignale auf der Grundlage von zwei verschiedenen Bedingungen zu erhalten. Sie können auch versuchen, andere technische Indikatoren zu kombinieren, um auf der Grundlage Ihres Handelsplans und Ihrer Strategie mehr Einblicke in mehr als eine Perspektive des Finanzinstruments zu erhalten.
Standardabweichung - Blaupause der Strategie
In diesem Thema werden wir lernen, wie man einen Schritt-für-Schritt-Plan für jede Strategie entwirft, um uns zu helfen, ein Handelssystem zu erstellen, das auf jeder erwähnten Strategie basiert. Meiner Meinung nach ist dieser Schritt sehr wichtig, da er uns hilft, unsere Ideen so zu organisieren, dass wir unser Handelssystem reibungslos und einfach erstellen können. Deshalb werde ich jetzt einen Plan vorstellen, der dem Computer helfen kann, zu wissen, was wir genau tun müssen.
- Strategie eins: Simple Std Dev - Volatility:
Bei dieser Strategie muss das Handelssystem zwei Werte überprüfen und kontinuierlich einen Vergleich zwischen ihnen durchführen. Diese beiden Werte sind die aktuelle Standardabweichung und der durchschnittliche Standardabweichungswert der letzten fünf Werte. Danach müssen wir mit dem Handelssystem entscheiden, welches von beiden größer ist als das andere. Wenn die aktuelle Standardabweichung (Std Dev) größer ist als der Durchschnitt, muss ein Kommentar auf dem Chart erscheinen,
- Hohe Volatilität.
- Aktueller Standardabweichungswert.
- Std Dev 5-Perioden-Durchschnittswert.
Wenn die aktuelle Standardabweichung (Std Dev) niedriger ist als der Durchschnitt, muss ein Kommentar auf dem Diagramm erscheinen,
- Geringe Volatilität.
- Aktueller Standardabweichungswert.
- Std Dev 5-Perioden-Durchschnittswert.
- Strategie zwei: Simple Std Dev - Std and MA:
Bei dieser Strategie muss das Handelssystem vier Werte überprüfen und kontinuierlich einen Vergleich durchführen. Diese vier Werte sind aktueller Std Dev, vorheriger Std Dev, Ask und der gleitende Durchschnittswert. Nach der Überprüfung dieser Werte muss das Handelssystem eine Entscheidung treffen und auf dieser Grundlage ein geeignetes Signal anzeigen.
Wenn der aktuelle Std Dev größer ist als der vorherige Std Dev und der Ask-Wert größer ist als der gleitende Durchschnitt, muss das Handelssystem einen Kommentar auf dem Chart mit den folgenden Werten erzeugen:
- Kaufsignal
- Aktueller Standardabweichungswert.
- Vorheriger Wert von Std. Dev.
- Ask-Wert.
- Gleitender Durchschnittswert.
Wenn der aktuelle Std Dev größer ist als der vorherige Std Dev und der Bid-Wert niedriger ist als der gleitende Durchschnitt, muss das Handelssystem einen Kommentar auf dem Chart mit den folgenden Werten erzeugen:
- Verkaufssignal
- Aktueller Standardabweichungswert.
- Vorheriger Wert von Std. Dev.
- Bid-Wert
- Gleitender Durchschnittswert.
- Strategie drei: Simple Std Dev - Std, Avg, und MA:
Bei dieser Strategie muss das Handelssystem kontinuierlich vier Werte überprüfen, um auf der Grundlage eines Vergleichs zwischen diesen Werten zu entscheiden, welches Signal wir sehen müssen. Diese Werte sind aktueller Std Dev, Std Dev Avg, Ask und der gleitende Durchschnitt.
Wenn der aktuelle Std-Wert größer ist als Std Dev Avg und der Ask-Wert größer ist als der gleitende Durchschnitt, muss das Handelssystem ein Signal als Kommentar auf dem Chart mit den folgenden Werten erzeugen:
- Kaufsignal
- Aktueller Standardabweichungswert.
- Std Dev Durchschnittswert.
- Ask-Wert.
- Gleitender Durchschnittswert.
Wenn der aktuelle Std Dev größer als der Std Dev-Durchschnitt und der Bid niedriger als der gleitende Durchschnitt ist, muss das Handelssystem ein Signal als Kommentar auf dem Chart mit den folgenden Werten erzeugen:
- Verkaufssignal
- Aktueller Standardabweichungswert.
- Std Dev Durchschnittswert.
- Bid-Wert
- Gleitender Durchschnittswert.
Jetzt haben wir gelernt, eine Schritt-für-Schritt-Blaupause für jede Strategie zu entwerfen, um uns zu helfen, ein Handelssystem für sie durch organisierte Schritte zu erstellen.
Standardabweichung - Handelssystem
In diesem Thema lernen wir, wie man ein Handelssystem für jede erwähnte Strategie von MQL5 entwickelt, das auf MetaTrader 5 angewendet werden kann. Zunächst werden wir ein einfaches Handelssystem für die Standardabweichung entwerfen, das einen Kommentar auf dem gewünschten Chart mit dem Wert der Standardabweichung generieren kann, um dieses Handelssystem als Grundlage für die Entwicklung eines Handelssystems für jede Strategie zu verwenden.
- Erstellen eines Arrays von Std Dev vom Typ „double“ für die reellen Werte. „double“ ist einer der Gleitkommatypen, der zu den Datentypen gehört.
double StdDevArray[];
- Wir legen eine zeitliche Orientierung dieses Array fest für die aktuellen Daten und verwenden dazu die Funktion "ArraySetAsSeries", die einen booleschen Wert (true oder false) zurückgibt. Die Parameter der "ArraySetAsSeries" sind:
- Ein Array[]
- Flag
ArraySetAsSeries(StdDevArray,true);
- Erstellung einer Integer-Variable StdDevDef zur Definition der Standardabweichung mit Hilfe der Funktion "iStdDev", die das Handle des Indikators für die Standardabweichung zurückgibt. Die Parameter dieser Funktion sind:
- Symbol, um den Symbolnamen festzulegen, geben wir "_Symbol" an, das auf das aktuelle Diagramm angewendet wird.
- Zeitraum, um den Zeitrahmen festzulegen, geben wir "_Period" an, der auf die aktuellen Zeitrahmen angewendet wird.
- ma_period, um die Länge des gleitenden Durchschnitts festzulegen, wir setzen 20 als Standardwert.
- ma_shift, um die horizontale Verschiebung einzustellen, wenn Sie wollen, werden wir 0 einstellen.
- ma_method, um den Typ des gleitenden Durchschnitts zu bestimmen, wird der einfache gleitende Durchschnitt (MODE_SMA) verwendet.
- applied_price, um den zu verwendenden Preistyp zu bestimmen, wird der Schlusskurs (PRICE_CLOSE) verwendet.
int StdDevDef = iStdDev(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE);
- Kopieren der Preisdaten in das erstellte Array mit Hilfe der Funktion "CopyBuffer", die die Anzahl der kopierten Daten oder -1 im Falle eines Fehlers zurückgibt. Die Parameter dieser Funktion sind:
- indicator_handle wird der Indikator Definition "StdDevDef" angegeben.
- buffer_num, um die Nummer des Indikatorpuffers festzulegen, setzen wir 0.
- start_pos, um die Startposition festzulegen, setzen wir 0.
- count, um den zu kopierenden Betrag festzulegen, stellen wir 3 ein.
- buffer[], um das zu kopierende Ziel-Array zu bestimmen, legen wir "StdDevArray" fest.
CopyBuffer(StdDevDef,0,0,3,StdDevArray);
- Abruf des StdDev-Wertes mit der Funktion "NormalizeDouble" vom Typ double nach Erstellung einer double-Variablen "StdDevVal". Die Parameter des "Normalizedouble" sind:
- Wert, um die normalisierte Zahl zu bestimmen, geben wir "StdDevArray[0]" an.
- Zahl, um die Anzahl der Nachkommastellen zu bestimmen, wir verwenden 6.
double StdDevVal = NormalizeDouble(StdDevArray[0],6);
- Mit der Funktion "Kommentar" kann ein Kommentar zum Diagramm mit dem aktuellen StdDev-Wert angezeigt werden. Es gibt keinen Rückgabewert, aber es wird ein definierter Kommentar ausgegeben.
Comment("StdDev Value is",StdDevVal);
Nach dem Kompilieren dieses Codes werden wir feststellen, dass es keine Fehler oder Warnungen gibt. Dann finden wir den Experten dieses Handelssystems im Navigator-Fenster so wie im Folgenden:
Durch Ziehen und Ablegen auf dem gewünschten Chart erscheint das folgende Fenster des Handelssystems:
Nachdem Sie das Häkchen bei "Algo-Handel zulassen" gesetzt und auf "OK" gedrückt haben, wird der Experte dieses Handelssystems wie folgt an den Chart angehängt:
Wie wir in der rechten Ecke des vorherigen Bildes sehen können, läuft der Experte auf dem Chart.
Das folgende Bild ist ein Beispiel aus dem Test, das das generierte Signal nach diesem Handelssystem zeigt.
Das folgende Bild ist ein weiteres Beispiel, nachdem wir den Experten dieses Handelssystems angehängt haben, um automatisch Signale zu generieren. Gleichzeitig fügen wir den integrierten Standardabweichungsindikator ein, um sicherzustellen, dass die beiden StdDev-Werte gleich sind.
- Strategie eins: Simple Std Dev - Volatility:
Nun werden wir ein Handelssystem für die einfache Strategie Std Dev - Volatility erstellen. Im Folgenden finden Sie den vollständigen Code zur Erstellung eines Handelssystems auf der Grundlage dieser Strategie.
//+------------------------------------------------------------------+ //| Simple Std Dev - Volatility.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double StdDevArray[]; ArraySetAsSeries(StdDevArray,true); int StdDevDef = iStdDev(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE); CopyBuffer(StdDevDef,0,0,6,StdDevArray); double StdDevVal = NormalizeDouble(StdDevArray[0],6); double StdDevVal1 = NormalizeDouble(StdDevArray[1],6); double StdDevVal2 = NormalizeDouble(StdDevArray[2],6); double StdDevVal3 = NormalizeDouble(StdDevArray[3],6); double StdDevVal4 = NormalizeDouble(StdDevArray[4],6); double StdDevVal5 = NormalizeDouble(StdDevArray[5],6); double StdDevAVGVal = ((StdDevVal1+StdDevVal2+StdDevVal3+StdDevVal4+StdDevVal5)/5); if(StdDevVal>StdDevAVGVal) { Comment("High volatility","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal); } if(StdDevVal<StdDevAVGVal) { Comment("Low volatility","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal); } } //+------------------------------------------------------------------+
Unterschiede in diesem Code sind die gleichen wie die folgenden:
Wir definieren nicht nur den aktuellen Standardabweichungswert, sondern auch die vorherigen fünf Werte, indem wir dieselbe Funktion wie bei der Definition des aktuellen Wertes verwenden, aber eine andere Zahl in der normalisierten Zahl verwenden, um den gewünschten Wert zu erhalten.
double StdDevVal1 = NormalizeDouble(StdDevArray[1],6); double StdDevVal2 = NormalizeDouble(StdDevArray[2],6); double StdDevVal3 = NormalizeDouble(StdDevArray[3],6); double StdDevVal4 = NormalizeDouble(StdDevArray[4],6); double StdDevVal5 = NormalizeDouble(StdDevArray[5],6);
Berechnung des Durchschnitts der letzten fünf Werte.
double StdDevAVGVal = ((StdDevVal1+StdDevVal2+StdDevVal3+StdDevVal4+StdDevVal5)/5);
Bedingungen der Strategie:
im Falle einer hohen Volatilität,
if(StdDevVal>StdDevAVGVal) { Comment("High volatility","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal); }
im Falle einer geringen Volatilität,
if(StdDevVal<StdDevAVGVal) { Comment("Low volatility","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal); }
Nachdem wir diesen Code kompiliert haben, können wir ihn im Navigator von MetaTrader 5 wie folgt finden:
Durch Ziehen und Ablegen auf dem gewünschten Chart, können wir das Fenster dieses Handelssystems wie folgt finden:
Nachdem Sie auf "OK" geklickt haben, finden Sie den Experten auf dem Chart, der wie folgt aussieht, um mit der Erzeugung von Signalen gemäß dieser Strategie zu beginnen:
Wie wir sehen können, ist der Experte des einfachen Std Dev - Volatility Handelssystems genauso angebracht, wie wir es in der oberen rechten Ecke des vorherigen Bildes sehen können.
Wir können Beispiele für generierte Signale nach diesem Handelssystem aus dem Testen der gleichen wie die folgenden Bilder zu sehen.
Im Falle einer hohen Volatilität nach dieser Strategie,
Wie in der vorherigen Abbildung zu sehen ist, befinden sich in der oberen linken Ecke des Charts drei Zeilen mit Kommentaren:
- Erklärung zur hohen Volatilität.
- Aktueller Standardabweichungswert.
- Durchschnittswert der letzten fünf Std. Dev.
Im Falle einer niedrigen Volatilität nach dieser Strategie,
Wie in der vorherigen Abbildung zu sehen ist, befinden sich in der oberen linken Ecke des Diagramms drei weitere Zeilen mit Kommentaren, die uns informieren:
- Die Volatilität ist gering.
- Der aktuelle Standardabweichungswert.
- Der Mittelwert der fünf vorangegangenen Std. Dev-Werte.
- Strategie zwei: Simple Std Dev - Std and MA:
Der folgende Code zeigt, wie man ein Handelssystem für diese einfache Std Dev - Std und MA Strategie erstellt:
//+------------------------------------------------------------------+ //| Simple Std Dev - Std & MA.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double StdDevArray[]; double PArray[]; ArraySetAsSeries(StdDevArray,true); ArraySetAsSeries(PArray,true); int StdDevDef = iStdDev(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE); int MADef = iMA(_Symbol,_Period,10,0,MODE_SMA,PRICE_CLOSE); CopyBuffer(StdDevDef,0,0,3,StdDevArray); CopyBuffer(MADef,0,0,10,PArray); double StdDevVal = NormalizeDouble(StdDevArray[0],6); double StdDevVal1 = NormalizeDouble(StdDevArray[1],6); double MAValue = NormalizeDouble(PArray[0],6); if(StdDevVal>StdDevVal1&&Ask>MAValue) { Comment("Buy signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Previous Std Dev value is ",StdDevVal1,"\n", "Ask value is ",Ask,"\n", "MA value is ",MAValue); } if(StdDevVal>StdDevVal1&&Bid<MAValue) { Comment("Sell signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Previous Std Dev value is ",StdDevVal1,"\n", "Bid value is ",Bid,"\n", "MA value is ",MAValue); } } //+------------------------------------------------------------------+
Unterschiede in diesem Code sind die gleichen wie die folgenden:
Zuweisen von Ask- und Bid-Werten den erstellten Double-Variablen für alle, Verwenden der Funktion "NormalizeDouble", um einen Wert vom Typ Double zurückzugeben, dann Verwenden von "SymbolInfoDouble" als normalisierte Zahl, um die entsprechende Eigenschaft eines bestimmten Symbols zurückzugeben. Die Parameter des "SymbolInfoDouble" sind:
- Name des Symbols, wir verwenden "_Symbol", das das aktuelle Symbolchart verwendet.
- prop_id, um die Eigenschaft zu definieren, die hier "SYMBOL_ASK" lautet.
double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits);
Schaffung eines weiteren Arrays mit Preisen.
double PArray[];
Festlegen der Zugriffsrichtung dieses Arrays anhand der aktuellen Daten.
ArraySetAsSeries(PArray,true);
Definition des gleitenden Durchschnitts mit Hilfe der Funktion "iMA" nach Erstellung einer Integer-Variablen der MADef.
int MADef = iMA(_Symbol,_Period,10,0,MODE_SMA,PRICE_CLOSE);
Kopieren von Preisdaten in dieses erstellte Array.
CopyBuffer(MADef,0,0,10,PArray);
Festlegen des vorherigen Wertes von Std Dev.
double StdDevVal1 = NormalizeDouble(StdDevArray[1],6);
Festlegen des Wertes des gleitenden Durchschnitts.
double MAValue = NormalizeDouble(PArray[0],6);
Bedingungen der Strategie:
im Falle eines Kaufsignals:
if(StdDevVal>StdDevVal1&&Ask>MAValue) { Comment("Buy signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Previous Std Dev value is ",StdDevVal1,"\n", "Ask value is ",Ask,"\n", "MA value is ",MAValue); }
im Falle eines Verkaufssignals:
if(StdDevVal>StdDevVal1&&Bid<MAValue) { Comment("Sell signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Previous Std Dev value is ",StdDevVal1,"\n", "Bid value is ",Bid,"\n", "MA value is ",MAValue); }
Nachdem wir diesen Code kompiliert haben, können wir ihn im Navigator von MetaTrader 5 wie folgt finden:
Durch einen Doppelklick können wir das folgende Fenster dieses Expertenberaters finden, das dem folgenden Bild entspricht:
Nachdem Sie ein Häkchen bei "Algo-Trading zulassen" gesetzt und dann auf "OK" gedrückt haben, wird der Experte wie folgt auf dem Chart gestartet.
Wie wir in der oberen rechten Ecke des Charts sehen können, ist der Expert Advisor angehängt, dann können wir Beispiele aus dem Testen nach dieser Strategie sehen, wie auch die folgenden Beispiele.
Im Falle des Kaufsignals:
Wie im vorangegangenen Beispiel des Kaufsignals zu sehen ist, gibt es fünf Zeilen mit Kommentaren in der oberen linken Ecke des Diagramms:
- Kaufsignal
- Aktueller Standardabweichungswert
- Vorheriger Std. Dev-Wert
- Ask-Wert
- Ma-Wert
Im Falle eines Verkaufssignals:
Wie im vorangegangenen Beispiel des Verkaufssignals zu sehen ist, gibt es fünf Zeilen mit Kommentaren in der oberen linken Ecke des Diagramms:
- Verkaufssignal
- Aktueller Standardabweichungswert
- Vorheriger Std. Dev-Wert
- Bid-Preis
- Ma-Wert
In den vorangegangenen Kapiteln haben wir gelernt, wie man ein Handelssystem erstellt, das auf der Grundlage der Standardabweichung und des gleitenden Durchschnitts Kauf- oder Verkaufssignale erzeugt.
- Strategie drei: Simple Std Dev - Std Dev, Std AVG und MA:
Das Folgende ist der vollständige Code zum Erstellen eines Handelssystems für diese Strategie:
//+------------------------------------------------------------------+ //| Simple Std Dev - Std Dev & AVG Std Dev & MA.mq5 | //| Copyright 2022, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" //+------------------------------------------------------------------+ void OnTick() { double Ask = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits); double Bid = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits); double StdDevArray[]; double PArray[]; ArraySetAsSeries(StdDevArray,true); ArraySetAsSeries(PArray,true); int StdDevDef = iStdDev(_Symbol,_Period,20,0,MODE_SMA,PRICE_CLOSE); int MADef = iMA(_Symbol,_Period,10,0,MODE_SMA,PRICE_CLOSE); CopyBuffer(StdDevDef,0,0,6,StdDevArray); CopyBuffer(MADef,0,0,10,PArray); double StdDevVal = NormalizeDouble(StdDevArray[0],6); double StdDevVal1 = NormalizeDouble(StdDevArray[1],6); double StdDevVal2 = NormalizeDouble(StdDevArray[2],6); double StdDevVal3 = NormalizeDouble(StdDevArray[3],6); double StdDevVal4 = NormalizeDouble(StdDevArray[4],6); double StdDevVal5 = NormalizeDouble(StdDevArray[5],6); double StdDevAVGVal = ((StdDevVal1+StdDevVal2+StdDevVal3+StdDevVal4+StdDevVal5)/5); double MAValue = NormalizeDouble(PArray[0],6); if(StdDevVal>StdDevAVGVal&&Ask>MAValue) { Comment("Buy signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal,"\n", "Ask value is ",Ask,"\n", "MA value is ",MAValue); } if(StdDevVal>StdDevAVGVal&&Bid<MAValue) { Comment("Sell signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal,"\n", "Bid value is ",Bid,"\n", "MA value is ",MAValue); } } //+------------------------------------------------------------------+
Die Unterschiede in diesem Code sind:
Bedingungen der Strategie,
Im Falle des Kaufsignals:
if(StdDevVal>StdDevAVGVal&&Ask>MAValue) { Comment("Buy signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal,"\n", "Ask value is ",Ask,"\n", "MA value is ",MAValue); }
im Falle des Verkaufssignals:
if(StdDevVal>StdDevAVGVal&&Bid<MAValue) { Comment("Sell signal","\n", "Current Std Dev value is ",StdDevVal,"\n", "Std Dev Avg value is ",StdDevAVGVal,"\n", "Bid value is ",Bid,"\n", "MA value is ",MAValue); }
Nachdem wir diesen Code kompiliert haben, können wir ihn im Navigator von MetaTrader 5 wie folgt finden:
Nach einem Doppelklick oder dem Ziehen und Ablegen auf dem Chart wird das Fenster wie folgt angezeigt:
Nachdem Sie auf "OK" geklickt haben, sehen Sie, dass der Experte an das Diagramm angehängt ist, wie in der folgenden Abbildung dargestellt.
Wie wir in der oberen rechten Ecke des Chart sehen können, läuft der Experte.
Nun müssen wir Beispiele für generierte Signale auf der Grundlage dieses Handelssystems sehen, und wir können das durch die folgenden Beispiele sehen.
Im Falle des Kaufsignals:
Wie wir im vorangegangenen Beispiel in der oberen linken Ecke des Charts sehen können, hat dieses Handelssystem fünf Kommentarzeilen erzeugt:
- Kaufsignal
- Aktueller Standardabweichungswert
- Std Dev Avg Wert
- Ask-Wert
- Ma-Wert
Im Falle des Verkaufssignals:
Wie wir anhand des vorherigen Beispiels eines Verkaufssignals sehen können, gibt es fünf Kommentarzeilen, die auf diesem Handelssystem basieren:
- Verkaufssignal
- Aktueller Standardabweichungswert
- Std Dev Avg Wert
- Bid-Preis
- Ma-Wert
In den vorangegangenen Kapiteln haben wir gelernt, wie man auf der Grundlage der genannten Strategien ein Handelssystem erstellt, das zur Erzeugung automatischer Signale verwendet werden kann.
Schlussfolgerung
Jetzt und nach den vorangegangenen Themen sind wir der Meinung, dass wir mehr über den Indikator Standardabweichung gelernt haben, da wir erfahren haben, was er ist, was er uns informiert oder was er misst, und wie wir ihn manuell berechnen können, um unser Verständnis des Indikators durch die Anwendung auf ein Beispiel zu vertiefen. Nachdem wir diesen Indikator sehr gut verstanden haben, haben wir gelernt, wie wir ihn durch einfache Strategien, die auf dem Grundkonzept des Indikators basieren, nutzen können. Wir lernen, wie man ihn als Volatilitätsmessung durch die einfache Std Dev - Volatilitätsstrategie verwendet. wie man ihn verwendet, um Kauf- oder Verkaufssignale basierend auf zwei verschiedenen Bedingungen durch die einfache Std Dev - Std und MA Strategie und die Std, Std AVG, MA Strategie zu erhalten. Danach lernten wir, für jede Strategie einen Schritt-für-Schritt-Plan zu entwerfen, der uns hilft, ein Handelssystem für jede dieser Strategien reibungslos und einfach zu erstellen. Danach haben wir ein Handelssystem von MQL5 erstellt, das auf jeder erwähnten Strategie basiert und vom MetaTrader 5 verwendet wird, um automatisch Signale zu generieren, die uns helfen, unsere Zeit zu sparen, genaue Signale auf der Grundlage spezifischer Bedingungen zu erhalten, schädliche Emotionen und Subjektivität zu vermeiden, indem wir klare Signale erhalten, und das sind die Vorteile der Programmierung.
Es wird nützlich sein, wenn Sie versuchen, diesen Indikator mit anderen technischen Indikatoren zu kombinieren, um mehr Einblicke zu erhalten, um mehr als eine Perspektive zu sehen, da dies eines der Merkmale der technischen Analyse ist, wenn Sie ein Handelssystem entwerfen, das verwendet werden kann, um Ihnen klare Einblicke über die wichtigsten Faktoren des Finanzinstruments zu geben.
Ich muss noch einmal bestätigen, dass Sie jede Strategie selbst testen müssen, bevor Sie sie verwenden, da das Hauptziel hier nur die Bildung ist, um sicherzustellen, dass sie für Sie nützlich oder geeignet ist. Ich hoffe, dass dieser Artikel für Sie nützlich ist, indem Sie das Thema verstehen und neue Ideen erhalten, die für die Verbesserung Ihres Handels nützlich sein können.
Wenn Sie diesen Artikel nützlich fanden und ähnliche Artikel lesen möchten, können Sie meine vorherigen Artikel in dieser Serie lesen, um zu erfahren, wie Sie ein Handelssystem auf der Grundlage beliebter technischer Indikatoren entwerfen.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/en/articles/11185
![Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 16): Zugang zu Daten im Internet (II)](https://c.mql5.com/2/46/development__7.png)
![DoEasy. Steuerung (Teil 7): Steuerung der Text Label](https://c.mql5.com/2/47/MQL5-avatar-doeasy-library-2__1.png)
![Neuronale Netze leicht gemacht (Teil 16): Praktische Anwendung des Clustering](https://c.mql5.com/2/48/Neural_networks_made_easy_016.png)
![Neuronale Netze leicht gemacht (Teil 15): Datenclustering mit MQL5](https://c.mql5.com/2/48/Neural_networks_made_easy_015.png)
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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.