Mit MQL5 und Metatrader5 können Sie Ihren eigenen Trading Robot 24/7 exakt nach Ihren eigenen Regeln traden lassen. Lernen Sie MQL5 oder starten Sie mit vorprogrammierten Modulen die sich exakt an Ihre eigenen Bedürfnisse anpassen lassen.
MQL5 Tutorial - Automatisch traden mit Metatrader5
In diesem Video geht es um das Schließen von allen geöffneten Positionen. Hier ist das beispielsweise passiert. Es handelt sich um einen einfachen Expert Advisor, der immer dann alle Positionen schließt, wenn wir uns hier mit der Equity oberhalb der Balance, also der Bruttobilanz befinden. Das bedeutet, sobald dieser Wert hier über 300016 Euro steigt, werden hier oben die Positionen geschlossen. Wie können wir jetzt einen Expert Advisor in MQL5 erstellen, der in der Lage ist, diese Testpositionen hier alle auf einmal zu schließen? Um das zu tun, klicken Sie bitte im MetaTrader5 hier oben auf diesen kleinen Button oder drücken die F4-Taste. Das ruft dann hier den Meta Editor auf, und hier klicken wir auf Datei, neu, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen Simpler Position Close EA, klicke auf weiter, weiter, und fertigstellen. Und jetzt kann alles oberhalb der On-Tick-Funktion hier entfernt werden. Das gilt auch für die zwei Kommentarzeilen. Im ersten Schritt müssen wir die Trading-Bibliothek mit den vereinfachten Funktionen importieren. Das geht mittels Include-Befehl, und wir benötigen die in MQL5 enthaltene Datei Trade.MQH. Sie enthält vereinfachte Handelsfunktionen, und wir erstellen uns jetzt eine Instanz von der Klasse CTrade, die wird den Namen Trade bekommen. In MQL5 geht das so, und in unserer On-Tick-Funktion, die bei jeder Preisänderung aufgerufen wird, holen wir uns zunächst einmal den Ask-Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen die Konstante Symbol_Ask, um hier den Ask-Preis zu ermitteln. Und mit NormalizeDouble und _Digits sorgen wir dafür, dass wir je nach Währungspaar entweder drei oder fünf Nachkommastellen berechnen, denn wie Sie sehen, gibt es da durchaus Unterschiede. Im nächsten Schritt ermitteln wir den Bruttokontostand. Der Bruttokontostand ist das, was Sie hier vorne als ersten Wert im Strategietester sehen. Man bezeichnet ihn auch als AccountBalance, und der wird ermittelt über die Funktion AccountInfoDouble in Verbindung mit der Konstante Account_Balance. Neben der Account Balance gibt es auch noch die sogenannte Account Equity. Die Equity ist der Nettokontostand. Die Ermittlung ist ziemlich gleich, aber in diesem Fall nutzen wir die Konstante Account_Equity. Die Equity ist dieser Wert hier, und sie errechnet sich aus dem Bruttoguthaben abzüglich der Kosten für die offenen Positionen. Und damit wir etwas haben, was wir gleichzeitig schließen können, öffnen wir jetzt einige Testpositionen. Immer, wenn die Funktion PositionsTotal einen Rückgabewert kleiner fünf hat, dann nutzen wir die hier oben erstellte Trade-Instanz, um mit Trade.Buy zu kaufen. Ich ändere das hier mal auf zehn Micro Lot, das hier ist die Positionsgröße. Wir kaufen auf dem aktuellen Chart zum Ask-Preis. Wenn Sie einen Doppelklick hier auf ein Währungspaar durchführen, dann sehen Sie, dass der Ask-Preis, diese rote Linie, immer über dem Bid-Preis, der blauen Linie, liegt. Das hier ist das, was wir zahlen, wenn wir etwas kaufen, und das ist das, was wir erhalten, wenn wir etwas verkaufen. Da wir in diesem Fall kaufen, müssen wir zum aktuellen Ask-Preis kaufen. Wir haben hier keinen Stop Loss definiert. Unser Profitziel wird 100 Punkte über dem aktuellen Ask-Preis liegen, und da wir keinen Kommentar verwenden, nutzen wir hier die Konstante null. Und immer, wenn wir im Profit sind, wenn also unser Nettoguthaben das Bruttoguthaben übersteigt, dann möchten wir eine Funktion aufrufen mit dem Namen SchliesseallePositionen. Die gibt es aber noch gar nicht, also schreiben wir die jetzt. Und diese Funktion werden wir jetzt erstellen.
In diesem Video wollen wir uns einmal diesen Oszillator hier anschauen. Das ist der Commodity Channel Index. Der wird normalerweise als Filter genutzt. Wir wollen jetzt aber mal schauen, wie man den in MQL5 als Signal programmieren kann. Um das zu tun, klicken Sie bitte im Metaeditor bitte auf dieses kleine Symbol hier oben oder drücken Sie die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerCommodityChannelIndexEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Und wir entfernen auch die zwei Kommentarzeilen. Wie so oft starten wir hier mit einem include Statement für die Datei Trade.mqh. Danach erstellen wir eine Instanz von der Klasse CTrade. Die bekommt den Namen trade. Und wir werden sie verwenden, um Positionen zu eröffnen. In der OnTick Funktion ermitteln wir zunächst den Ask Preise. Das übernimmt die Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Mit SYMBOL_ASK, alles in Großbuchstaben bitte, lässt sich hier der Ask Preis ermitteln. Und zusätzlich nutze ich noch NormalizeDouble und _Digits, um die richtige Anzahl von Nachkommastellen zu ermitteln. Das können je nach Währungspaar drei oder fünf Nachkommastellen sein. Das gleiche wiederholen wir jetzt nochmal für den Bid Preis. Hier unterscheidet der Name der Variable und der Parameter hier heißt SIMBOL_BID. Ansonsten sind diese beiden Zeilen nahezu identisch. Mit MqlRates erstellen wir uns ein Array für die Preisinformationen. Das wird im Anschluss mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit CopyRates füllen wir unser Preis Array mit Preisdaten für drei Kerzen. Dieser Ausdruck für das aktuelle Währungspaar kann auch so geschrieben werden. Seit einiger Zeit wurde die Sprache entsprechend angepasst. Wenn man das hier mal markiert und die F1 Taste drückt, dann wird das in der Hilfe hier auch so beschrieben. Im nächsten Schritt erstellen wir uns eine leere Variable mit dem Namen signal. Die ist vom Typ string, hat hier aber noch keinen Wert. Um den zu ermitteln erstellen wir uns ein weiteres Array für den Expert Advisor. Und mit der eingebauten MQL5 Funktion iCCI können wir jetzt für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit den Commodity Channel Index für 14 Kerzen aufgrund der Schlusskurse berechnen. Die 14 taucht auch hier in Klammern auf. Und wenn man einmal mit der rechten Maustaste auf den Oszillator klickt und Eigenschaften auswählt, dann sieht man, dass das hier die Standardwerte sind. Auch dieses Array sortieren wir von der aktuellen Kerze an abwärts. Und im Anschluss nutzen wie CopyBuffer, um anhand der Definition, die wir hier oben getroffen haben, für Buffer null, das ist diese Linie hier, von der aktuellen Kerze null an für drei Kerzen unser Array mit Daten zu füllen. Und das ermöglicht es uns, den aktuellen Wert für den Commodity Channel Index zu berechnen, indem wir auf Kerze null in unserem Array zugreifen. Wenn sich der Wert oberhalb der Einhunderter-Linie befindet, das wäre hier die obere gestrichelte Linie, dann möchten wir gerne verkaufen. Darum weisen wir den Wert Verkaufen unsere signal Variable hier zu. Im umgekehrten Fall, wenn der Wert kleiner ist und sich unter der unteren gestrichelten Linie befindet, das wäre hier diese minus einhundert Linie, dann möchten wir gerne kaufen und weisen diesen Wert der signal Variable zu. Und wenn unser signal auf Verkaufen steht und die Funktion PositionsTo...
Das hier ist der sogenannte Bulls Power Indikator. Es handelt sich hierbei einen Oszillator, der anzeigen soll, wie stark die Bullen sind. Man sagt ja, dass im Trading jeden Tag die Bullen gegen die Bären kämpfen und bei maximalen Ausschlägen kann man davon ausgehen, dass hier nach den höchsten Werten der Preis erst mal in den Keller geht. Im Umkehrschluss, wenn diese Linie hier überschritten wird, dann geht es in der Regel erst mal aufwärts. Dieser Oszillator hier wurde erstellt von einem professionellen Trader mit dem Namen Alexander Elder. Er sagt hier, dass ein fallender Wert über null ein Signal zum Verkauf ist. Der Oszillator wird auf 13 Kerzen berechnet. Man nutzt einen exponentiellen Moving Average und es wird empfohlen, den Bulls Power Indikator zusammen mit einem anderen Trend Indikator, wie zum Beispiel den Moving Average, zu nutzen. Wie also können wir jetzt für diesen diesen Bulls Power Indikator einen ExpertAdvisor in MQL5 erstellen? Um das zu tun, klicken wir hier im MetaTrader zunächst auf diesen kleinen Knopf hier oben oder drücken die F4-Taste. Das ruft hier den Metaeditor auf und hier klicken wir auf „Datei neu, „ExpertAdvisor von Vorlage, „Weiter, vergeben hier den Namen „Simple Bulls Power EA, klicken auf „Weiter, „Weiter, „Fertigstellen und löschen alles oberhalb dieser OnTick-Funktion und die beiden Kommentarzeilen. Und im ersten Schritt erstellen wir, wie so oft, ein Array für unsere Preisdaten vom Typ „Double und vergeben den Namen „My Price Array. Danach definieren wir die Eigenschaften für den Bulls Power EA, indem wir die in MQL5 eingebaute Funktion „i Bulls Power nutzen, und zwar für das aktuelle Währungspaar auf dem Chart und die dort eingestellte Zeiteinheit, zum Beispiel das Minuten-Chart oder das 60-Minuten-Chart. Und die Berechnung wird auf die letzten 13 Kerzen erfolgen, denn das ist der Zeitraum, der von Herrn Elder definiert wurde. Und im nächsten Schritt sortieren wir die Preise wieder abwärts von der aktuellen Kerze an, indem wir die Funktion „Array Set as Series nutzen. Das Ganze machen wir mit unserem Price-Array, das wir hier oben definiert haben. So, jetzt füllen wir Wir haben hier unseren Expert-Advisor noch mit Daten. Dazu nutzen wir hier die Definition aus dieser Zeile, die Funktion „Copy Buffer. Diese Null hier steht für den Indikator. Diese Null hier beschreibt die aktuelle Kerze und die drei bedeutet, dass wir die Preise von der aktuellen Kerze für drei Kerzen kopieren möchten und danach speichern wir das Resultat in unserem Price Array. Und aus diesem Price-Array hier holen wir uns jetzt aus der Kerze 0 den aktuellen Bulls Power-Wert und wir machen das mit einer Float-Variable. Normalerweise würde das hier eine Double-Variable sein. Das sind mir aber zu viele Nachkommastellen und außerdem braucht die Float-Variable gegenüber der Double-Variable nur 4 Byte statt 8 Byte im Speicher. In einem letzten Schritt lassen wir uns jetzt auf dem Chart noch unseren Wert und den Text Bulls Power-Wert ausgeben. Das machen wir mit der Comment-Funktion und nach diesem Text wird der Wert ausgegeben, den wir in der Zeile hier ermittelt haben. Kompilieren wir das Ganze, dann bekommen wir hier unten die Warnung, es gibt einen möglichen Datenverlust, weil wir hier einen Float statt einen Double-Wert berechnen. Trotzdem war der Compiler-Vorgang mit null Fehlern erfolgreich. Also klicken wir hier oben auf diesen kleinen Knopf oder drücken die F4-Taste, zurückzuwechseln in den MetaTrader. Im MetaTrader selbst klicken wir auf „Ansicht, „Strategietester oder drücken die Steuerung und die R-Taste. Das ruft dann hier unten den „Strategietester auf und hier wählen wir d...
Einführung in den Average True Range Indikator (00:00 – 00:19) Einführung in den Average True Range (ATR) Indikator, der für die Analyse der Marktvolatilität verwendet wird und aus einer einzigen Linie besteht, die auf 14 Kerzen basiert. Analyse des Average True Range Indikators (00:19 – 01:04) Analyse des ATR Indikators anhand von Chartbeispielen, die zeigen, wie der Indikator starke oder schwache Kursbewegungen anzeigt. Erstellung eines Expert Advisors für den ATR Indikator (01:04 – 03:06) Anleitung zur Erstellung eines Expert Advisors im MetaEditor, der den ATR Indikator berechnet, inklusive der Einrichtung des MetaEditors und der Definition des Arrays und der Indikator-Eigenschaften. Berechnung und Ausgabe des ATR Werts (03:06 – 03:46) Schritt-für-Schritt-Anleitung zur Berechnung des ATR Werts und zur Ausgabe dieses Werts auf dem Chart. Kompilieren und Testen des Expert Advisors im MetaTrader (03:46 – 04:23) Anleitung zum Kompilieren des Expert Advisors und zum Testen im MetaTrader mit dem Strategie-Tester. Demonstration des Expert Advisors im MetaTrader (04:23 – 05:38) Demonstration des Expert Advisors im MetaTrader, Anzeige des ATR Werts und Interpretation der Signale, inklusive der Verbesserung des Indikators durch Anpassung der Kerzenanzahl. Zusammenfassung und Anwendungsmöglichkeiten (05:38 – 05:49) Zusammenfassung des Gelernten über den ATR Indikator und Anleitung zur Programmierung des Indikators in einem Expert Advisor in MQL5. Diesmal sehen wir uns den Average True Range Indikator an der auch mit dem MetaTrader 5 ausgeliefert wird. Das ist ein sehr einfacher Indikator der aus einer einzigen Linie besteht. Er wird rückgerechnet auf 14 Kerzen und vom Prinzip geht es darum, dass dieser Indikator anzeigen soll ob wir gerade sehr schwache oder sehr starke Kursbewegungen haben. Sobald diese Linie hier unten weit unten landet, bekommen wir hier oben den Text schwacher Average True Range Wert angezeigt und die Theorie ist, dass nach sehr kleinen Kerzen und wenig Bewegung dieser Indikator wieder nach oben geht und in dem Moment wo wir hier sehr große Kerzen sehen und die Volatilität steigt, zeigt uns hier oben unser ExpertAdvisor „STARKER AverageTrueRangeWert“ an und der Wert hinter diesem Text sollte immer übereinstimmen mit dem Wert aus dem Indikator hier unten. Das ist z.b nützlich für Systeme bei denen man sich in schwachen Phasen raushalten möchte. Für viele Strategien ist es einfach nicht sinnvoll in einen Seitwärts-Markt einzusteigen, also wartet man ab bis sich der Markt etwas stärker bewegt. Wie kann man jetzt für den AverageTrueRange Indikator einen ExpertAdvisor erstellen? Dazu klicken wir hier oben im MetaTrader auf dieses kleine Symbol oder drücken die F4 Taste. Das ruft dann den MetaEditor auf und hier gehen wir auf Datei, neu, ExpertAdvisor von Vorlage. Klicken auf Weiter und vergeben den Namen „SimplerAverageTrueRangeEA“, klicken noch mal auf weiter, weiter, fertigstellen und löschen jetzt alles oberhalb der „OnTick“ Funktion. Auch die beiden Kommentarzeilen hier können verschwinden. Das Erste was wir jetzt brauchen ist ein „Array“ für Preis Daten. Das ist vom Typ „double“ und trägt den Namen“ PreisArray“. Im nächsten Schritt nutzen wir die eingebaute mql5 Funktion „iATR“ für das aktuell auf dem Chart angezeigte Währungspaar und die für das Chart ausgewählt Periode wie z.b. das Minuten Chart und wir wollen unser Ergebnis berechnen aufgrund der letzten 14 Kerzen. Der Grund dafür ist, dass der Average True Range Indikator von „J. Welles Wilder, Jr“ für diese 14 Kerzen definiert wurde. Wenn man übrigens bei Wikipedia auf den Namen klickt,
Dieses farbenfrohe Lichterspiel hier im Hintergrund ist der Market Facilitation Index. Auch der ist im MetaTrader 5 enthalten, und in diesem Video möchten wir uns einmal anschauen, wie man den BWMFI-Wert hier auf dem Chart ausgeben kann. Falls Sie sich fragen, was diese unterschiedlich gefärbten Balken hier bedeuten: Wikipedia bietet hier in englischer Sprache für den Market Facilitation Index die Erklärungen für die vier unterschiedlichen Darstellungen, die es gibt. Grundsätzlich geht es darum, eine Verbindung zwischen dem Indikator und dem Marktvolumen herzustellen. Ich selbst bin bei der Signalwirkung von diesem Indikator eher skeptisch, aber wir wollen uns jetzt einmal anschauen, wie man den BWMFI-Wert von Bill Williams in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte hier oben auf diesen kleinen Button im MetaTrader, und jetzt sollten Sie den Meta-Editor sehen. Und hier wählen wir „Datei/ Neu/ Expert Advisor (Vorlage)/ Weiter“. Ich vergebe hier einmal den Namen „SimplerBWMFI“, klicke auf „Weiter/ Weiter/ Fertigstellen“. Und jetzt können Sie alles oberhalb der „onTick“-Funktion entfernen und auch diese beiden Kommentarzeilen löschen. Innerhalb der „onTick“-Funktion erstellen wir uns zunächst einmal ein Array für den Expert Advisor. Das ist vom Typ „Double“ und bekommt den Namen „BWMFIArray“, das steht für „Bill Williams Market Facilitation Index“. Danach definieren wir den Expert Advisor, indem wir die eingebaute MQL5-Funktion iBWMFI nutzen. Die benötigt als Parameter das aktuell auf dem Chart ausgewählte Währungspaar, die auf dem Chart eingestellte Zeiteinheit, und als 3. Parameter wird das Tick-Volumen übergeben. Denn wenn man sich hier einmal die Eigenschaften mit der rechten Maustaste anzeigen lässt, dann sieht man hier unten, dass als Standardwert-Volumen „Tick“ eingestellt ist. Im Anschluss sortieren wir unser Array von der aktuellen Kerze abwärts. Das kann die Funktion „ArraySetAsSeries“ übernehmen, die ebenfalls in MQL5 eingebaut ist. Die sortiert unser Array, welches wir hier oben erstellt haben, von der aktuellen Kerze 0 –das ist diese Kerze- abwärts für 3 Kerzen. Und danach können wir mit „CopyBuffer“ unser Array hier mit Daten füllen. Wir möchten das gerne anhand der von uns getroffenen Definition aus dieser Zeile hier machen, für jeweils einen Buffer oder eine Linie, darum nutzen wir hier den Wert 0. Wir brauchen von der aktuellen Kerze für 3 Kerzen die Daten. Da die aktuelle Kerze den Index 0 hat, nutzen wir hier die 0, und diese 3 sorgt dafür, dass wir auch für die nächsten 2 Kerzen Daten erhalten. Und alle diese Daten möchten wir im Array speichern, darum geben wir als letzten Parameter hier unser BWMFIArray an. Um den aktuellen Wert berechnen zu können, greifen wir auf die Kerze 0, also auf die aktuelle Kerze in unserem BWMFIArray, zu und weisen das Ergebnis der Variable „BWMFIWert“ zu. Die ist vom Typ „Double“, kann also Dezimalzahlen mit Nachkommastellen verarbeiten. Fehlt noch die Ausgabe auf dem Chart, und das übernimmt für uns die MQL5-Funktion „Comment“. Die wird uns den Text „BWMFIWert“, gefolgt von dem hier berechneten Wert ausgeben. Das war's auch schon. Sie können jetzt hier oben auf „Kompilieren“ klicken, oder F7 auf Ihrer Tastatur drücken; dann sollten Sie hier unten keine Fehler oder Warnungen erhalten. Und wenn das bei Ihnen auch so ist, dann klicken Sie bitte hier oben auf diesen kleinen Button, oder drücken die F4-Taste auf Ihrer Tastatur, um in den MetaTrader zurückzukehren. Und im MetaTrader klicken wir auf „Ansicht/ Strategietester“, oder drücken die Tastenkombination Stgr+R. Das ruft dann hier dieses StrategietesterPanel auf,
Einführung in den Envelope Indicator (00:00 – 00:17) Einführung in den Envelope Indicator, der den Kursverlauf innerhalb bestimmter Linien darstellt und bei Überschreitung dieser Linien Handelssignale generiert. Analyse des Envelope Indicators (00:17 – 01:04) Analyse des Envelope Indicators anhand von Chartbeispielen, die zeigen, wie der Indikator bei Überschreitung der Linien auf bevorstehende Kursänderungen hinweist. Erstellung eines Expert Advisors für den Envelope Indicator (01:04 – 03:06) Anleitung zur Erstellung eines Expert Advisors im MetaEditor, der den Envelope Indicator berechnet, inklusive der Einrichtung des MetaEditors und der Definition des Arrays und der Indikator-Eigenschaften. Berechnung und Ausgabe des Envelope Werts (03:06 – 03:46) Schritt-für-Schritt-Anleitung zur Berechnung des Envelope Werts und zur Ausgabe dieses Werts auf dem Chart. Kompilieren und Testen des Expert Advisors im MetaTrader (03:46 – 04:23) Anleitung zum Kompilieren des Expert Advisors und zum Testen im MetaTrader mit dem Strategie-Tester. Demonstration des Expert Advisors im MetaTrader (04:23 – 05:38) Demonstration des Expert Advisors im MetaTrader, Anzeige des Envelope Werts und Interpretation der Signale, inklusive der Verbesserung des Indikators durch Anpassung der Kerzenanzahl. Zusammenfassung und Anwendungsmöglichkeiten (05:38 – 05:49) Zusammenfassung des Gelernten über den Envelope Indicator und Anleitung zur Programmierung des Indikators in einem Expert Advisor in MQL5. Mit MQL5 und Metatrader5 kann man den Envelopes Indikator in weniger als 5 Minuten für einen Trading Robot programmieren, mit dem man automatisch traden kann. Die MQL5 Funktion iEnvelopes kommt mit dem Metatrader5, damit programmieren wir in diesem Video einen Envelopes Expert Advisor für den Metatrader5… Diesmal sehen wir uns den sogenannten “Envelopes Indicator” an. Envelope bedeutet Umschlag und wenn man ein wenig hineinzoomt, dann kann man sehen, dass auf diesem Chart der Kurs zum überwiegenden Teil hier innerhalb dieser beiden Linien verläuft. Die Idee ist jetzt, bei einer Überschreitung einer dieser Linien in die entsprechende Richtung einen Trade zu eröffnen. Beispielsweise sehen wir hier, dass die Kerzen oberhalb des oberen Bandes geschlossen wurden. Wir würden also jetzt einen Short-Trade eröffnen und hätten auf dieser Strecke hier ganz ordentlich Profit gemacht. Außerdem ermöglicht uns der Envelope-Indicator uns in den langweiligen Seitwärtsphasen ohne richtige Trends herauszuhalten. Wir würden jetzt darauf warten, dass eines dieser Bänder hier überschritten wird und dann einen Trade in die entsprechende Richtung eröffnen. Der sogenannte Moving Average Envelope Indicator ist ein Instrument für die technische Analyse und ähnelt den Bollinger Bändern. Genau wie bei den Bollinger Bändern gibt es die eine Fraktion die sagt, dass ein Überschreiten des oberen Bandes ein Signal für einen starken Aufwärtstrend ist und die andere Fraktion hält das Überschreiten des oberen Bandes für ein Signal dafür, dass wir eine Situation des Überverkaufs haben und der Trend sich umkehren wird nach unten. Sie können das natürlich selbst entscheiden, aber wenn wir uns das hier ansehen, oder diesen Bereich hier, dann würde ich eher glauben, dass sich der Kurs häufiger vom einen Band zum anderen Band bewegt. Wie können wir jetzt einen Expert Advisor für diesen Indikator hier erstellen? Zunächst einmal klicken wir hier oben auf diesen kleinen Knopf oder drücken die F4 Taste. Das ruft hier den MetaEditor auf und dort klicken wir auf Datei – Neu – Expert Advisor aus Vorlage – weiter, vergeben den Namen SimplerEnvelopesEA,
Einführung in Bollinger Bänder (00:00 – 00:12) Einführung in die Bollinger Bänder, einen beliebten Indikator im MetaTrader, der einfache Ein- und Ausstiegsregeln in beide Richtungen ermöglicht. Erklärung der Ein- und Ausstiegsregeln (00:12 – 00:22) Erklärung der Ein- und Ausstiegsregeln für Short und Long Trades mit Bollinger Bändern. Berechnung der Bollinger Bänder (00:22 – 00:50) Demonstration, wie die drei Werte für die Bollinger Bänder berechnet werden: Mittelband, oberes und unteres Band. Nutzung der Bollinger Bänder für Handelssignale (00:50 – 01:11) Erklärung, wie der Schlusskurs einer Kerze außerhalb und innerhalb der Bänder als Handelssignal genutzt werden kann. Erstellung eines Bollinger Band Expert Advisors (01:11 – 02:07) Anleitung zur Erstellung eines einfachen Bollinger Band Expert Advisors im MetaEditor. Berechnung der Bollinger Band-Werte im Expert Advisor (02:07 – 03:10) Schritt-für-Schritt-Anleitung zur Berechnung der Bollinger Band-Werte im Expert Advisor. Ausgabe der berechneten Werte auf dem Chart (03:10 – 03:55) Demonstration, wie die berechneten Werte der Bollinger Bänder auf dem Chart ausgegeben werden. Einrichtung der Bollinger Bänder im MetaTrader (03:55 – 04:43) Anleitung zur Einrichtung der Bollinger Bänder im MetaTrader und zur Erstellung eines Templates. Speichern und Anwenden des Templates (04:43 – 05:19) Anleitung zum Speichern und Anwenden des Templates mit den Bollinger Bändern im Strategie-Tester. Demonstration des Expert Advisors in Aktion (05:19 – 06:19) Demonstration des Expert Advisors im Strategie-Tester und Überprüfung der berechneten Werte der Bollinger Bänder. Zusammenfassung und Anwendungsmöglichkeiten (06:19 – 06:19) Zusammenfassung des Gelernten über die automatische Berechnung der Bollinger Bänder und deren Nutzung im Expert Advisor. Mit MQL5 und dem Bollinger Bands Indikator lassen sich für den Metatrader5 sehr schöne Strategien programmieren, mit denen man auch aufgrund von dynamischen Bewegungen einfach automatisch traden kann… Falls Sie sich einmal mit Markttechnik befasst haben, oder im Metatrader gerne Indikatoren benutzen, dann kennen Sie vielleicht die sogenannten Bollinger Bänder. Es handelt sich hierbei um einen sehr beliebten Indikator, der es jedem Trader ermöglicht mit sehr einfachen Regeln Ein- und Ausstiege in beide Richtungen zu finden. Die Einstiegsregel für einen Short-Trade besagt, dass man, sobald der Kurs das obere Band überschreitet und wieder eintritt, in die absteigende Richtung einen Sell-Trade eröffnet. Andersherum würde man in diesem Fall hier beim Überschreiten der unteren Linie einen Buy-Trade eröffnen, weil zu erwarten ist, dass sich der Kurs hier nach oben bewegt. Halten wir die Simulation an dieser Stelle einmal kurz an, dann können wir erkennen, dass hier oben drei Werte berechnet werden. Der Wert MeinMittelbandwert zeigt gerade einen Wert von 0.71064 an. Wenn ich kurz die Maus hier unten hinhalte, dann sehe ich, dass ich 0,710643 habe, da dieser Wert etwas aufgerundet wird. Für das obere Band habe ich einen Wert von 0,711245 berechnet und auch das untere Band wird mit 0,710040 korrekt berechnet und hier oben dargestellt. Wofür ist das Ganze gut? Ganz einfach, wenn der Schlusskurs einer Kerze ausserhalb des unteren Bandes liegt und der Schlusskurs der nächsten Kerze wieder innerhalb der Bänder liegt, dann kann ich das als Einstiegssignal in die entsprechende Richtung nutzen. Wie berechnet man jetzt diese Bollinger Bänder? Um das zu tun, klicken Sie bitte im Metatrader hier oben auf den kleinen Button oder drücken die F4-Taste. Das wird den Metaeditor aufrufen. Hier wählen wir Datei, Neu,
Analyse des Williams Prozent Range Indikators (00:17 – 01:04) Analyse des Indikators anhand von Chartbeispielen, die zeigen, wie Spitzen im Indikator vor Kursänderungen auftreten und wie diese Spitzen auf bevorstehende Richtungswechsel hinweisen. Erstellung eines Expert Advisors für den Williams Prozent Range Indikator (01:04 – 03:06) Anleitung zur Erstellung eines Expert Advisors im MetaEditor, der den Williams Prozent Range Indikator berechnet, inklusive der Einrichtung des MetaEditors und der Definition des Arrays und der Indikator-Eigenschaften. Berechnung und Ausgabe des Williams Prozent Range Werts (03:06 – 03:46) Schritt-für-Schritt-Anleitung zur Berechnung des Williams Prozent Range Werts und zur Ausgabe dieses Werts auf dem Chart. Kompilieren und Testen des Expert Advisors im MetaTrader (03:46 – 04:23) Anleitung zum Kompilieren des Expert Advisors und zum Testen im MetaTrader mit dem Strategie-Tester. Demonstration des Expert Advisors im MetaTrader (04:23 – 05:38) Demonstration des Expert Advisors im MetaTrader, Anzeige des Williams Prozent Range Werts und Interpretation der Signale, inklusive der Verbesserung des Indikators durch Anpassung der Kerzenanzahl. Zusammenfassung und Anwendungsmöglichkeiten (05:38 – 05:49) Zusammenfassung des Gelernten über den Williams Prozent Range Indikator und Anleitung zur Programmierung des Indikators in einem Expert Advisor in MQL5. Heute möchten wir uns einmal den Williams PerCent Range Indikator ansehen. Dabei handelt es sich um ein Hilfsmittel, um festzustellen, ob ein Markt über- oder unterverkauft ist. Dieser Indikator besteht aus einer Linie. Und wenn diese Linie eine dieser beiden gestrichelten Werte überschreitet, dann wird es interessant. Der Williams ProzentRange Indikator oder auch Prozentr Indikator wurde 1966 von Larry Williams entwickelt, um überkaufte oder überverkaufte Situationen anzuzeigen. Wenn man sich unsere Situation hier anschaut, dann sieht man, dass die höchsten Spitzen hier immer auftreten, bevor der Kurs in den Keller geht und andersherum. Diese Spitzen hier unten deuten darauf hin, dass es wieder in die andere Richtung gehen wird. Hier kann man ganz gut erkennen, dass das etwas vor dem eigentlichen Kursabfall angezeigt wird. Und auch diese Spitze ist ein wenig vor dieser Kerze hier entstanden. Derzeit arbeiten wir hier mit 14 Kerzen. Wir werden das aber gleich im Verlauf dieses Videos noch auf 100 Kerzen verändern. Wie erstellt man also jetzt einen Expert Advisor, der den Wert für diesen Indikator messen kann? Dazu klicken wir im Metatrader zunächst hier oben auf dieses kleine Icon oder drücken die F4 Taste. Das ruft den Metaeditor auf und hier klicken wir auf Datei neu Expert Advisor von Vorlage erstellen. Weiter. Wir vergeben hier den Namen Simple Williams Prozentrange und klicken auf weiter. Weiter fertigstellen. Und jetzt löschen wir alles oberhalb dieser Ontick Funktion und entfernen diese beiden Kommentarzeilen. Im ersten Schritt benötigen wir ein Array. Es ist vom Typ Double, da es NachKommastellen für unsere Preisdaten aufnehmen soll und trägt den Namen WPR Array. Jetzt definieren wir noch die Einstellungen für den Williams ProzentRange Indikator. Laut unserer Definition möchten wir die Funktion iWPR nutzen, die in MQL5 eingebaut ist. Und wir möchten den Indikator gerne für das aktuelle Währungspaar auf dem Chart berechnen, und zwar für die auf dem Chart ausgewählte Zeiteinheit, wie beispielsweise das Minuten Chart. Und als Berechnungsgrundlage nutzen wir die letzten 14 Kerzen. Danach nutzen wir die Funktion ArraySetAsSeries für unser Array, um die Preisdaten abwärts von der aktuellen Kerze auszusor...
Einführung in den Momentum Indicator (00:00 – 00:17) Einführung in den Momentum Indicator, der oft mit anderen Indikatoren wie gleitenden Durchschnitten verwendet wird und Trendwenden voraussagen soll. Analyse des Momentum Indicators (00:17 – 00:50) Analyse des Momentum Indicators anhand von Chartbeispielen, die zeigen, wie Spitzen im Indicator vor Kursänderungen auftreten. Bedeutung des Momentum Indicators (00:50 – 01:07) Diskussion über die Bedeutung des Momentum Indicators und seine Fähigkeit, Fehlsignale zu produzieren. Erstellung eines Momentum Expert Advisors (01:07 – 02:03) Anleitung zur Erstellung eines einfachen Momentum Expert Advisors im MetaEditor. Definition der Eigenschaften des Momentum Expert Advisors (02:03 – 02:44) Schritt-für-Schritt-Anleitung zur Definition der Eigenschaften des Momentum Expert Advisors. Berechnung des Momentum-Werts (02:44 – 03:25) Anleitung zur Berechnung des Momentum-Werts und zur Ausgabe auf dem Chart. Ausgabe des Momentum-Werts auf dem Chart (03:25 – 04:13) Demonstration, wie der berechnete Momentum-Wert auf dem Chart ausgegeben wird. Kompilieren und Testen des Expert Advisors (04:13 – 04:23) Anleitung zum Kompilieren des Expert Advisors und Testen im MetaTrader mit dem Strategie-Tester. Demonstration des Expert Advisors im MetaTrader (04:23 – 05:16) Demonstration des Expert Advisors im MetaTrader, Anzeige des Momentum-Werts und Interpretation der Signale. Zusammenfassung und Anwendungsmöglichkeiten (05:16 – 05:42) Zusammenfassung des Gelernten über den Momentum Indicator und Anleitung zur Anwendung des Expert Advisors im eigenen Handelssystem. Das hier ist der sogenannte Momentum IndiKator. Der wird relativ häufig zusammen mit anderen Indikatoren wie einem gleitenden Durchschnitt eingesetzt und man sagt diesem Indikator nach, dass er tatsächlich in der Lage sein soll, Trendwenden vorauszusagen. Schaut man sich zum Beispiel den Verlauf an dieser Stelle an, dann sieht man, dass hier eine Spitze ausgebildet wird, bevor der Kurs tatsächlich das Gleiche getan hat. Auch hier können wir das beobachten, kurz bevor das hier passiert. Hier gibt es ebenfalls eine Spitze und die wurde hier nach oben hin auch ausgebildet. Würde man eine senkrechte Linie von hier nach hier ziehen, dann würde man feststellen, dass es tatsächlich sinnvoll gewesen wäre, an dieser Stelle auszusteigen, bevor hier oben der Kurs tatsächlich gedreht hat. Wie andere Indikatoren auch, wird auch der Momentum-Indikator nicht immer fehlerfrei funktionieren und an der einen oder anderen Stelle auch Fehlsignale produzieren. Ob und in welcher Kombination Sie diesen Indikator einsetzen möchten, müssen Sie also selbst bestimmen. Hier oben in der linken Ecke des Charts können Sie jetzt sehen, dass das Momentum mit 100.03 als stark angesehen wird. Es hat noch ein bisschen gedauert, aber tatsächlich ist der Preis hier nach unten gegangen. Der Wikipedia-Eintrag für den Momentum-Indikator bei der Chart-Analyse sieht darin eine Möglichkeit zur Messung der Stärke einer Kurs-Bewegung. Hier werden auch die Formeln erklärt. Aber wenn man wie ich Mathematik nicht studiert hat, dann ist es deutlich leichter, so einen Indikator mit der entsprechenden eingebauten Funktion in MQL5 zu berechnen. Dazu klicken wir im MetaTrader hier oben auf diesen kleinen Button oder drücken die F4 Taste, den MetaEditor aufzurufen. Klicken auf Datei neu, Expert Advisor von Vorlage, weiter, vergeben den Namen simpler Momentum Roboter, klicken auf weiter, weiter fertigstellen und entfernen alles oberhalb der OnTick-Funktion und diese beiden Kommentar Zeilen. Wie so oft brauchen wir hier als allererstes ein Array, also eine Sammlung gleichartiger Variablen.
Das, was hier auf dem Bildschirm läuft und kaufen und verkaufen anzeigt, das ist ein in MQL5 enthaltener Indikator mit dem Namen Double Exponential Moving Average. Der erzeugt hier bestimmte Werte. Und immer wenn der exponentielle gleitende Durchschnitt oberhalb des aktuellen Kursverlaufs ist, konkret wenn er sich oberhalb der Schluss-Kurse der letzten Kerzen befindet, dann bekommen wir ein Signal zu verkaufen. Im anderen Fall, der gleitende Durchschnitt bewegt sich unterhalb der Schluss-Kurse, dann ist das ein Kauf-Signal. Wie können wir jetzt einen Expert Advisor erstellen, der in der Lage ist, diesen doppelten exponentiellen gleitenden Durchschnitt zu handeln? Um das zu tun, klicken Sie bitte im MetaTrader auf diesen kleinen Button hier oder drücken die F4 Taste. Das ruft dann hier das Fenster für den MetaEditor auf und hier klicken wir auf Datei neu Expert-Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen Simpler Double Exponential Average, klicke auf weiter, weiter fertigstellen und jetzt kann man alles löschen, was sich oberhalb der OnTick Funktion befindet und auch die zwei Kommentar Zeilen können weg. Und zunächst einmal brauchen wir ein sogenanntes Array. Mit MQL Rates können wir uns eines erstellen. Das bekommt hier den Namen Preis-Information und es wird zunächst einmal mit Array set as series von der aktuellen Kerze an abwärts sortiert. Und danach nutzen wir die MQL5 Funktion Copy Rates, um die Preis Daten in das Array zu kopieren. Copy Rates benötigt einige Parameter. Darum übergeben wir hier das aktuelle Währungspaar, die auf dem Chart eingestellte Periode. Ich handle in der Regel mit einer Minute, aber viele Leute nutzen auch das 30 Minuten oder das Stunden Chart. Wir fangen bei der aktuellen Kerze null an. Das ist immer die letzte Kerze, die gerade entsteht. Das hier wäre dann Kerze eins, Kerze zwei, Kerze drei und so weiter. Wir benötigen die Daten für drei Kerzen und speichern sie in unserem Array Preis Informationen, das wir hier oben erstellt haben. Und damit hätten wir schon mal die Informationen über die Preise. Jetzt brauchen wir noch ein Array. Das wird benötigt, um den gleitenden Durchschnitt Expert Advisor mit Daten zu füllen. Deswegen geben wir ihm auch den Namen Mein gleitender Durchschnitt Array und definieren im nächsten Schritt mit Hilfe der eingebauten MQL5 Funktion IDEMA, dass wir gerne einen doppelten exponentiellen gleitenden Durchschnitt nutzen möchten. Den nutzen wir für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit. Als Berechnungsgrundlage nutzen wir 14 Kerzen. Denn wenn Sie im MetaTrader auf Einfügen, Indikatoren, Tendenz, Double Exponential Moving Average klicken, dann sehen Sie hier in den Eigenschaften, dass auch hier 14 Kerzen als Standardwert zugrunde gelegt werden. Die Verschiebung ist null und berechnet wird auf den Schluss-Kurs, also den closed-Preis einer Kerze. Und genau aus diesem Grund nutzen wir auch hier eine Null für den Wert der Verschiebung und price_close, den Schluss-Kurs zugrunde zu legen. Auch dieses Array müssen wir von der aktuellen Kerze an abwärts sortieren. Dazu nutzen wir erneut Array set as series und das Ganze mit Daten zu füllen, nutzen wir wieder Copy Buffer für unseren definierten EA, mit dem Namen Definition gleitender Durchschnitt, den wir hier oben berechnet haben. Diese Null hier steht für die erste und einzige Linie in unserem Indikator, die zweite Null für die aktuelle Kerze. Wir benötigen Preis-Daten für drei Kerzen, deswegen diese drei. Und der letzte Parameter ist unser Ziel. Und das ist mein gleitender Durchschnitt Array. Nachdem wir das getan haben, sind wir in der Lage,
Einführung in Exponentielle Gleitende Durchschnitte (00:00 – 00:24) Einführung in die Programmierung eines Expert Advisors, der zwei exponentielle gleitende Durchschnitte verwendet, um Handelssignale zu generieren, basierend auf deren Überschneidungen. Berechnung der Gleitenden Durchschnitte (00:24 – 00:37) Erklärung, wie die gleitenden Durchschnitte berechnet werden: Ein Durchschnitt basiert auf 50 Kerzen, der andere auf 20 Kerzen. Erkennung von Kauf- und Verkaufssignalen (00:37 – 01:00) Demonstration, wie eine Überschneidung der gleitenden Durchschnitte als Kauf- oder Verkaufssignal interpretiert wird. Erstellung eines Expert Advisors im MetaEditor (01:00 – 01:46) Anleitung zur Erstellung eines neuen Expert Advisors im MetaEditor, benannt „Simple Gleitender Durchschnitt Crossover“. Einrichten der Arrays für die Gleitenden Durchschnitte (01:46 – 02:12) Erklärung, wie Arrays für die beiden gleitenden Durchschnitte erstellt werden. Definition der Eigenschaften für die Gleitenden Durchschnitte (02:12 – 03:10) Schritt-für-Schritt-Anleitung zur Definition der Eigenschaften für beide gleitenden Durchschnitte. Berechnung der Gleitenden Durchschnitte (03:10 – 04:01) Anleitung zur Berechnung der Werte für die gleitenden Durchschnitte und Speicherung in den definierten Variablen. Logik zur Erkennung von Überschneidungen (04:01 – 05:18) Implementierung der Logik zur Erkennung von Überschneidungen der gleitenden Durchschnitte und Ausgabe der entsprechenden Handelssignale. Kompilieren und Testen des Expert Advisors (05:18 – 06:00) Anleitung zum Kompilieren des Expert Advisors und Testen im MetaTrader mit dem Strategie-Tester. Demonstration des Expert Advisors im MetaTrader (06:00 – 06:28) Demonstration des Expert Advisors im MetaTrader, Anzeige der Kauf- und Verkaufssignale bei Überschneidungen der gleitenden Durchschnitte. Zusammenfassung und Anwendung der Strategie (06:28 – 06:41) Zusammenfassung des Gelernten und Anleitung zur Programmierung der Crossover-Strategie mit zwei sich überschneidenden gleitenden Durchschnitten in MQL5. In diesem Video lernen Sie, wie Sie einen Expert Advisor programmieren, der Handelssignale basierend auf der Überschneidung von zwei exponentiellen gleitenden Durchschnitten generiert. In diesem Video lernen Sie, wie Sie einen Expert Advisor programmieren, der Handelssignale basierend auf der Überschneidung von zwei exponentiellen gleitenden Durchschnitten generiert. Sie haben es sich gewünscht, also machen wir es auch. Einer unserer englischsprachigen YouTube-Subscriber hat geschrieben, er möchte gerne einen Expert-Advisor, wo sich zwei exponentielle gleitende Durchschnitte überschreiten, programmieren, aber er steckt fest. Und er wollte wissen, ob ich ein Video dazu machen kann. Klar, das, was Sie hier sehen, sind zwei sich überkreuzende gleitende Durchschnitte. Dieser hier wird auf 50 Kerzen und dieser hier auf 20 Kerzen zurückgerechnet. Wenn es zu einer solchen Überschneidung hier kommt und der 20er den 50er Moving Average schneidet, dann wird das als Kauf-Signal angesehen. Und wie man sieht, ist in diesem Fall der Kurs auch gestiegen. Lassen wir das mal einige Kerzen weiterlaufen. Hier haben wir den anderen Fall. Es kommt zur Überkreuzung. Und jetzt liegt der 50 Kerzen Durchschnitt über dem 20 Kerzen Durchschnitt. Dann bekommen wir hier oben Verkaufen angezeigt, weil der Kurs jetzt nach unten geht. Immer wenn sich die beiden Linien hier überschneiden, wechselt hier oben der Text. Wie kann man das jetzt als Expert Advisor programmieren? Dazu rufen wir hier oben über diesen kleinen Button oder mit der F4 Taste den MetaEditor auf.
Sie haben vielleicht das Video zum exponentiellen Moving Average Einstieg gesehen und in der einfachen Version bekamen wir hier nur angezeigt, ob wir ein Kauf- oder ein Verkaufssignal haben sobald sich diese beiden Linien hier überkreuzen. Aber diese Version hier handelt tatsächlich und sie zeigt hier diverse Informationen an, kann mehrere Positionen gleichzeitig verwalten und in Echtzeit bis zu 22 Währungspaare handeln, indem Sie ein Framework benutzt. Das ist deutlich fortgeschrittener und lässt sich nicht innerhalb von fünf Minuten erklären, aber was ich erklären kann ist dieses Einstiegssignal. Wir haben hier ein Modul mit dem Namen Checkentry.mq5 und auch die darin enthaltene Funktion heißt Checkentry, hier erstellen wir uns zunächst eine Textvariable mit dem Namen entry, die wird später die Rückgabe Funktion übernehmen für unser Kauf- oder für unser Verkaufssignal, in dieser Zeile erstellen wir uns ein Array für Preisdaten. Wir brauchen ein Array 1 und ein Array 2, denn hier definieren wir uns zwei exponentielle gleitende Durchschnitte, der erste ist für 20 und der zweite für 50 Kerzen. Diese beiden Arrays werden hier von der aktuellen Kerze an abwärts sortiert und wir nutzen die Funktion CopyBuffer um den Moving Average 1 und den Moving Average 2 aufgrund der von uns hier oben getroffenen Definitionen mit Daten zu füllen. Danach berechnen wir für beide exponentiellen gleitenden Durchschnitte den Wert für die aktuelle Kerze. Soweit dürfte Ihnen das alles bekannt vorkommen, sofern Sie das erste Video zum exponentiellen Moving Average gesehen haben. Was neu ist, ist dass wir hier bei der Prüfung, ob für eine Überkreuzung haben, ein Eintrittssignal mit dem Textwert kaufen füllen, sofern der erste Moving Average für die aktuelle Kerze einen höheren Wert ausweisst als der zweite Moving Average für die aktuelle Kerze und das bei der letzten Kerze noch anders war. Im Gegenzug, wenn der Moving Average 1 jetzt einen geringeren Wert hat für die aktuelle Kerze als der Moving Average 2 und das für die letzte Kerze noch andersrum war, dann generieren wir hier ein Verkaufssignal. Und hier im letzten Schritt geben wir mit dem Befehl Return, das Signal für den Entry, also für unseren Einstieg, zurück an das Framework. Okay, was ist jetzt ein Framework? Vom Prinzip ist das eine mq5 Datei, die mittels der Importfunktion hier diverse Funktionen bereitstellt und alle diese Funktionen sind für die zukünftigen Einstiege aus dieser Serie gleich. Mit dieser Funktion CheckForTick werden einige Überprüfungen durchgeführt, die dazu führen, dass eine neue Position eröffnet wird, wenn die Positionsanzahl für unser Währungspaar nicht die maximale Positionsanzeige überschreitet, wir eine neue Kerze haben und alle diese Funktionen sind vordefiniert in einem Framework. Das ermöglicht uns, uns lediglich auf den gewünschten Einstieg zu konzentrieren, darum prüfen wir hier in der einzigen Funktion OnTick, ob unser Signalzustand erreicht ist und rufen danach die Tradeverwaltung im Framework auf, die hier den Namen CheckForTick hat, der übergeben wir dieses Signal. Falls Sie nicht wissen, was so ein Framework tut oder was ein Framework ist, dann besuchen Sie doch einfach meine Webseite, um zu lernen, wie man eines erstellt oder eines erhalten kann, folgen Sie bei Bedarf einfach den Anweisungen auf der Webseite. So, jetzt kompilieren wir das Framework. Okay, der Kompiliervorgang hat ohne Fehler und ohne Warnung funktioniert, darum drücken wir jetzt hier oben den kleinen Knopf oder die F4 Taste, um in den Meta Trader zurückzukehren. Im Metatrader selbst,
Mit MQL5 und Metatrader 5 wird der Standard Deviation Indikator geliefert, der dazu genutzt werden kann, mögliche Kursänderungen im Forex Trading auf dem Chart vorauszusagen, denn er berechnet die durchschnittliche Kursbewegung der letzten X Kerzen und schlägt aus, sobald sich der Kurs überdurchschnittlich stark bewegt… Das was hier im Hintergrund läuft, ist der so genannte Standard Deviation Indikator. Der vergleicht aktuelle mit historischen Kursbewegungen und soll helfen, eine Wahrscheinlichkeit zu berechnen, die Auskunft darüber gibt, ob der Kurs jetzt steigen oder fallen wird. Die grundsätzliche Idee dabei ist, über einen Zeitraum in diesem Fall von 20 Kerzen zu messen wie stark sich der Kurs entwickelt und je höher der Indikatorwert ist, desto höher ist die Wahrscheinlichkeit einer Kursumkehr. In diesem Fall hat das gepasst. Wie können wir jetzt einen solchen Indikator als Expert Advisor in MQL programmieren? Dazu klicken wir zunächst hier oben auf diesen Button oder drücken die F4-Taste. Das ruft den Metaeditor auf und hier klicken wir auf Datei, Neu, Expert Advisor von Vorlage, Weiter und vergeben hier den Namen SimplerStandardDeviationEA, klicken auf Weiter, Weiter, Fertigstellen und löschen jetzt alles oberhalb der Ontick-Funktion und diese beiden Kommentarzeilen hier. Gut, das erste was wir jetzt benötigen ist ein Array f+r unsere Preisdaten. Das ist vom Wert double, damit es Nachkommastellen verarbeiten kann und trägt den Namen STDDEVArray. Im nächsten Schritt definieren wir jetzt die Eigenschaften für unseren Indikator. Die wird uns für das aktuelle Währungspaar auf dem Chart und die aktuell eingestellte Zeitperiode also beispielsweise für das Minutenchart, auf einer Basis von 20 Kerzen ohne eine Verschiebung nach rechts oder links zu benutzen für den SMA die Werte für die Schlusskurse berechnen. Danach benutzen wir die Funktion ArraySetAsSeries um unser STDDEV-Array abwärts von der aktuellen Kerze zu sortieren. Und dann füllen wir mit CopyBuffer, laut unserer Definition die wir hier oben getroffen haben, unser Array für die einzige benötigte Linie die wir brauchen von der aktuellen Kerze abwärts für drei Kerzen. Und nachdem wir die Preisdaten mit CopyBuffer in unser Array kopiert haben, berechnen wir für die aktuelle Kerze, das ist hier diese Kerze 0, aus unserem Array den entsprechenden Wert. Und im letzten Schritt fehlt natürlich noch die Chartausgabe, die wird den Text STDDEVWert und den von uns berechneten Wert direkt links oben auf dem Chart ausgeben. Okay, kompilieren wir unseren Expert Advisor. Das hat ohne Fehler und Warnungen funktioniert, also können wir mit diesem kleinen Button hier oben oder mit der F4 Taste in den Metatrader wechseln. Im Metatrader selbst klicken wir auf Ansicht, Strategietester oder drücken die STRG und die R-Taste. Danach wächlen wir hier die Datei SimplerStandardDeviationEA.ex5 aus und starten unseren Test. Und so sieht das ganze aus. Wie man sieht stimmt der Wert hier unten mit dem von uns berechneten Wert hier oben überein. Okay, Sie haben gelernt, wie man in weniger als 5 Minuten einen Expert Advisor für die Standard Deviation berechnet, den man mit anderen Indikatoren für die Ermittlung eines Einstiegssignals nutzen kann. Und Sie haben das mit wenigen Programmzeilen in MQL5 selber programmiert! Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
Diesmal widmen wir uns dem Money Flow Index. Diese blaue Linie hier, dieser Indikator hier, kann uns sagen, ob ein Wert überverkauft oder überkauft ist. Wikipedia sagt, dass der Money Flow Index bei einem Wert von 80 oder mehr zeigt, dass der Markt überkauft ist, wohingegen ein Wert von 20 oder weniger bedeutet, dass der Markt überverkauft ist. Im Klartext bedeutet das, wenn hier ein Wert von 83,12% steht, dann würden wir hier einen Sell Trade eröffnen, weil wir erwarten, dass der Preis wieder runtergeht. Und wenn diese blaue Linie sich unterhalb der unteren gestrichelten Linie, die hier bei 20% liegt, befindet, dann würden wir davon ausgehen, dass der Markt überverkauft ist, und würden einen Long Trade in die andere Richtung aufmachen. Gut, wie erstellen wir uns jetzt einen Expert Advisor, der den Money Flow Index Indikator in MQL5 nutzen kann? Um das zu tun, klicken wir im Metatrader hier oben auf den kleinen Knopf oder drücken die F4-Taste, das startet den sogenannten Meta-Editor. Und hier wählen wir Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich nenne das Programm an der Stelle „Simpler Money Flow Index“, wir klicken auf Weiter, Weiter, Fertigstellen. Und jetzt kann alles oberhalb dieser OnTick-Funktion hier gelöscht werden, und auch die Kommentarzeilen entfernen wir. Als erstes brauchen wir ein Array für unsere Preisdaten, das bekommt den Namen „PreisArray“ und ist vom Typ Double, damit es auch Nachkommastellen verarbeiten kann. Und danach erstellen wir eine MFIDefinition für unseren Money Flow Index, indem wir die in MQL5 integrierte Funktion IMFI nutzen, um für das aktuelle Chart und die auf diesem Chart aktuell eingestellte Zeiteinheit, den MFI Wert basierend auf 14 Kerzen aufgrund des Tick-Volumens zu berechnen. Denn wenn Sie im Metatrader auf Einfügen, Indikatoren, Volumen, Money Flow Index klicken, dann sehen Sie die 14 Kerzen und das Tick-Volumen auch in den Standardeinstellungen. Nach der Definition sortieren wir die Preise abwärts von der aktuellen Kerze, indem wir die MQL5-Funktion ArraySetAsSeries benutzen und auf unser PreisArray anwenden. Und mit CopyBuffer füllen wir unser PreisArray hier mit Daten, die laut der MFIDefinition, die wir hier oben getroffen haben, für die erste Linie unseres Indikators, das ist diese Linie Null, von der aktuellen Kerze, das ist Kerze Null, für drei Kerzen, das ist diese 3. Und das Resultat speichern wir in unserem PreisArray. Jetzt berechnen wir den Wert für unseren MFI Expert Advisor für die aktuelle Kerze, das ist Kerze Null in diesem PreisArray, wir nutzen NormalizeDouble und diese 2, da uns hier oben zwei Nachkommastellen reichen. Denn wenn wir prüfen, ob wir oberhalb von 80 oder unterhalb von 20 sind, dann brauchen wir nicht die fünf Nachkommastellen zu berechnen, die der MFI-Indikator in der Ursprungsversion anzeigt. Und das Ergebnis speichern wir in einer Variable mit dem Namen MFIWert. Jetzt fehlt uns natürlich noch je nach Wert die passende Ausgabe auf unserem Chart, denn wenn unser berechneter MFIWert größer ist als 80, dann möchten wir mit der MQL5-Funktion Comment den Text „ÜBERKAUFT“ und den berechneten MFI-Wert aus dieser Zeile ausgeben. Im andern Fall, wenn der MFI-Wert kleiner ist als 20, nutzen wir Comment, um den Text auszugeben „ÜBERVERKAUFT“, natürlich auch gefolgt von dem berechneten Wert. Und sollte unser MFI-Wert größer sein als 20 und kleiner als 80, das bedeutet, die blaue Linie befindet sich zwischen diesen beiden gestrichelten Linien hier, dann geben wir gar keinen Text aus. Denn wir haben kein Signal, und in dem Fall reicht uns zur Überprüfung der berechnete MFIWert. So, das war's auch schon, wir klicken auf Kompilieren,
Das hier ist der RVI Indikator, der ist im Metatrader enthalten, wir haben hier einen kleinen Aufwärtstrend und das zeigt uns unser Indikator hier auch an. Und in dem Moment wo sich hier oben eine Korrektur im Aufwärtstrend entwickelt, wird das hier ebenfalls angezeigt. Liegen beide Linien unterhalb dieser gestrichelte Linie hier, dann befinden wir uns in einem Abwärtstrend und sobald hier eine Überkreuzung stattfindet, deutet das auf eine Korrektur im Abwärtstrend hin. Dieser RVI Indikator lässt es also zu, dass man immer ziemlich genau erkennen kann, in was für einer aktuellen Trendphase man sich befindet. Wie können wir jetzt mit MQL5 einen Expert Advisor erstellen der den RVI Indikator nutzt? Dazu klicken wir Metatrader hier oben auf diesen kleinen Knopf oder drücken die F4 Taste, das ruft dann hier den Meta Editor auf und dort klicken wir auf Datei – Neu – Expert Advisor aus Vorlage – Weiter. Ich vergebe hier mal den Namen simpler RVI, klicke auf Weiter – Weiter – Fertigstellen und jetzt kann alles oberhalb dieser OnTick Funktion gelöscht werden, genau wie die beiden Kommentarzeilen. Im ersten Schritt beginnen wir mit einer leeren Ausgabe auf unserem Chart und da unser Indikator in diesem Fall mit zwei Linien arbeitet die einen unterschiedlichen Wert haben, benötigen wir auch für dieses Beispiel zwei unterschiedliche PreiseArrays. Die erhalten den Namen Preisarray 0 und Preisarray 1 und jetzt definieren wir die Eigenschaften für den RVI Expert Advisor, indem wir die MQL5 Funktion iRVI aufrufen, und zwar für das aktuelle Chart und die auf dem Chart aktuell dargestellte Zeiteinheit. Unsere Berechnung soll aufgrund der letzten 10 Kerzen erfolgen, denn das ist doch das, was man bekommt, wenn man auf einfügen – Indikatoren – Oszillatoren – Relative Vigor Index klickt, dann sehen wir hier unsere 10 Kerzen für den RVI. Im nächsten Schritt sortieren wir die Preise abwärts von der aktuellen Kerze, das machen wir sowohl für unser PreisArray 0, als auch für unser PreisArray 1. Jetzt nutzen wir copy Buffer für unsere erste und für unsere zweite Indikator Linie, um aufgrund unserer iRVI Definition die wir hier oben getroffen haben, von der aktuellen Kerze für 3 Kerzen die Preis Daten in unserem PreisArray 0 bzw. für die andere Indikatorlinie unserem PreisArray 1 abzuspeichern. Und jetzt berechnen wir uns den Expert Advisor für die aktuelle Kerze aus dem Preisarray 0, holen wir von der aktuellen Kerze 0 den RVI Wert 0 mit drei Nachkommastellen und aus dem PreisArray 1 machen wir das gleiche, aber diesmal holen wir uns den RVI Wert 1 für unsere zweite Indikator Linie hier. Gut, kommen wir zur Chart Ausgabe. Zunächst berechnen wir hier die Werte für unseren Trend und wenn unser RVI Wert 0 kleiner ist als der RVI Wert 1 und der RVI Wert 1 unterhalb unserer gestrichelte 0 Linie liegt, also wir uns hier in diesem unteren Bereich befinden, dann haben wir einen Abwärtstrend. Im anderen Fall, wenn der RVI Wert 0 größer ist als der Wert 1 und sich der RVI Wert 0 oberhalb von unserer Nulllinie befindet, dann haben wir einen Aufwärtstrend und geben das mit Comment auf unserem Chart aus. Für die Korrekturen gilt in etwa die gleiche Formel, allerdings sind hier die Größer und Kleiner Zeichen umgekehrt, denn was oberhalb der gestrichelten Linie als Aufwärtstrend erkannt wird, wäre unterhalb der gestrichelten Linie hier eine Korrektur. Gut, das war es mit unserem Expert Advisor, wir klicken also jetzt hier auf kompilieren oder drücken die F7 Taste und dann sollte der Compiler keine Fehler und keine Warnungen auswerfen. Wenn das alles geklappt hat, klicken wir hier oben auf den kleinen Button oder drücken die F4 Taste um zurückzuk...
Mql5 ist ja eine objektorientierte Sprache und in diesem Beispiel möchten wir einmal ein solches Objekt erstellen. Das hier oben ist ein Label oder in unserem Fall haben wir es Textobjekt genannt und es zeigt uns in einer bestimmten Schriftgröße und einer bestimmten Schriftart den aktuellen Ask Preis an. Solche Objekte zu erstellen ist gar nicht schwer. Neben den Textobjekten gibt es auch Linien, Pfeile oder sonstige Dinge, die man direkt auf dem Chart ausgeben kann. Wie aber lässt sich ein solches Objekt erstellen damit wir es in unseren Expert Advisor einsetzen können? Dazu klicken wir hier oben auf diesem kleinen Button oder drücken die F4 Taste. Das ruft dann hier den MetaEditor auf und im MetaEditor klicken wir auf Datei –Neu – Expert Advisor aus Vorlage – weiter. Hier vergeben wir den Namen SimplesObjektLabel, klicken auf weiter – weiter – fertig stellen und jetzt kann alles oberhalb der Ontick Funktion hier gelöscht werden. Auch die Kommentarzeilen werden entfernt und da wir ja etwas brauchen, dass unser Label anzeigen kann, holen wir uns im ersten Schritt den Ask Preis. Der Ask Preis ist der Preis, der gefordert wird wenn wir eine Position kaufen wollen. Wir holen uns den aktuellen Ask Preis über SymbolInfoDouble. Das liest für das aktuelle Währungspaar mit dieser Konstante SYMBOL ASK den aktuellen Preis aus und mit dieser Konstante hier – digits – bekommen wir die passende Anzahl von Nachkommastellen, denn wie man hier sieht, gibt es Währungspaare mit drei Nachkommastellen und hier gibt es welche mit 5 Nachkommastellen. Und jetzt setzen wir die Objekteigenschaften für unser Textobjekt ein. Wir erstellen also ein Objekt mit ObjectCreate für das aktuelle Währungspaar, es soll den Namen TextObjekt bekommen. Und mit OBJ_LABEL sagen wir Mql5, dass wir gerne einen Text bearbeiten möchten. Wenn wir an dieser Stelle F1 drücken dann sieht man, dass es auch massenweise andere Objekttypen gibt. Das hier beispielsweise wäre ein Pfeil nach oben, das hier ist unser Label und das hier wäre beispielsweise ein Button und die Arrow Funktion hier kann einen Pfeil nach oben oder unten erzeugen. Wir benötigen kein separates Fenster, also nehmen wir für diesen Parameter eine 0, wir sind auch nicht zeitbezogen und unser Objekt muss auch nicht an einer bestimmten Stelle für einen Preis angezeigt werden. Also stellen wir auch das auf Null und danach wählen wir uns eine entsprechende Schriftart aus. Das geht mit der Funktion ObjectSetString, für das aktuelle Währungspaar und unser TextObjekt und mit OBJPROP_FONT setzen wir die Schriftart auf Arial. Danach setzen wir die Schriftgröße ein mit der Funktion ObjectSetInteger für das aktuelle Währungspaar und für unser TextObjekt nutzen wir die konstante OBJPROP_FONTSIZE und entscheiden uns für eine Schriftgröße von 24. Damit unser Label was anzeigen kann, setzen wir jetzt noch den Text ein. Das geht wieder mit ObjectSetString für das aktuelle Währungspaar und für unser TextObjekt nutzen wir die konstante OBJPROP_TEXT und geben hier den Text Ask Preis und den Ask Wert aus den wir hier oben in der Variable berechnet haben. Jetzt bestimmen wir noch die Position, die Distanz vom linken Rand soll 5 sein, das setzen wir mit ObjectSetInteger für das aktuelle Währungspaar und unser TextObjekt mit OBJPROP_XDISTANCE auf den Wert 5. Und die Distanz von oben setzen wir genauso, nur in diesem Fall nutzen wir OBJPROP_YDISTANCE für die y-Achse und hier verwenden wir mal den Wert 10. So, das war‘s auch schon. Jetzt kompilieren wir unseren Expert Advisor indem wir hier oben auf den kleinen Button oder auf die F7 Taste drücken und der Compiler warnt uns,
In diesem Video wollen wir uns mal anschauen, wie man einen Simple Movement Average, also einen einfachen gleitenden Durchschnitt auf dem Chart so versetzen kann, dass der 20 Kerzen in die Zukunft angezeigt wird. Also lassen Sie uns mal schauen, wie man so etwas mit MQL5 programmieren kann. In diesem MQL5 Code wird eine String Variable namens Signal erstellt, um das Handels-Signal zu speichern. Dieses Signal wird entweder kaufen oder verkaufen sein. Zwei Arrays, MyMoving Average Array und MyShifted Average Array werden deklariert. In diesen Arrays werden die Werte der gleitenden Durchschnitte gespeichert. Zwei gleitende Durchschnitte werden mit der Funktion IMA definiert. Moving Average Definition berechnet einen einfachen gleitenden Durchschnitt über 50 Kerzen, (SMA) anhand der Schluss-Kurse des aktuellen Symbols und der Periode. Shifted Average Definition berechnet einen weiteren SMA mit 50 Kerzen, aber mit einer Verschiebung 20 Kerzen. Die Funktion Array Set as Series wird verwendet, um das MyMoving Average Array und das MyShifted Average Array in absteigender Reihenfolge zu sortieren. Die Funktion Copy Buffer wird verwendet, um die letzten drei Werte der beiden gleitenden Durchschnitte in ihre jeweiligen Arrays zu kopieren. Die Werte der aktuellen Kerze für beide gleitenden Durchschnitte werden berechnet und in myMoving Average Value und MyShifted Average Value gespeichert. Handels-signale werden auf der Grundlage des Vergleichs dieser gleitenden Durchschnittswerte generiert. Wenn myMoving Average Value größer ist als myShifted Average Value, wird das Signal auf Kaufen gesetzt. Wenn myMoving Average Value kleiner ist als myShifted Average Value, wird das Signal auf Verkaufen gesetzt. Das aktuelle Handels-Signal Kaufen oder Verkaufen wird mit der Funktion comment auf dem Chart angezeigt. Dieser Code berechnet zwei gleitende Durchschnitte, vergleicht ihre Werte und erzeugt auf der Grundlage des Vergleichs ein Kauf oder Verkaufs-Signal. Anschließend wird das aktuelle Handels-Signal auf dem Handels-Chart zur Referenz angezeigt. Okay, wenn bei Ihnen alles geklappt hat, dann sehen Sie jetzt den verschobenen gleitenden Durchschnitt auf Ihrem Chart. Falls Ihnen das aber zu schnell ging oder Sie nicht wissen, was diese Code-Zeilen bedeuten, dann möchten Sie sich vielleicht zunächst eines der Grundlagen-Videos noch einmal anschauen. Oder vielleicht ist auch der Premium-Kurs interessant für Sie. Den finden Sie auf unserer Website. Für den Moment sage ich vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten Video. Einführung in den Shift Moving Average (00:00 – 00:17) Überblick über das Verschieben eines einfachen gleitenden Durchschnitts um 20 Kerzen in die Zukunft. Einrichten des MQL5-Codes (00:17 – 00:28) Erstellung einer Zeichenfolgenvariablen für das Handelssignal. Deklaration von Arrays für die Werte des gleitenden Durchschnitts. Definition von gleitenden Durchschnitten (00:28 – 00:51) Verwendung der IMA-Funktion zur Definition des gleitenden Durchschnitts. Berechnung eines einfachen gleitenden Durchschnitts (SMA) mit 50 Kerzen. Berechnung des verschobenen Durchschnitts (00:51 – 01:03) Definition eines weiteren SMA mit einer Anzahl von 50 Kerzen und einer Verschiebung um 20 Kerzen. Sortieren von Arrays in absteigender Reihenfolge. Kopieren und Vergleichen von Werten (01:03 – 01:24) Kopieren der letzten drei Werte der gleitenden Durchschnitte. Berechnung der aktuellen Werte für beide Durchschnitte. Generierung von Handelssignalen (01:24 – 01:46) Festlegen von Bedingungen für Kauf- und Verkaufssignale...
Das was wir hier auf diesem Bildschirm sehen ist der sogenannte Trix Indicator. Der Trix Indicator zeigt uns an, ob wir long oder short sind. In dem Moment wo diese Linie hier überschnitten wird, ist das ein Einstiegssignal nach oben und wenn sich die Linie hier unterhalb der mittleren gestrichelten Linie befindet, dann ist das ein Zeichen für einen Short Trend. Erfunden wurde der Trix Indikator in den 80er Jahren von einem Mann mit dem Namen Jack Hutson. Genutzt wird ein dreifacher geglätteter, exponentieller moving average und eine steigende oder fallende Linie ist ein Zeichen für einen Uptrend bzw. einen Downtrend. Tatsächlich sieht das an der Stelle hier ganz einleuchtend aus und wir möchten jetzt einen Expert Advisor erstellen der den Wert vom Trix hier berechnet und uns die entsprechende Richtung hier oben auf dem Chart anzeigen kann. Dazu klicken wir im Metatrader hier auf diesen kleinen Button oder wir drücken die F4 Taste. Das ruft dann den Meta Editor auf und hier wählen wir Datei – Neu – Expert Advisor aus Vorlage, klicken auf Weiter, vergeben hier den Namen SimplerTrixRobot, klicken auf weiter – weiter – fertigstellen. Jetzt können wir zunächst einmal alles löschen was sich oberhalb dieser OnTick Funktion befindet und die beiden Kommentarzeilen entfernen. Zuerst erstellen wir uns ein Preis Array für unsere Preisdaten, das ist vom Typ double und kriegt den Namen PreisArray. Danach erstellen wir uns die Definition für die Eigenschaften des Expert Advisors indem wir die eingebaute iTrix Funktion von Mql5 nutzen, um für das aktuelle Chart und die auf dem Chart aktuell ausgewählte Periode, den iTrix Wert für 14 Kerzen anhand der Schlusskurse zu berechnen. Denn wenn wir im Metatrader auf einfügen – Indikatoren – Oszillatoren – Triple exponential average gehen, dann sehen wir auch hier die 14 Kerzen und die Schlusskurse als Basis für den Trix Indikator. So, jetzt holen wir uns mit der Funktion CopyBuffer, laut unserer iTrixDefinition die wir hier oben getroffen haben, für die erste und einzige Linie unseres Indikators von der aktuellen Kerze 0 für 3 Kerzen die benötigten Daten und speichern Sie in unserem PreisArray. Danach können wir den iTrixWert für die aktuelle Kerze berechnen. Ich nutze hier eine float Variable, die nimmt etwas weniger Arbeitsspeicher in Anspruch, als eine double variable und ist mit ihrer Genauigkeit für unsere Zwecke ausreichend. Sie trägt den Namen iTrixWert und soll aus unserem PreisArray den entsprechenden Wert aus der aktuellen Kerze bekommen. Fehlt uns noch die Chart Ausgabe und je nachdem in welche Richtung es geht, möchten wir zwei unterschiedliche Dinge ausgeben. Entweder unser berechneter iTrixWert ist größer als 0, dann nutzen wir die comment Funktion von Mql5 und geben auf unserem Chart den Text: iTrix IST LONG, zusammen mit dem von uns berechneten iTrixWert Wert aus. Und den umgekehrten Fall, der iTrixWert ist unter 0, dann nutzen wir auch den Comment Befehl aber diesmal geben wir den Text aus: iTrix IST SHORT, ebenfalls gefolgt von dem Wert den wir hier oben in unserer Variable berechnet haben. So, das war's auch schon. Jetzt können Sie hier oben auf Kompilieren klicken oder die F7 Taste drücken. Das sollte funktionieren, allerdings bekommen wir hier eine Warnung angezeigt. Der MetaEditor warnt uns hier vor einem möglichen Genauigkeitsverlust weil wir hier eine float Variable benutzt haben. Aber für dieses einfache Beispiel soll das ausreichen. Wenn sonst alles geklappt hat, klicken Sie bitte hier oben auf den kleinen Button oder drücken die F4 Taste um in den MetaTrader zurückzukehren. Im MetaTrader selbst rufen wir über Ansicht – Strategietester oder mittels der Tastenk...
Okay, Sie haben danach gefragt, also mache ich es auch. Ein YouTube Abonnent mit dem Namen Kasteren hat sich gewünscht. Ich möchte doch einmal ein Video über den RSI Indicator machen. Und hier sind wir auch schon. Der RSI oder relative Strength Index wird sehr häufig genutzt, um zu prüfen, ob der Markt überverkauft oder überkauft ist. Wenn beispielsweise der Preis oberhalb dieser 70% Marke liegt, dann ist das ein Zeichen dafür, einen Short Trade zu eröffnen. Falls aber der Preis von unten die 30% Marke des RSI überschreitet, dann würde man einen Buy Trade eröffnen. Zeigt man mit der Maus hier auf das Ende der Linie, dann sieht man hier einen Wert von 39,49 und dieser Wert wird auch hier oben angezeigt. Jetzt sind wir bei 36, 22 und auch das passt. Wenn man den Wert hat, kann man also darüber entscheiden, ob man einen Einstieg in die eine oder in die andere Richtung starten möchte. Wir möchten für die Berechnung dieses Wertes jetzt einen einfachen Expert-Advisor schreiben. Dazu klicken wir hier oben auf dieses Symbol oder drücken die F4 Taste, um den MetaEditor aufzurufen. Im MetaEditor selbst klicken wir auf Datei, neu, Expert Advisor aus Vorlage, weiter. Hier vergeben wir den Namen Simpler RSI, klicken auf weiter, weiter fertigstellen und löschen alles oberhalb der OnTick Funktion. Auch diese beiden Kommentar Zeilen hier benötigen wir nicht. Das erste, was wir benötigen, ist ein Array, der unsere Preis Daten aufnehmen kann. Also erstellen wir ein Array mit dem Namen MyRSI Array. Im zweiten Schritt definieren wir die Eigenschaften unseres RSI Indicators. Er bekommt den Namen myRSI Definition. Wir verwenden die Funktion iRSI für das aktuell ausgewählte Währungspaar und den auf dem Chart aktuell ausgewählten Zeitrahmen. Unsere Berechnung soll für 14 Kerzen gelten und als Grundlage für die Berechnung möchten wir gerne die Schluss-Kurse nutzen. Im nächsten Schritt sortieren wir unseren Array von Kerze null, also der aktuellen Kerze an abwärts. Und mit der Funktion Copy Buffer füllen wir unser Array für drei Kerzen von der aktuellen Kerze an mit den von uns definierten Daten für den RSI. Diese Null hier bedeutet, wir haben einen einzigen Buffer, also nur eine Linie, die es zu berechnen gilt, da der RSI nur diese eine Linie hat. So, jetzt möchten wir natürlich auch noch unseren RSI Array abfragen, und zwar für die aktuelle Kerze und weisen den errechneten Wert unserer Variable myRSI Wert zu. Und im letzten Schritt möchten wir noch auf unserem Chart mit dem Comment Befehl den Text myRSI Wert und den errechneten Wert aus dieser Zeile ausgeben. Kompilieren wir unseren kleinen Expert-Advisor doch einmal. Das funktioniert ohne Fehler und ohne Warnungen. Also wechseln wir zurück in den MetaTrader, indem wir diesen Button hier oben oder die F4 Taste drücken. Im MetaTrader selbst klicken wir auf Ansicht, Strategie Tester oder nutzen STRG und R, um diesen Strategie Tester hier unten aufzurufen. Hier wählen wir das Programm Simpler RSI. Ex5 aus. Bitte setzen Sie auch den Haken hier für die Visualisierung und starten Sie Ihren Test. So, und wie man sehen kann, ist der Wert hier übereinstimmt mit dem, was errechnet wurde. Wir sind jetzt bei 83,3. Ich pausiere hier mal. 84.30, 84.3. Das stimmt auch mit der Anzeige hier unten überein. Und wie man sieht, stimmt der Wert hier auch noch. So, das war es schon. Sie haben in diesem Video gelernt, wie Sie aufgrund des RSI Indicators berechnen können, ob Sie einen BUY oder einen SELL Trade eröffnen möchten. Und das alles funktioniert mit diesen paar Zeilen.
Wenn Sie sich einmal mit Markt-Technik, dem sogenannten Charting beschäftigt haben, dann haben Sie mit Sicherheit auch schon einmal so einen gleitenden Durchschnitt wie hier auf dem Bildschirm entweder gesehen oder vielleicht sogar selbst genutzt. Ein gleitender Durchschnitt ist eine Linie, die nichts anderes tut, als den durchschnittlichen Wert über eine bestimmte Kerzen-Anzahl bildlich darzustellen. Wenn wir den gleitenden Durchschnitt und unsere Simulation hier einmal stoppen, dann sehen wir, dass hier oben in der Ecke ein Wert ausgegeben wird. Es handelt sich die Zahl 0.9950625. Und wenn wir die Maus kurz hier über den aktuellen Wert des gleitenden Durchschnitts halten, dann sehen wir eine Zahl von 0.99503. Lassen wir das kurz weiterlaufen. Jetzt sehen wir 0.995023. Das deckt sich mit dem Wert, der hier oben berechnet wird. Man kann jetzt in einem Expert-Advisor für den eigenen Trading Roboter die Werte des gleitenden Durchschnitts mit der aktuellen Kerze vergleichen. Das ist ganz nützlich, um die Einstiegs-Richtung zu bestimmen. Wenn der Kurs den gleitenden Durchschnitt von unten kreuzt, dann ist das ein Einstiegs-Signal, long zu gehen und zu kaufen. Und andersherum, wenn der Kurs von oben nach unten unseren gleitenden Durchschnitt überschreitet, dann wäre das ein Signal, zu verkaufen. Dieser gleitende Durchschnitt gilt für 20 Kerzen, wie man in den runden Klammern sehen kann. Man könnte aber hier über die Eigenschaften auch eine Kerze einstellen. In diesem Fall verbindet unser gleitender Durchschnitt die Schluss-Kurse einer Kerze immer mit den Schluss-Kursen der nächsten Kerze. Stellen wir die Eigenschaften einmal auf 100 Kerzen dann sieht das schon ganz anders aus. Und hier kann man in etwa erkennen, dass sich der Kurs einmal oberhalb und einmal unterhalb des Durchschnittes bewegt. Das bedeutet zum überwiegenden Teil, dass wenn der Kurs den Moving Average schneidet, es auch erst mal in die entsprechende Richtung weitergeht. Wie kann man jetzt einen solchen gleitenden Durchschnitt in MQL5 berechnen? Dazu klicken wir hier oben links auf diesen kleinen Button oder drücken die F4 Taste, den MetaEditor anzuzeigen. Im MetaEditor wählen wir Datei neu, Expert-Advisor aus Vorlage, klicken auf weiter, vergeben hier den Namen simpler, gleitender Durchschnitt, klicken auf weiter, weiter fertigstellen, entfernen alles oberhalb der OnTick Funktion und diese beiden Kommentar Zeilen. Und das erste, was wir benötigen, ist ein Array, also eine Sammlung von gleichartigen Variablen, die unsere Preis Daten aufnehmen werden. Wir vergeben hier den Namen MeinPreis Daten Array und es handelt sich eine Variable vom Typ Double. Diese beiden eckigen Klammern deuten darauf hin, dass wir eine Vielzahl solcher Variablen mit dem gleichen Namen und einer unterschiedlichen Zahl benötigen. So ein Array kann man sich vorstellen wie eine ganze Menge gleichgebauter Schubladen, die unterschiedliche Inhalte aufnehmen. Im nächsten Schritt wird unser gleitender Durchschnitt definiert. Wir hätten gerne einen SMA, einen simple moving Average und der wird mit der Funktion IMA für das aktuelle Währungspaar auf dem Chart in der aktuell auf dem Chart gewählten Zeiteinheit für die letzten 20 Kerzen mit Hilfe der Konstante Mode SMA für den Schluss-Kurs der jeweiligen Kerzen erstellt. Unsere nächste Zeile kopiert die Preis-Daten in die Definition von unserem gleitenden Durchschnitt. Da wir nur eine einzige Linie benötigen, kommt hier eine Null hin und wir möchten gerne von der aktuellen Kerze aus drei Kerzen rückwirkend die Preise in unser Preis-Daten-Array kopieren. Jetzt möchten wir noch die Berechnung für die aktuelle Kerze vornehmen,
Diesmal geht es einen Indikator, den die meisten Trader lieben. Man bezeichnet ihn als Parabolischen SAR Indikator, und er zeichnet solche Punkte. Erfunden wurde er von jemandem mit dem Namen J. W. Wilder Junior. Und potentiell soll er Umkehrpunkte in der Preisentwicklung des Marktes darstellen können. Tatsächlich sieht das ganz beeindruckend aus. Man sieht hier, dass es aufwärts ging bis zu dieser Stelle. Dann hat sich die Richtung plötzlich geändert. Die Punkte erscheinen oberhalb des Kurses und es geht die ganze Zeit abwärts mit der Preisentwicklung, bis sich plötzlich hier die Preisrichtung dreht. Und jetzt befinden wir uns in einem Aufwärtstrend. Wenn man mit der Maus über diesen letzten Punkt geht, dann sieht man, dass dort ein Wert von 1.505 1994 angezeigt wird. Das ist auch der berechnete Wert hier oben links in der Ecke. Und jetzt geht es um die Frage, wie kann man sich mit MQL5 einen Expert Advisor erstellen, der genau diesen Wert hier ausrechnet? Und man könnte dann im eigenen System schauen, ob dieser Wert unterhalb des Kurses liegt, das würde für einen Aufwärtstrend sprechen. Und wenn die Punkte oberhalb des aktuellen Preises liegen, dann ist es ein Abwärtstrend. Um einen solchen Indikator beziehungsweise Expert Advisor zu erstellen, klicken wir erst einmal hier oben auf diesen kleinen Button oder drücken die F4 Taste. Das ruft den MetaEditor auf, mit dem wir ein MQL5 Programm erstellen können. Hier klicken wir jetzt auf Datei, neu, wählen Expert Advisor aus Vorlage aus, klicken auf weiter und nennen unser Programm an der Stelle Simpler SAR. Jetzt klicken wir auf weiter, weiter fertigstellen und löschen alle Inhalte oberhalb der OnTick Funktion und diese beiden Kommentar Zeilen hier. Und wie so oft brauchen wir zuerst ein Array für unsere Preis Daten. Also erstellen wir ein Array vom Typ Double mit dem Namen MySAR Array. Danach nutzen wir die Funktion ISAR, die in MQL5 eingebaut ist, für das aktuelle Symbol, also das Währungspaar, was wir gerade auf dem Chart haben und die aktuell eingestellte Periode, also die Zeiteinheit, wie zum Beispiel das Minuten-Chart, unseren SAR-Indikator zu definieren. Diese beiden Werte erkläre ich auch noch kurz. Wenn wir mit F4 zurück wechseln in den MetaTrader, können wir über Einfügen, Indikatoren, Tendenz den Parabolic SAR Indicator auswählen und der hat hier einen Schritt und einen Maximumwert. Und wir möchten die Standardwerte für den Schritt 0.02 und für das Maximum 0.2 benutzen. Und das sieht dann in unserem Quelltext so aus. Jetzt sortieren wir unser Array absteigend von der aktuellen Kerze 0 abwärts. Dazu nutzen wir die Funktion Array set as series und im nächsten Schritt füllen wir mit der Funktion Copy Buffer unser erstelltes MySAR Array für die erste Linie des Indikators, da er nur eine Linie hat, von der aktuellen Kerze abwärts für drei Kerzen nach der von uns hier oben erstellten Definition mit Daten. Im nächsten Schritt möchten wir den SR-Wert für die aktuelle Kerze berechnen. Das machen wir, indem wir uns aus dem My SAR Array von der Kerze null den benötigten Wert holen. Wir möchten hier aber fünf Nachkommastellen haben. Diese Funktion normalize Double ermöglicht uns für den vor dem Komma stehenden Wert die nach dem Komma stehende Anzahl von Kommastellen für die Ausgabe zu wählen. Würde ich hier eine zwei nehmen, dann hätten wir nur zwei Nachkommastellen. Wir benötigen in diesem Fall fünf. Gut, im letzten Schritt geht es noch darum, unsere berechneten Werte mit dem Text MySAR-Wert und einem Doppelpunkt mit der Funktion Commen direkt auf dem Chart anzuzeigen. Kompilieren wir also unseren Expert Advisor einmal. Da ist ein Fehler.
In diesem Video werden wir über eines meiner Beispiele aus der Praxis sprechen. Es handelt sich um das Robot-Trading-System, das ich selbst benutze, und eines meiner Premium-Kursmitglieder wollte wissen, wie so etwas funktioniert. Lassen Sie uns also einen Blick auf die Details werfen. Nun, wenn Sie sich das Roboterhandelssystem ansehen, sehen Sie, dass dies die Version vom Juni ist. Wir haben jetzt den einundzwanzigsten Oktober und hier haben wir die Ergebnisse und Trades, insgesamt haben wir einen Gewinn von einhundertneunundfünfzig Dollar gemacht und wenn wir uns die Gesamtübersicht hier ansehen, sehen wir, dass der Saldo derzeit fast gleich dem Eigenkapital ist, was bedeutet, dass wir nur einen offenen Trade haben, der derzeit ein offener Verlust von neunundneunzig Cent ist. Was ist also der Unterschied zwischen diesem Trade und einem, der einen offenen Verlust von neunundneunzig Dollar bedeuten würde? Der Unterschied ist emotional, denn es ist nicht die Zahl, die darüber entscheidet, ob ein System funktioniert oder nicht, sondern was der Unterschied für uns bedeutet. Werfen wir also einen Blick auf die Historie, und hier sehen wir, dass wir Verluste und Gewinne haben, also nicht jeder Trade ein Erfolg war, aber alles in allem ist das Systemergebnis stabil, zumindest im Moment. Wenn wir in das System hineinzoomen, sehen wir diese Linien hier, die wie ein Fächer aussehen, und jede davon ist eine Reihe von Positionen, die wir eröffnet haben. Und an diesem Punkt hier wurden alle Positionen auf einmal geschlossen. Zoomen Sie noch ein wenig weiter hinein und Sie werden auch Bereiche sehen, in denen kein Fächer zu sehen ist, wie zum Beispiel hier. Und das sind einfache Positionen, die einen Gewinn erzielt haben, ohne dass wir eine Serie starten mussten. Wie entscheiden wir also, ob wir nur eine Position eingehen oder mehrere Positionen eröffnen wollen? Nun, in meinem Fall habe ich Regeln. Und derzeit befinden wir uns in einem Abwärtstrend. Das sehen wir daran, dass wir zwei einfache gleitende Durchschnitte haben, einen für eintausendeinhundert Kerzen und einen für eintausend Kerzen. Und solange der grüne unter dem roten liegt, befinden wir uns in einem Abwärtstrend, und der sieht im Moment ziemlich stabil aus. Wie Sie sehen, waren die letzten Transaktionen, die wir getätigt haben, Verkäufe, wir haben also mit dem Trend gehandelt. Aber wir haben immer noch einige Positionen, die sich nicht bewährt haben. Wie war das möglich? Nun, das liegt daran, dass selbst in einem stabilen Trend Korrekturen vorkommen. Das ist der Fall, wenn wir eine Position eröffnen, wie hier, und der Kurs dann plötzlich in einer Korrektur nach oben geht. Und wenn Sie genauer hinschauen, ist das bei all diesen Fächern hier der Fall. Der Kurs ist gefallen, dann haben wir hier einen Handel gemacht. Plötzlich kam es zu einer Korrektur, die sich gegen uns richtete. Aber wir konnten trotzdem alle Positionen von hier bis hier mit Gewinn schließen. Denn schließlich begann der kurzfristige Trend wieder mit dem Haupttrend mitzugehen und der Kurs ging nach unten. Es ist zwar einfach zu sehen, was passiert ist, nachdem es passiert ist, aber es ist oft ein großes Problem für die Menschen, eine Entscheidung zu treffen, was sie in Zukunft tun sollten! Nun, dies ist die Kontonummer hier. Lassen Sie uns also sehen, ob wir mehr Statistiken über das Geschehen bekommen können. Ich verwende dazu FXBlue, weil es bessere Statistiken liefert als der MetaTrader. In meinem Fall ist es auf Deutsch, weil ich aus Deutschland komme.
HIER KLICKEN UND COUPON CODE „PLATINSYSTEMDEMO“ NUTZEN FÜR DEMO KURS & DEMO VERSION https://elopage.com/s/crowdcompany/platin-demo-system-deutsch In diesem Video geht es das Thema Systemtest. Das hier ist das neue und verbesserte System für die Platin Gruppe. Wir haben jetzt hier zwei Signale und auch einige andere Dinge wurden verändert. Und in diesem Video wollen wir uns mal anschauen, wie man so ein System testet. Um das zu tun, müssen wir im MetaTrader zunächst einmal den richtigen Expert Advisor auswählen. Ich habe jetzt hier im Strategietester die Version vom 14.7. ausgewählt und das ist bereits das erste Kriterium. Man sollte, wenn man ein neues System erstellt, immer eine neue Version für jede Veränderung erstellen, auch wenn das etwas mehr Arbeit bedeutet. Aber dann hat man immer die Möglichkeit, zur letzten funktionierenden Version zurückzukehren, wenn man mal einen Fehler gemacht hat. Das hier ist das Tagesdatum der 20.7.2023. Ich möchte also für ein komplettes Jahr testen und hier unter der Reiterkarte Eingaben stelle ich zunächst einmal alles auf die Standardwerte ein. Wenn ich jetzt hier den Test starte, dann sehe ich den Strategietester mit den Angaben auf dem Chart. Wir wollen uns aber etwas Zeit sparen. Darum halte ich das hier mal an und wir machen den Test ohne den visuellen Modus. Der sollte in der optimierten Version relativ zügig vonstatten gehen. Hier wird bereits angezeigt, wie sich der Verlauf entwickelt. Die Gesamt-Testzeit wird hier mit etwa zwei Minuten angegeben und ich werde gleich das Video vorspulen bis zum Ende des Tests, um zu zeigen, was für ein Ergebnis dabei herauskommt. So, wie man sieht, hat das System überlebt, aber wir haben natürlich hier keinen Profit gemacht. Der Grund dafür ist: Die Standardeinstellungen sind dafür gedacht, über einen langen Zeitraum von zehn oder mehr Jahren ein System langfristig profitabel zu machen. Das kann aber für einzelne Jahre mal falsch sein. Und natürlich kann man solche Werte jetzt optimieren. Wir fangen hier mal an, indem wir die Werte für die Kurve und für die Positionsgröße verändern und starten den Test erneut. Okay, der zweite Strategietest ist durch. Das sieht schon ganz gut aus. Das könnte allerdings hier deutlich profitabler sein. Also gehe ich im nächsten Schritt jeweils etwas höher mit diesen beiden Werten und starte den Test noch mal. Auch das hat funktioniert, aber profitabel ist das noch nicht. Setzen wir mal die Positionsgröße auf das Vierfache, denn die Drawdowns hier waren nicht wirklich hoch. Und schauen wir mal, ob wir das optimieren können. So, auch dieser Test ist fertig und diesmal liegen wir bei etwa 11,3% Profit mit einem moderaten Risiko. Das ist in etwa das, was ich als realistische Gewinnerwartung sehe. Natürlich kann man jetzt hier mit diesen Werten auch viel, viel höher gehen, aber das würde nicht für jedes Jahr funktionieren. Im Jahr 2003 habe ich mit meinen Tests begonnen. Ich könnte das hier entsprechend umstellen und das würde dann mit den Standardeinstellungen für 20 Jahre funktionieren. Aber ich bin ziemlich sicher, dass diese Einstellungen hier an irgendeinem Punkt in diesem Langzeit-Test zu aggressiv wären. Wir können ja einfach mal testen, indem wir die Werte hier noch mal verdoppeln und schauen, was passiert. So, auch dieser Strategietest ist zu Ende und diesmal hätten wir 45.000 Gewinn gemacht. Das wären 45% für ein 100.000 $ Konto. Und das sieht natürlich auf diesem Diagramm hier alles total einfach und geschmeidig aus. Aber die Leute, die im Trading wirklich Profit machen, sind die Leute, die solche Drawdowns hier aushalten können, ohne ihr eigenes System zu manipulieren.
In diesem Video schauen wir uns einmal diesen Indikator hier an. Es handelt sich um einen Oszillator. Es ist der Commodity Channel Index. Und wir möchten uns einmal ansehen, wie man für diesen Indikator, für den Metatrader 5 in MQL5 einen Expert Advisor programmieren kann, der in der Lage ist, nicht nur die Signale auf dem Chart auszugeben, sondern auch selbständig Positionen zu eröffnen und zu schließen. Um das zu tun, klicken Sie bitte auf den kleinen Button hier oben links oder drücken sie die F4 Taste im Metatrader. Das öffnet dann hier das Meta Editor Fenster. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerICCIStandaloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Wir starten hier oben damit, dass wir die Datei Trade.mqh importieren. Das geht mit dem include Befehl. Diese Datei gehört zum Umfang von MQL5 dazu. Diese Datei ermöglicht uns eine Instanz von der Klasse CTrade zu bilden. Die bekommt den Namen trade. Und wir werden sie später verwenden, um Positionen zu eröffnen. Vorher müssen wir ein paar Dinge berechnen. Zunächst brauchen wir den Ask und den Bid Preis. Die liefert uns die Funktion SymboInfoDouble für das aktuelle Währungspaar auf dem Chart. Mit SYMBOL_ASK kriegen wir den Ask Preis. Und SYMBOL_BID wird uns den Bid Preis liefern. Wir formatieren das Ganze mit NormalizeDouble und Unterstrich Digits. Denn manche Währungspaare haben drei Nachkommastellen, während andere fünf Nachkommastellen haben. Und diese Funktion stellt sicher, dass die richtige Anzahl von Nachkommastellen berechnet wird. Jetzt wo wir die zwei Preise haben, erstellen wir uns ein Preis-Array. Das machen wir mit der Funktion MqlRates und nennen es PriceInfo. Dieses Array wird die Preise für die Kerzen auf dem Chart aufnehmen. Zunächst sortieren wir es mit ArrySetAsSeries von der aktuellen Kerze an abwärts. Danach nutzen wir CopyRates um es mit Preisdaten zu füllen. Und zwar für das aktuelle Symbol, also Währungspaar auf dem Chart, die auf dem Chart ausgewählte Zeiteinheit. Wir starten von der aktuellen Kerze null und kopieren uns die Preisdaten für drei Kerzen in unser PriceInfo Array. Außerdem brauchen wir eine string Variable für unser Signal. Die nennen wir auch Signal. Den wert ermitteln wir später. Zunächst weisen wir hier noch keinen Wert zu. Jetzt brauchen wir noch ein Array. Das bekommt den Namen myPriceArray. Und das wird dieses Mal die Daten für unseren Expert Advisor aufnehmen. Wir definieren jetzt den Commodity Channel Index Expert Advisor indem wir die Funktion ICCI benutzen. Die wird mit MQL5 mitgeliefert. Und als Parameter nutzen wir das aktuelle Währungspaar, die aus dem Chart ausgewählte Zeiteinheit. Und wenn Sie sich fragen, was diese 14 hier bedeutet, dann klicken Sie doch einmal auf Einfügen, Indikatoren, Oszillatoren, Commodity Channel Index. Dann werden Sie sehen, dass hier die Periode auf 14 eingestellt ist. Das sind 14 Kerzen und genau das, was wir hier verwenden. Als letzten Parameter übergeben wir PRICE_CLOSE, damit die Ergebnisse anhand der Schlusskurse berechnet werden. Auch dieses Array wird mit ArraySetAsSeries wieder von der aktuellen Kerze an abwärts sortiert. Und dieses Mal nutzen wir CopyBuffer um anhand der von uns getroffenen Definition, die wir hier oben erstellt haben für Buffer null, also das erste Puffer, im Klartext diese blaue Linie hier, von der aktuellen Kerze null für drei Kerzen die Preisdaten in unser PriceArray zu kopieren. Und jetzt erhalten wir den aktuellen ICCIWert für die Kerze,
Der Handel kann sich oft wie ein Spiel mit hohen Einsätzen anfühlen, wo die Herausforderung nicht nur in der Erzielung von Profiten liegt, sondern auch im Umgang mit den inhärenten Risiken und unvermeidlichen Tiefs. Das gilt auch für das Robot Trading System, ein Trading-Tool, das traditionelle Ansätze umgestaltet, indem es die Widerstandsfähigkeit ebenso berücksichtigt wie die Erträge. Vor etwa einer Woche habe ich mich mit diesem Handelssystem auf eine neue Live-Trading-Session begeben. Wie mit den meisten Dingen, die neu sind, verlief der Anfang nicht gerade reibungslos. Ich fand mich in einer Situation wieder, die Händler oft fürchten – einem Drawdown. Dieses Szenario trat ein, obwohl ich eine bewährte Strategie gewählt hatte, nämlich die Eröffnung einer Verkaufsposition während eines Abwärtstrends. Die Unberechenbarkeit des Marktes nahm jedoch ihren Lauf, und so endete ich in der entgegengesetzten Richtung des geplanten Profits. Das Ergebnis war, dass mein Handelskonto eine ganze Woche lang keine Erträge einbrachte. Für viele mag eine Woche ohne Profite ein Zeichen für ein unwirksames System sein, aber ich bin da anderer Meinung. Es stimmt zwar, dass die erste Woche keinen finanziellen Ertrag gebracht hat, aber das bemerkenswerte Detail ist, dass es keine Verluste gab. Es ist wichtig, an dieser Stelle zu erwähnen, dass das Robot Trading System, das ich verwendet habe, speziell für den Umgang mit solchen Drawdowns entwickelt wurde. Das System setzt einen intelligenten Algorithmus ein, der Positionen effizient absichert und so ein Gleichgewicht aufrechterhält, selbst wenn sich der Markt nicht in die vorhergesagte Richtung bewegt. Dies mag wie ein kleiner Erfolg erscheinen, aber wenn Sie handeln, vor allem in einem volatilen Markt, kann die Vermeidung von Verlusten genauso wichtig sein, wenn nicht sogar wichtiger, als das Erzielen bedeutender Profite. Am Stichtag dreiundzwanzigsten Juni hatte mein Konto trotz der Marktturbulenzen der Woche einen Nettogewinn von einem einzigen Dollar. Das mag oberflächlich betrachtet keine große Leistung sein, aber wenn man den Kontext betrachtet, ist es für mich ein Beweis für die Effektivität des Systems hinsichtlich der Absicherung gegen mögliche Verluste. Für diejenigen, die sich für die Fähigkeit des Systems interessieren, Verluste unter unvorhersehbaren Marktbedingungen zu begrenzen, bietet das Robot Trading System ein Demokonto zum Testen an. Damit haben Sie die Möglichkeit, ohne Risiko die Funktionsweise des Systems zu verstehen und seine einzigartigen Funktionen zu erkunden. Der Schwerpunkt des Systems auf Belastbarkeit und Risikominderung könnte eine erfrischende Abwechslung zu traditionellen Systemen sein, die sich in erster Linie auf die Profitgenerierung konzentrieren. In der Welt des Handels, in der sich die Gezeiten schnell und unerwartet ändern können, ist es ein Trost, ein Werkzeug zu haben, das dem Auf und Ab der Markttrends standhalten kann. Das Robot Trading System tut genau das, indem es ein Gleichgewicht zwischen Risiko und Ertrag herstellt. Es mag nicht immer einen sofortigen Profit bringen, aber es bietet einen Puffer gegen potenzielle Verluste in turbulenten Marktphasen und sorgt so für ein sichereres Handelserlebnis. Mit seiner einzigartigen Ausrichtung auf Widerstandsfähigkeit und einem strategischen Ansatz für das Risikomanagement hebt es sich von anderen Handelssystemen ab. Für alle, die ein zuverlässiges, stress-getestetes System suchen, das den Unwägbarkeiten der Märkte standhält, ist das Robot Trading System definitiv eine Überlegung wert.
In diesem Video möchte ich mal auf etwas hinweisen, was vielleicht vielen Menschen gar nicht auffällt. Es handelt sich ein Problem mit Datenqualität. Wenn man sich anschaut, dass wir hier jeweils eine Kerze pro Tag sehen, dann wundert man sich eventuell, denn in den Einstellungen haben wir eigentlich definiert, dass wir das Ein-Stunden Chart traden wollten. Wenn man diese Test Sequenz kurz anhält und mit der Maus über eine Kerze geht, dann sieht man, dass die Werte für alle diese Kerzen hier für jeweils null Uhr eines bestimmten Tages erstellt werden. Darum sieht man hier unten auf der Skala auch August, September, Oktober und November, obwohl das hier vielleicht gerade mal 150 Kerzen sind. Man fragt sich also, was geht hier vor? Und wenn wir den Test hier mal stoppen, den visuellen Modus ausschalten und den Test erneut starten, dann bekommen wir hier in der Anzeige auf dem Reiter für den BackTest angezeigt, dass wir eine historische Qualität von 0% haben. Auf Deutsch gesagt, wir haben für das ganze Jahr gerade mal 260 Kerzen. Die Daten sind korrupt. Wiederholen wir den ganzen Test mal für den Euro US Dollar, dann sehen wir hier, dass die Kerzen jeweils für die jeweilige Stunde angezeigt werden. Falls Sie also schlechte Ergebnisse haben, kann das durchaus damit zusammenhängen, dass die Qualität Ihrer historischen Daten schlecht ist. Wenn ich das hier mal stoppe und wir den visuellen Modus ausschalten und den Test erneut starten, dann sollten wir hier gleich ein Ergebnis bekommen. Und diesmal zeigt uns unser Ergebnis eine historische Datenqualität von 99 Prozent. Achten Sie also darauf, dass Sie vor allen Dingen, wenn Sie schlechte Ergebnisse haben, immer mal die Qualität der historischen Daten überprüfen. Man kann alle heruntergeladenen historischen Daten auch löschen. Wie das geht, zeige ich in einem anderen Video. Ich nutze dafür unter Windows immer die Software WinDirStat. Die zeigt mir Verzeichnisgrößen an und erlaubt mir auch direkt von da aus in den Explorer zu gehen. Das war's für dieses Video. Ich sage vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten Video. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten MQL5 Tutorial Deutsch - Mangelhafte Qualität historischer… MQL5 Tutorial Deutsch - Simple Schlusskurs-Berechnung in… MQL5 TUTORIAL DEUTSCH - SIMPLER ONBALANCE EA MQL5 TUTORIAL DEUTSCH - SIMPLER ICHIMOKU KINKO HYO MQL5 TUTORIAL DEUTSCH - BESSER...
In diesem Video wollen wir uns einmal anschauen, wie man eine Lotgröße basierend auf dem Kontostand berechnen kann und wie man das Ergebnis so auf oder abrundet, dass das auch passt. Also lassen Sie uns mal schauen, wie man das mit MQL5 realisieren kann. Um das zu tun, klicken Sie im MetaTrader bitte hier oben auf das Icon oder drücken Sie die F4 Taste. Dann sollten Sie im MetaEditor landen. Und hier klicken wir auf Datei, Neu Expert Advisor aus Vorlage, weiter, vergeben hier einen Namen. Ich habe das schon getan. Meine Datei heißt Simple Lotgrößenrundung und wir haben das hier schon mal vorprogrammiert. Wir starten mit der On Tick Funktion. Dort wollen wir zunächst einmal das Konto Guthaben, also die Balance errechnen. Das geht mithilfe der Funktion Account Info Double, Account Balance und basierend auf dem Kontostand möchten wir die Positionsgröße berechnen. In unserem Fall nutzen wir dafür den Brutto Guthaben Wert und teilen diesen durch 100.000. Außerdem erstellen wir zwei Variablen für die gerundeten Werte einmal aufgerundet und einmal abgerundet. Diese ermitteln wir mithilfe der jeweiligen Funktion, die wir selbst programmieren. Die erste Funktion heißt Round up, die zweite Round down und wir übergeben jeweils als Parameter die berechnete Lotgröße und den Wert für die Kommastellen Rundung. Wir möchten das hier auf eine Kommastelle runden. Mit Normalize Double kann man die Endergebnisse noch etwas formatierter ausgeben. Obwohl wir hier jeweils zwei NachKommastellen angegeben haben, sehen wir, dass unsere Ergebnisse nach der ersten Stelle abgeschnitten werden. Und mithilfe der Comment Funktion geben wir das Ganze auf dem Chart aus. Kommen wir zu den eigentlichen Funktionen. Um aufzurunden, übergeben wir unseren Eingabewert. Das ist die Positionsgröße, die wir oben übergeben haben und unseren Rundungswert. Das ist der zweite Parameter hier für die NachKommastellen. Und um das Resultat zu ermitteln, multiplizieren wir den Rundungswert mit dem Ergebnis dieser Funktion. Wenn Sie einmal F1 drücken und sich das in der Hilfe aufrufen, dann sehen Sie, dass da ein ganzzahliger Wert zurückgeliefert wird. Und als Parameter übergeben wir der Funktion MathCeil den Eingabewert und den Rundungswert. Anschließend nutzen wir Return, um unser Resultat wieder an die Funktion zurückzugeben. Die zweite Funktion zum Abrunden des Wertes funktioniert ähnlich. Hier nutzen wir allerdings nicht MathCeil, sondern MathFloor. Und auch hier geben wir das Resultat zurück an unsere Hauptfunktion. Und das führt dann dazu, dass bei einer ermittelten Lotgröße von 0,25 Loth der aufgerundete Wert 0,3 und der abgerundete Wert 0,2 erscheint. Je nachdem, welchen Konten-Typ Sie haben, können Sie das entsprechend anpassen und so die richtigen Werte übergeben, damit eine Position auch korrekt eröffnet werden kann. Denn nicht alle Content Typen unterstützen die Staffelung in Mikrolotgrößen bis auf die zweite NachKommastelle. Das hier war übrigens wieder eine Anfrage von einem Premiumkunden. Und wenn Sie Premiumkunde sind und eine Idee für ein solches Video haben, dann schicken Sie mir einfach ein Email. Andernfalls finden Sie den Premiumkurs auf unserer Website. Und in diesem Video haben Sie gelernt, wie Sie Lotgrößen einfach auf- oder abrunden können, damit das zu Ihrem Kontotyp passt. Und Sie haben das selbst programmiert mit diesen paar Zeilen hier in MQL5. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assis...
In diesem Video möchten wir uns einmal anschauen, wie man diesen Indikator hier automatisch handeln kann. Es handelt sich um den Fractal Adaptive Moving Average Indikator. Das ist diese blaue Linie hier. Wir haben hier bereits eine erste Position vollautomatisch eröffnet. Und wir möchten jetzt einmal schauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist, auf dem Chart diese Kaufen und Verkaufen Signale auszugeben und Positionen automatisch zu eröffnen. Um das zu tun, klicken wir im Metatrader auf diesen kleinen Button hier oder drücken die F4 Taste. Das öffnet dann hier den Metaeditor. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerIFRAMAStandaloneEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann aller oberhalb der OnTick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Und wir beginnen damit, dass wir mittels include die Datei Trade.mqh importieren. Die bringt einige Handelsfunktionen mit sich und wir erstellen von der Klasse CTrade, die in dieser Datei enthalten ist, eine Instanz mit dem Namen Trade. In der On Tick Funktion berechnen wir zunächst den Ask-Preis. Das geht mittels SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen SYMBOL_ASK um den Ask-Preis zu berechnen. Die Funktion NormalizeDouble_Digits sorgen dafür, dass die Anzahl von Ziffern nach dem Dezimalpunkt richtig berechnet werden. Denn das ist, je nach Währungspaar unterschiedlich. Da wir in beide Richtungen handeln möchten, brauchen wir auch noch den Bid-Preis. Den ermitteln wir genauso. Allerdings nutzen wir dieses Mal SYMBOL_BID. Für unser Signal erstellen wir eine gleichnamige Variable. Die ist vom Typ string, damit sie Textketten aufnehmen kann. Aber im Moment weisen wir noch keinen Wert zu. Mit MqlRates erstellen wir uns ein Preis Array. MylRates ist eine Funktion, die die Informationen über die Preise, das Volumen und den Spread der Kerzen aufbewahrt. Unser Preis Array sortieren wir jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts. Danach nutzen wir CopyRates für das aktuelle Währungspaar und die aktuell auf dem Chart ausgewählte Zeiteinheit um unser Preis Array von der aktuellen Kerze null für drei Kerzen mit Preisdaten zu füllen. Jetzt brauchen wir noch ein Array. Das ist für unseren Expert Advisor und bekommt den Namen FramaArray. Für die Definition nutzen wir die, in MQL5 eingebaute Funktion, iFrAMA für das aktuelle Währungspaar auf den Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir berechnen unseren Expert Advisor anhand von 14 Kerzen, benutzen keine Verschiebung. Und ermittelt wird das Ganze anhand der Schlusskurse. Wenn Sie sich hier einmal mit der rechten Maustaste die Eigenschaften anzeigen lassen, dann sehen Sie auch hier: 14 Kerzen, Verschiebung ist null und Anwenden auf Close Preis. Das ist genau das, was wir auch hier verwenden. Auch dieses Array sortieren wir wieder von der aktuellen Kerze an abwärts mit ArraySetAsSeries. Und mit CopyBuffer füllen wir jetzt unseren FRAMA EA anhand der Definition, die wir hier oben getroffen haben. Für Buffer null, das ist diese blaue Linie hier, von der aktuellen Kerze null für drei Kerzen mit Daten, die wir in unserem Array abspeichern. Nun berechnen wir den letzten Wert. Das tun wir, indem wir auf Kerze eins in unserem Array zugreifen. Und wir möchten verkaufen, wenn der Frama Wert über dem letzten Kerzenhoch liegt. Wenn also der Frama Wert größer ist als der Höchstpreis von Kerze eins in unserem Preis Array. Dann möchten wir gerne verkaufen und weisen den Wert verkaufen unserer Signal Var...
In diesem Video werden wir einen Expert Advisor erstellen, der in der Lage ist, automatisch ein Bollinger Bands Einstiegssignal und einen Filter für den MacD Oszillator in Metatrader5 zu handeln. Beide Indikatoren sind sehr beliebt und können kombiniert werden, um Kauf- und Verkaufssignale zu erzeugen, die mit diesem eigenständigen Expert Advisor automatisch gehandelt werden können. Schauen wir uns also an, wie man das in MQL5 macht. Bitte öffnen Sie den MetaEditor. Wir beginnen mit der Erstellung eines neuen Expert Advisors, indem wir auf Datei, Neu, Expert Advisor aus Vorlage klicken. Fahren wir fort mit der Include-Funktion, um die Datei Trade.mqh einzubinden, die mit MQL5 geliefert wird. Sie bietet vereinfachte Handelsfunktionen und wir erstellen eine Instanz der Klasse CTrade, um sie nutzen zu können. Anschließend binden wir zwei Dateien für das Einstiegs- und das Filtersignal ein. Die erste ist für die Bollinger Bands und wird uns ein Handelssignal liefern. Die zweite ist für den MacD und wird uns ein Filtersignal liefern. Beide Dateien wurden bereits als separate Module programmiert, so dass sie auch für andere Expert Advisors verwendet werden können. Wenn Sie Zeit und Mühe sparen möchten, können Sie zu MQL5Tutorial.com gehen, wo Sie den Premium-Kurs und eine Menge vorprogrammierte Quellcode-Dateien im Store finden. Im nächsten Schritt müssen wir den Ask Preis und den Bid-Preis berechnen. Dies können Sie mit der Funktion SymbolInfoDouble für das aktuelle Symbol im Chart tun. Wir verwenden Symbol_Ask zur Berechnung des Ask Kurses und Symbol_Bid zur Berechnung des Bid-Kurses. Mit NormalizeDouble und UnderscoreDigits können wir die Anzahl der Ziffern hinter dem Punkt berechnen. Je nach Währungspaar können das 3 oder 5 Ziffern sein. Mit MqlRates erstellen wir ein Array für Preise, genannt PriceInfo. Innerhalb der Funktion Ontick verwenden wir Array Set As Series, um unser Preis-Array von der aktuellen Kerze abwärts zu sortieren. Dann können wir copy rates verwenden, um unser Preis-Array mit Daten zu füllen. Wir tun dies für das aktuelle Symbol und den aktuell ausgewählten Zeitraum auf unserem Chart, beginnend bei Kerze 0, für 3 Kerzen und speichern das Ergebnis in unserem Preisinfo-Array. Lassen Sie uns nun den aktuellen Preis berechnen, indem wir den Schlusskurs der Kerze 0 in unserem Preisinfo-Array betrachten. Wir erstellen eine Text Variable für das Handelssignal und rufen die Funktion CheckEntryBollinger auf, um zu prüfen, ob ein Kauf- oder Verkaufssignal vorliegt. Dasselbe tun wir für eine weitere Text Variable namens Filter und rufen die Funktion CheckEntryMacD auf, um das Filtersignal zu erhalten. Wenn das Handelssignal und der Filter beide ein Kaufsignal liefern und wir keine offenen Positionen haben, möchten wir trade.buy verwenden, um 10 Mikrolot zu kaufen. Im anderen Fall, wenn sowohl das Handelssignal als auch der Filter ein Verkaufssignal liefern, verwenden wir trade.sell, um 10 Mikrolot zu verkaufen. Schließlich verwenden wir die Anweisung Comment, um das Handelssignal und den Filter auf unserem Chart auszugeben. Drücken Sie F7, um den Code zu kompilieren. Wenn das ohne Fehler funktioniert, können Sie mit der Taste F4 zum Metatrader zurückkehren. Okay, wenn alles gut gelaufen ist, sollten Sie jetzt einen funktionierenden Standalone Expert Advisor für das Bollinger Bands Signal und den MacD Filter haben. Sie können einen Strategietest wie diesen durchführen, indem Sie in Metatrader5 die Tasten Strg und R drücken. Wenn Sie Ihre Handelsergebnisse verbessern möchten,
MQL5 kann erkennen, wann der Metatrader5 eine neue Kerze auf dem Chart ausbildet und mit dieser Berechnung lassen sich Trading Strategien entwickeln, die beispielsweise aufgrund der Schlusskurse der letzten Kerze handeln. Wenn Sie sich einmal mit Charting oder der so gennanten Markttechnik beschäftigt haben, dann wissen Sie, dass es manchmal nützlich und sinnvoll ist, die höchste Kerze in einem bestimmten Kontext zu ermitteln. In diesem Fall ermitteln wir den Höchstwert der letzten 10 Kerzen. Derzeit zeigt uns der Metatrader hier die Kerze 1 an, das liegt daran, dass die aktuelle Kerze noch nicht fertig ist. Die Kerze, die gerade gebildet wird hat immer die Nummer 0. Das hier ist die Kerze 1 und das hier ist der mit Abstand höchste Punkt, zumindest innerhalb der letzten 10 Kerzen. Lassen wir den Expert Advisor etwas weiter laufen, dann sehen wir jetzt, dass es Kerze 5 ist. Das hier ist jetzt Kerze 0, 1, 2, 3, 4, 5. Tatsächlich, unser Expert Advisor funktioniert. Wie kann man das jetzt auf einfache Art und Weise in MQL5 umsetzen? Um das zu tun, drücken wir im Metatrader hier auf diesen Button oder wir drücken auf die F4-Taste. Das wird den Metaeditor laden. Dort klicken wir hier auf New oder Datei, Neu, wählen den Expert Advisor aus Vorlage, klicken auf Weiter, vergeben hier den Namen SimpleHoechsteKerze, klicken auf Weiter, Weiter, Fertigstellen und entfernen alles oberhalb der Ontick-Funktion. Auch diese zwei Kommentarzeilen hier brauchen wir nicht. Das erste, was wir wirklich brauchen ist eine double Variable. Die soll HoechsteKerzeM1 heissen. Als nächstes erstellen wir ein double Array, also eine ganze Anzahl von Variablen. Dieses Preisarray soll später die Höchstwerte aufnehmen. Jetzt möchten wir gerne unser Array absteigend für die Preise sortieren. Das geht mit der Funktion ArraySetAsSeries. Im nächsten Schritt möchten wir unser Array auch mit Werten befüllen. Das geht mit der Funktion CopyHigh, die holt sich in diesem Fall das aktuelle Währungspaar auf dem Chart und zwar vom Minutenchart, startet bei der aktuellen Kerze und geht 11 Kerzen zurück und kopiert das Ergebnis in unsere Arrayhöchstwerte. Und darin wollen wir jetzt die höchste Kerze ermitteln. Das kann die Funktion ArrayMaximum machen, die unser Array von der aktuellen bis zur elften Kerze davor durchsucht und das Ergebnis hier in die Variable HoechsteKerzeM1 packt. In einem letzten Schritt möchten wir jetzt unser ermitteltes Ergebnis noch mit dem Comment-Befehl auf unserem Chart ausgeben. Dazu zeigen wir den Text Hoechstwert der letzten 10 Kerzen und den Inhalt der Variable HoechsteKerzeM1 an, den wir hier oben berechnet haben. So, jetzt klicken wir auf Kompilieren. Unser Expert Advisor wurde ohne Fehler und mit einer Warnung kompiliert. Diese Warnung hier weist uns darauf hin, dass wir diesen Wert hier eigentlich auch in eine Textkette (wie diese hier) um wandeln sollten. Das wäre etwas eleganter, aber der Einfachheit halber geht es auch so. Über diesen kleinen Knopf hier wechseln wir wieder in den Metatrader und starten über Ansicht, Strategietester oder mit der Tastenkombination STRG und R den Strategietester. Hier wählen wir die Datei SimpleHoechsteKerze.ex5 aus und starten unseren Test. Hier bekommen wir die Anzeige Hoechstwert der letzten 10 Kerzen ist die Kerze Nummer 4. Das hier ist Kerze 0, die wird gerade gebildet und ist noch nicht fertig. 1,2,3,4. Innerhalb der letzten 10 Kerzen ist das hier tatsächlich die höchste Kerze. Lassen wir das etwas weiter laufen, bekommen wir in diesem Fall die Aussage Kerze 1 ist die höchste. Und es handelt sich hier tatsächlich um den höchsten Punkt. In diesem einfachen Expert Advisor haben Sie gelernt,
In diesem Video geht es darum, diesen Indikator hier zu handeln. Es handelt sich um den variable Index Dynamic Average Indikator. Der wird hier automatisch gehandelt. Wir haben bereits eine erste eröffnete Position. Und wir wollen uns einmal anschauen, wie man in MQL5 einen eigenständig handelsfähigen Expert Advisor in wenigen Minuten programmieren kann. Um das zu tun, klicken Sie bitte im Meta Trader hier oben auf diesen kleinen Button oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf. Und hier wählen wir Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerIcidyaStandAloneEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles gelöscht, was sich hier oberhalb der On Tick Funktion befindet. Auch die beiden Kommentarzeilen können entfernt werden. Wir beginnen damit, dass wir hier oben mit dem Include Befehl die Datei Trade.mqh importieren. Die gehört zum Lieferumfang von MQL5 dazu. Danach erstellen wir uns eine Instanz von der Klasse CTrade. Die bekommt den Namen Trade und wird uns einige Handelsfunktionen zur Verfügung stellen, die wir später nutzen, um Positionen zu eröffnen. Dafür brauchen wir erst einmal den Ask- und den Bid-Preis. Die ermitteln wir mit der Funktion SymbolInfoDouble. Die kann den Wert für diverse Eigenschaften eines Währungspaars zurückliefern. Und hier sehen wir SYMBOL_BID ist für den Bid-Preis und SYMBOL_ASK ist für den Ask-Preis. Wenn sie einmal ein Währungspaar anklicken, dann sehen sie hier, wir haben zwei Preislevel. Der rote Preis hier, ist der Ask-Preis, der blaue Preis hier, ist der Bid-Preis. Das dazwischen ist der spread an dem der Broker verdient. Wenn wir etwas kaufen, bekommen wir immer den etwas teureren Ask-Preis berechnet. Und wenn wir etwas verkaufen, erzielen wir nur den etwas niedrigeren Bid-Preis. Wir ermitteln mit _SYMBOL den Ask-Preis für das aktuelle Währungspaar auf dem Chart. Und mit NormalizeDouble und _Digits sorgen wir dafür, dass wir entweder fünf oder drei Nachkommastellen berechnen. Je nachdem, welches Währungspaar auf dem Chart sich gerade befindet. Das gleiche machen wir unten nochmal für den Bid-Preis. Außerdem benötigen wir noch eine String Variable für unser Signal. Wir vergeben auch den Namen Signal. Der Wert ist hier noch leer, denn der wird noch ermittelt. Jetzt brauchen wir noch ein Price Array. Das soll unsere Preisdaten aufnehmen. Und wir erstellen das mit der Funktion MQLRates. Die hat die Information über Preise, Volumen und Spread für uns. Mit der Funktion ArraySetAsSeries sortieren wir unser Price Array von der aktuellen Kerze an abwärts. Und mit CopyRates füllen wir unser Price Array mit Daten. Für das aktuelle Währungspaar und die aus dem Chart aktuell ausgewählte Zeiteinheit. Wir starten mit der aktuellen Kerze 0. Und brauchen Daten für drei Kerzen. Das reicht uns. Danach brauchen wir noch ein EA Array für die Werte von unserem Expert Advisor. Auch das sortieren wir mit ArraySetAsSeries. Und jetzt kommt die eigentliche Definition: Die erstellen wir mit dieser eingebauten Funktion iVIDyA. Die liefert uns den Wert für den Variable Index Dynamic Average Indikator zurück. Wenn man sich das einmal kurz anschaut, dann gibt es für jeden Punkt auf dieser roten Linie einen Wert, hier zu sehen als Value. Und alle diese Werte zusammen ergeben dann die Linie. Das ermittelt diese Funktion. Die braucht noch ein paar Parameter. Auch hier wieder das aktuelle Währungspaar auf dem Chart. Die aktuell ausgewählte Zeiteinheit und hier haben wir eine 9, eine 12 und eine 0. Und wenn wir auf Einfügen, Indikatoren, Tendenz, Variable Index Dynamic Average klicken,
Als MQL5 vor über 5 Jahren veröffentlicht wurde, da gab es pro Währungspaar nur die Möglichkeit für einen einzigen Trade. Wenn man etwas kaufte und danach einen Trade in die Gegenrichtung auslösen wollte, dann hatte man keine Chance. Die beiden Positionsgrößen wurden miteinander verrechnet. Außerdem war es relativ kompliziert einen Trade zu eröffnen, denn im „Netting Mode“ musste man einen „Trade Request“, ein „Trade Result“ und diverse Einzelpositionen definieren bevor man tatsächlich eine Order verschicken konnte. Aber seit dem Build 1325 in MQL5 ist es möglich mehrere Positionen pro Währungspaar zu öffnen. Das sind wirklich gute Nachrichten und diese Verbesserung war dringend notwendig. Wir möchten dieses vereinfachte fahren jetzt nutzen um einen „Buy Trade“ zu öffnen Dazu klicken wir im Meta Editor auf Datei, Neu, Expert Advisor aus Vorlage und vergeben den Namen „SimpleBuyTrade“. Danach klicken wir auf Weiter und Fertigstellen. Alle Zeilen oberhalb der Funktion „OnTick“ können wir entfernen. Das Gleiche gilt für die 2 Kommentarzeilen hier und um die vereinfachte Eröffnung von Positionen umzusetzen, müssen wir zunächst mittels des Befehls „include“ die Datei „Trade.mqh“ importieren. Diese ermöglicht uns einen sogenannten „CTrade“ mit dem Namen „Trade“ zu erstellen. Für den Einstieg in unseren „Buy Trade“ brauchen wir zunächst den „Ask Preis“, den bekommen wir so. Zusätzlich hätte ich gerne das Kontoguthaben und die „EQUITY“, also das nicht gebundene Netto Guthaben. Ich möchte immer dann einen „Buy Trade“ eröffnen, wenn die „EQUITY“ über der „BALLANCE“ liegt. Das bedeutet, dass wir entweder keine offene Position haben oder einen Profit gemacht haben. Das fragen wir mit einer „if“ Zeile ab. Sind unsere Bedingungen erfüllt, dann möchten wir einen „Buy Trade“ eröffnen. Das geht mit dieser Zeile. Schauen wir mal ob sich unser Programm kompilieren lässt… Ja, dass sieht alles gut aus, also wechseln wir mit F4 in den MetaTrader und wählen im Strategietester „SimpleBuyTrade.ex5“ aus. Wir möchten gerne vom 1. November bis zum 31.12 2016 handeln und das Ganze bitte visuell anzeigen lassen. Starten wir also unseren Test und wie man sieht werden hier mehrere Positionen eröffnet. Das Ganze lässt sich jetzt etwas beschleunigen… Wir beschleunigen das Ganze jetzt mal auf Vollgas und so sieht unser Endergebnis aus. In diesem Fall hätten wir ein Profit von 39199 Euro gemacht. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten MQL5 Tutorial - Einfacher SELL Robot in 3 Minuten mit MQL5 MQL5 TUTORIAL GRUNDLAGEN - 130 WIE MASSENTESTS IHRE… MQL5 TUTORIAL DEUTSCH - SIMPLER ORDER HISTORY PROFIT
In diesem Video wollen wir uns einmal anschauen, wie man einen Sell Stop im Markt platzieren kann. Das ist eine Order, die aufgegeben wird und die dafür sorgt, dass, wenn dieses Preisniveau hier erreicht wird, aus dieser gespeicherten Order eine Position eröffnet wird. Wir beschleunigen da Ganze hier mal ein wenig, um zu schauen, wann unsere Order zu einer Position umgewandelt wird. Jetzt ist das passiert. Hier ist unsere Order, zu einer Position geworden. Und wir wollen uns jetzt anschauen, wie man das in MQL5 programmieren kann. Um das zu tun, klicken wir im Metatrader auf diesen kleinen Knopf hier oder drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerSellStop, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Und auch die zwei Kommentarzeilen können weg. Wir starten mit einem include Befehl. Damit kann man eine Datei importieren. In diesem Fall ist das die Datei Trade.mqh. Die stellt Handelsfunktionen bereit und gehört mit zu MQL5. Danach erstellen wir eine Instanz von der Klasse CTrade, die in dieser Datei enthalten ist. Die bekommt den Namen Trade. Und wir werden sie später verwenden, um unseren Sell Stop zu eröffnen. Zunächst müssen wir innerhalb unserer Funktion erst einmal den Bid-Preis berechnen. Das geht mit der Funktion SybolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen SYMBOL_BID, um den Bid-Preis zu erhalten. SYMBOL_ASK beispielsweise würde uns den Aks-Preis, also das Kaufangebot anzeigen. Danach berechnen wir die Balance, also unser Brutto Guthaben. Das tun wir mit der Funktion AccountInfoDouble. Hier nutzen wir ACCOUNT_BALANCE. Diese Konstanten in Großbuchstaben mit dem Unterstrich werden in MQL5 recht häufig verwendet. Auf gleichem Wege berechnen wir die Equity. Das ist unser nicht gebundenes Netto Guthaben. Auch das bekommen wir über AccountInfoDouble. Aber dieses Mal nutzen wir ACCOUNT_EQUITY. Im nächsten Schritt möchten wir prüfen, ob wir weder offene Positionen, noch offene Orders haben. Was ist der Unterschied? Nun, eine Order kann man im Markt platzieren. Beispielsweise, wenn der Kurs auf 1,26 Dollar steht, könnten Sie eine Order bei 1,28 Dollar platzieren. Und sobald diese Kursmarke erreicht wird, wird die Order umgesetzt und daraus wird eine Position. In unserem Fall prüfen wir jetzt, ob die Anzahl der offenen Positionen gleich null ist. In anderen Worten, wir haben keine offene Position. Und wenn OrdersTotal auch gleich null ist, dann bedeutet das, wir haben auch keine offene Order. Sofern diese Bedingung zutrifft, möchten wir gerne einen SellStop eröffnen. Das tun wir, indem wir trade.SellStop nutzen, um eine neue, zehn Microlot große Order im Markt zu platzieren. Bei unserem Sell Stop soll die unter dem Bid-Preis liegen. Und zwar genau einhundert Punkte darunter, für das aktuelle Währungspaar. Wir haben hier keinen Stop loss Wert vergeben. Aber unser Taket Profit Wert soll dreihundert Punkte unter dem aktuellen Bid-Preis liegen. Oder Time GTC ist etwas schwer zu verstehen. Aber wenn man sich einmal die Hilfe anschaut, dann sieht man, dass es eine Order ist, die gültig ist, bis sie abgelehnt wird. Dafür haben wir hier aber kein Datum vergeben. Und wir nutzen auch keinen Kommentar. Zum Schluss nutzen wir noch die Comment Funktion, um uns das Brutto Guthaben und das Netto Guthaben, gefolgt von den jeweils ermittelten Werten, direkt auf dem Chart anzeigen zu lassen. Wenn Sie fertig sind, dann klicken Sie hier oben auf Kompilieren. Das hat hier ohne Fehler funktioniert.
Mit MQL5 kann man die höchste Kerze aus einer definierten Anzahl von Kerzen auf dem Chart ermitteln. Das ist sehr nützlich für Trading Strategien die nach Markttechnik funktionieren… Wenn Sie sich einmal mit Charting oder der sogenannten Markttechnik beschäftigt haben, dann wissen Sie, dass es manchmal nützlich und sinnvoll ist, die höchste Kerze in einem bestimmten Kontext zu ermitteln. In diesem Fall ermitteln wir den Höchstwert der letzten 10 Kerzen, derzeit zeigt uns der Meta Trader hier die Kerze1 an, das liegt daran, dass die aktuelle Kerze noch nicht fertig ist. Die Kerze, die gerade gebildet wird hat immer die Nummer 0, das hier ist die Kerze 1 und das ist der mit Abstand höchste Punkt, zumindest innerhalb der letzten 10 Kerzen. Lassen wir den Expert Advisor etwas weiter laufen dann sehen wir jetzt, dass es Kerze 5 ist, das hier ist jetzt Kerze 0 …1 …2 …3 …4 …5. Tatsächlich, unser Expert Advisor funktioniert. Wie kann man das jetzt auf einfache Art und Weise in MQL5 umsetzen? Um das zu tun, drücken wir im Metatrader hier auf diesen Button oder wir drücken auf die F4 Taste. Das wird den MetaEditor laden, dort klickt wir hier auf New oder Datei Neu , wählen den Expert Advisor aus Vorlage, klicken auf Weiter, vergeben hier den Namen SimpleHoechsteKerze klicken auf weiter, weiter, fertig stellen und entfernen alles oberhalb der OnTick Funktion. Auch diese zwei Kommentarzeilen hier brauchen wir nicht. Das Erste was wir wirklich brauchen ist eine double Variable, die soll HoechsteKerzeM1 heißen und als Nächstes erstellen wir ein DoubleArray , also eine ganze Anzahl von Variablen, dieses PreisArray soll später die Höchstwerte aufnehmen. Jetzt möchten wir gerne unser Array absteigend für die Preise sortieren, das geht mit der Funktion ArraySetAsSeries. Im nächsten Schritt möchten wir unser Array auch mit Werten befüllen, das geht mit der Funktion CopyHigh , die holt sich in diesem Fall das aktuelle Währungspaar auf dem Chart – und zwar vom Minuten Chart – startet bei der aktuellen Kerze und geht elf Kerzen zurück und kopiert das Ergebnis in unser Array Höchstwerte und darin wollen wir jetzt die höchste Kerze ermitteln. Das kann die Funktion ArrayMaximum machen, die unser Array von der aktuellen bis zur elften Kerze davor durchsucht und das Ergebnis hier in die Variable HoechsteKerzeM1 packt, In einem letzten Schritt möchten wir jetzt unser ermitteltes Ergebnis noch mit dem Comment Befehl auf unserem Chart ausgeben, dazu zeigen wir den Text Höchstwert der letzten zehn Kerzen und den Inhalt der Variable HoechsteKerzeM1 an, den wir oben berechnet habe. So jetzt klicken wir auf Kompilieren. Unser Expert Advisor wurde ohne Fehler und mit einer Warnung kompiliert, diese Warnung hier weist uns darauf hin, dass wir diesen Wert hier eigentlich auch in eine Textkette wie diese hier umwandeln sollten, das wäre etwas eleganter aber der Einfachheit halber geht's auch so. Über diesen kleinen Knopf wechseln wir wieder zurück in den MetaTrader und starten über Ansicht, Strategie Tester oder mit der Tastenkombination Steuerung+R der Strategie Tester, hier wählen wir die Datei SimpleHoechsteKerze.ex5 aus und starten unseren Test. Hier bekommen wir die Anzahl: Der Höchstwert der letzten 10 Kerzen ist die Kerze Nummer 4 , das hier ist Kerze 0, diese wird gerade gebildet und ist noch nicht fertig. 1…2…3…4, innerhalb der letzten zehn Kerzen ist das hier tatsächlich die höchste Kerze. Lassen wir das etwas weiter laufen bekommen wir in diesem Fall die Aussage: Kerze 1 ist die höchste Kerze. Es handelt sich hier tatsächlich um den höchsten Punkt. In diesem einfachen Expert Advisor haben Sie gelernt,
Die MQL5 Berechnung des Profites kann für das Moneymanagement im Trading mit dem Metatrader5 eingesetzt werden und ist auch für diskretionäre Trader ein interessanter Wert, da aufgrund von Equity und Profit Entscheidungen über die Einstiegsgrösse und die Anzahl der Tradingpositionen getroffen werden kann… Wenn man so wie ich gerne einen Expert Advisor für mehrere Währungspaare erstellen möchte, dann ergibt es Sinn, den Netto Profit für jedes Währungspaar berechnen zu können. In diesem Fall ist der Profit, der hier oben auf dem Chart ausgewiesen wird 6 Cent höher als der Profit hier unten in der Spalte. Im Gegensatz dazu befindet sich diese Position bereits im Minus und das dürfte noch erhöht werden durch die negativen Swap Gebühren und wir möchten jetzt einen kleinen Expert Advisor schreiben der diese Berechnung für uns vornimmt. Dazu klicken wir hier oben auf den Button für den Metaquotes Language Editor oder wir drücken die F4 Taste, jetzt klicken wir auf Neu, Expert Advisor aus Vorlage , Weiter und vergeben hier oben den Namen SimpleProfitBerechnung , klicken auf Weiter, Weiter, Fertig stellen, löschen alles oberhalb der OnTick Funktion und entfernen diese beiden Kommentarzeilen Als Erstes erstellen wir eine double Variable die den Profit für dieses Forex Paar aufnehmen wird, dann zählen wir mit einem For-Loop von der Anzahl der Gesamtposition abzüglich 1 solange herunter, wie noch offene Positionen gefunden werden (Für unseren For-Loop brauchen wir noch zwei Klammern) und jetzt ermitteln wir das Währungspaar über die Funktion PositionGetSymbol , die uns für die aktuelle Position das Symbol für das Währungspaar zurückgibt. Das Ergebnis packen wir in eine String-Variable (das ist ein Text) und die Variable hat den Namen Währungspaar. Und wenn das aktuelle Chart mit dem Währungspaar der aktuellen Position übereinstimmt, dann holen wir uns den Positionsprofit mit der Funktion PositionGetDouble (POSITION_PROFIT). Außerdem besorgen wir uns mit PosisiongetDouble (POSITION_SWAP) noch die aktuellen Swap Zinsen oder Swap Kosten und der Gesamtprofit für dieses Währungspaar wird berechnet, indem wir den Bruttoprofit und die Swap Kosten addieren und dieser Variable hierhin zufügen. Hier ist unser For-Loop zu Ende, als letztes fehlt uns noch die Textausgabe. Wir möchten mit der Comment Funktion zunächst zwei neue Zeilen erzeugen, danach geben wir den Text Netto Profit für dieses Währungspaar und den Wert unserer kleinen Berechnung hier aus. Okay, kompilieren wir das Ganze doch einmal, das hat ohne Fehler und Warnungen funktioniert, also wechseln wir über diesen Knopf oben oder die F4 Taste zurück in den MetaTrader. Wie man sieht, habe ich derzeit 1..2…3….4…..5……6 Position im Euro-US-Dollar, die alle ganz ordentlich im Minus sind, also ziehen wir unser erstelltes Programm SimpleProfitBerechnung einfach auf das Chart und schon bekommen wir hier oben den Text Netto Profit fuer dieses Waehrungspaar und unser Gesamt-Saldo angezeigt, wechseln wir nun aber wieder auf den australischen gegen den kanadischen Dollar, sehen wir wieder das Gesamtsaldo aus dieser und dieser Spalte für das entsprechende Währungspaar. So, in diesem Video haben Sie gelernt wie man mit diesem einfachen Expert Advisor automatisch in MQL5 den Netto Profit für jedes beliebige Währungspaar berechnen kann. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
In diesem Video geht es um den sogenannten Demarker Oszillator. Das ist dieser blaue Oszillator hier unten. Der ist relativ unbekannt, aber wir wollen uns jetzt mal anschauen, wie man dafür ein Einstiegssignal in MQL5 programmieren kann. In einem separaten Fenster unterhalb des Kerzencharts wird der Demarker-Oszillator angezeigt. Er verfügt über eine Skala und zwei Linien. Meistens werden Oszillatoren verwendet, um andere Signale zu filtern, aber sie können auch verwendet werden, um Einstiegssignale zu erzeugen, was wir hier tun werden. Um den Oszillator zu verwenden, müssen wir eine separate MQ5-Datei erstellen und sie in denselben Ordner wie die anderen Platin System-Dateien legen. CheckEntry i Demarker mq5 ist der Name der Datei, und CheckEntry ist die einzige Funktion, die sie hat. Sie findet heraus, was unser Einstiegssignal ist und sendet diese Information zurück an das Hauptmodul. Wir wollen eine String Variable für das berechnete Signal erstellen, aber wir werden ihr noch keinen Wert geben, denn das werden wir später herausfinden. Wir brauchen ein Preis-Array. Bitte wählen Sie den passenden Typ , da er Werte vom Typ Fliesskommazahlen aufnehmen kann. MQL5 enthält eine Funktion namens i Demarker, die wir verwenden können, um unseren Oszillator zu definieren. Es müssen ein paar Parameter eingestellt werden. Der erste Parameter ist das Symbol des Charts. Die Periode des Charts ist der zweite Parameter. Und der letzte Parameter wird für die Anzahl der Kerzen verwendet, die wir für unsere Berechnung verwenden möchten. Wenn Sie den Demarker-Oszillator auf eines Ihrer Charts ziehen, werden Sie diese Werte ebenfalls sehen. Jetzt verwenden wir array set as series, um das Array, das wir erstellt haben, von der aktuellen Kerze 0 abwärts zu sortieren. Mit CopyBuffer fügen wir Daten in das Array ein. Wir tun dies gemäß unserer Definition von oben und berechnen Werte für den Puffer 0, beginnend mit der aktuellen Kerze 0 und den nächsten drei Kerzen. Wir machen weiter und ermitteln den Wert der aktuellen Kerze, indem wir uns den Wert der Kerze 0 in unserem Array ansehen. Mit Normalize Double können wir den Wert so formatieren, dass 3 Ziffern hinter dem Punkt angezeigt werden. Um herauszufinden, wann wir kaufen sollten, suchen wir nach einem Wert, der unterhalb der unteren Linie liegt. Das wäre dann der Fall, wenn er unter 0 Komma 3 liegt! Es wäre also ein Kaufsignal, und wenn das der Fall ist, geben wir unser Signal mit dem Wort „Kaufen“. Andernfalls, wenn der Wert über 0 Komma 7 oder über der oberen Linie der Oszillator-Skala liegt, wäre das ein Verkaufssignal, also geben wir unserem Signal das Wort „verkaufen“. Am Ende der Funktion wird das Signal mit dem Befehl return an das Hauptmodul zurückgesendet. Bitte vergessen Sie nicht, die Datei zu speichern! Sie brauchen sie nicht sofort zu kompilieren. Speichern Sie sie einfach und gehen Sie zu der Stelle im Hauptmodul zurück, an der sich die Funktion OnTick befindet. Dort müssen Sie die neue Datei zu dem Abschnitt hinzufügen, der die include-Anweisungen enthält. Verwenden Sie die include-Anweisung, gefolgt von dem Namen der Datei, die wir erstellt haben. Verwenden Sie bitte zwei Schrägstriche, um alle anderen Eingabesignale auszukommentieren, und drücken Sie F7 oder klicken Sie auf die Schaltfläche Kompilieren, um sowohl das Hauptmodul als auch die neue Eingabedatei, die Sie gerade erstellt haben, zu kompilieren. Okay. Sie sollten jetzt eine funktionsfähige Version des Demarker Oszillators haben, mit der Sie sowohl Signale als auch Filter erstellen können. Ich sage vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten...
In diesem Video geht es um diese rote Linie hier auf dem Chart. Es handelt sich um den IDMA Indikator. Wenn man mit der Maus darauf zeigt, dann sieht man, dass es sich um einen doppelten exponentiellen Moving Average handelt. Und wir wollen dafür jetzt mal Kaufen- und Verkaufen-Signale ermitteln. Dieses Mal werden wir den IDEMA-Indikator ermitteln und ihn verwenden, um ein Einstiegssignal für ein Handelssystem zu berechnen. Der IDEMA-Indikator wird direkt im Kerzenchart eingezeichnet und wird als rote Linie angezeigt. Wenn Sie mit dem Mauszeiger darauf zeigen, sehen Sie, dass er einen doppelten exponentiellen gleitenden Durchschnitt erzeugt. Zu Beginn erstellen wir eine neue Datei mit dem Namen CheckEntry IDEMA und legen sie im selben Verzeichnis wie die anderen Systemdateien ab. Die neue Datei verwendet eine Funktion mit dem Namen CheckEntry und wir erstellen eine Variable mit dem Namen signal, mit der wir am Ende der Funktion unser berechnetes Signal zurückgeben. Außerdem benötigen wir ein Array, um die Preisinformationen für einige Kerzen zu speichern. Jetzt verwenden wir Array set as Series, um unser Array zu sortieren, beginnend mit der aktuellen Kerze und dann absteigend. Mit Copy Rates füllen wir unser Preis-Array mit Daten. Wir tun dies für das aktuelle Symbol und den aktuell ausgewählten Zeitraum, beginnend mit der aktuellen Kerze 0 und kopieren die Daten für 3 Kerzen, um sie in unserem Preis-Array zu speichern. Für den Indikator benötigen wir ein neues Array, das wir ebenfalls abwärts sortieren müssen, indem wir array set as series verwenden. Machen wir weiter und definieren wir, was unsere Funktion ist. Dafür hat MQL5 eine eingebaute Funktion namens IDEMA. Es müssen 5 Parameter definiert werden. Die ersten beiden sind für das aktuelle Symbol und die Periode im Chart, und der dritte ist für die Berechnungsperiode. In unserem Fall ist es 14. Parameter 4 ist für eine mögliche Kerzenverschiebung, wir setzen ihn auf 0. Und der letzte Parameter legt fest, dass wir das Ergebnis auf der Grundlage der Schlusskurse berechnen werden. Mit Copy Buffer können wir nun unser Array mit den Kursdaten gemäß unserer Definition füllen. Wir tun dies für Puffer 0, beginnend mit der aktuellen Kerze und speichern die Preise für 3 Kerzen. Anschließend können Sie nun den Wert für die aktuelle Kerze ermitteln, indem Sie sich dieses Preis-Array und insbesondere den Wert für Kerze 0 ansehen. Jetzt können wir das Kaufsignal herausfinden. Wenn die rote Linie unter dem Schlusskurs von Kerze 1 liegt, wollen wir dies als Kaufsignal verwenden. Weisen wir unserem Signal also das Wort „Kaufen“ zu. Im anderen Fall wollen wir verkaufen, wenn die rote Linie über dem Schlusskurs von Kerze 1 liegt. Zu diesem Zeitpunkt wollen wir der Signalvariablen den Wert „verkaufen“ geben. Am Ende der Funktion verwenden Sie bitte die Return-Funktion, um den berechneten Wert an unser Hauptmodul zurückzusenden. Das Einstiegsmodul ist nun fertig. Speichern Sie es sofort. Dann müssen Sie die Hauptdatei öffnen und nach dem Teil suchen, in dem Sie das Einstiegssignal hinzufügen müssen. Das können Sie tun, indem Sie den Dateinamen für unser Einstiegssignal hinter der include-Anweisung einfügen. Bitte deaktivieren Sie jedes andere Einstiegssignal, indem Sie zwei Schrägstriche davor setzen. Wenn Sie fertig sind, können Sie das Hauptmodul und das soeben erstellte Einstiegsmodul kompilieren, indem Sie F7 drücken oder auf die Schaltfläche Kompilieren klicken. Wenn alles gut gegangen ist, sollten Sie keine Fehler erhalten! Falls doch, sehen Sie sich bitte die Fehlermeldungen an und versuchen Sie herauszufinden, was sie bedeuten. Auf MQL5.com finden Sie eine Liste mit all diesen Fehler...
Diesmal geht es um den Oszillator hier. Der sieht ziemlich bekannt aus, denn es handelt sich um den Bulls Power Oszillator. Das Gegenstück zum Bears Power Oszillator. Schauen wir also mal, wie man den programmieren kann. Dieses Mal werden wir den Bulls-Power-Oszillator berechnen und ihn verwenden, um ein Einstiegssignal für ein Handelssystem zu erstellen. Der Bulls Power wird unterhalb des Kerzencharts angezeigt und zeigt Zahlen an, die entweder über oder unter 0 liegen. Zunächst erstellen wir eine neue Datei namens CheckEntry BullsPower und legen sie in dasselbe Verzeichnis wie die anderen Systemdateien. Die neue Datei verwendet eine Funktion namens CheckEntry und wir erstellen eine Variable namens signal, die dazu dient, unser berechnetes Signal am Ende der Funktion zurückzugeben. Außerdem benötigen wir ein Array, um die Preisinformationen für einige Kerzen zu speichern. Lassen Sie uns nun weitermachen und definieren, was unsere oszillierende Funktion ist. Dafür hat MQL5 eine eingebaute Funktion namens iBullsPower. Es müssen drei Parameter angegeben werden. Die ersten beiden sind für das aktuelle Symbol und die Periode im Chart und der dritte ist für die Berechnungsperiode. In unserem Fall ist es 13. Dann verwenden wir Array set as Series, um unser Array zu sortieren, beginnend mit der aktuellen Kerze und absteigend. Jetzt können wir CopyBuffer verwenden, um Daten zu unserem Array hinzuzufügen. Wir tun dies für die Definition, die wir gerade vorgenommen haben, und für Puffer 0! Wir wollen mit der aktuellen Kerze 0 beginnen und die Kursdaten für die nächsten drei Kerzen kopieren. Unser Preis-Array enthält das Ergebnis. Und deshalb können Sie jetzt den Wert für die aktuelle Kerze ermitteln, indem Sie sich das Preis-Array und insbesondere den Wert für Kerze 0 ansehen. Jetzt können wir das Kaufsignal ermitteln. Wenn der Bulls-Power-Wert größer als 0 ist, wollen wir das als Kaufsignal verwenden. Vergeben wir also für unser Signal das Wort “ Buy „. Im anderen Fall wollen wir verkaufen, wenn der Wert kleiner als 0 ist. Zu diesem Zeitpunkt wollen wir der Signalvariablen den Wert “ Sell “ zuweisen. Am Ende der Funktion verwenden Sie bitte die Return-Funktion, um den berechneten Wert an unser Hauptmodul zurückzusenden. Das Einstiegsmodul ist jetzt fertig. Speichern Sie es am besten gleich. Dann müssen Sie die Hauptdatei öffnen und nach dem Teil suchen, in dem Sie das Einstiegssignal hinzufügen müssen. Das können Sie tun, indem Sie den Dateinamen für unser Einstiegssignal nach der include-Anweisung einfügen. Bitte entfernen Sie jedes andere Einstiegssignal, indem Sie zwei Schrägstriche davor setzen. Wenn Sie fertig sind, können Sie das Hauptmodul und das soeben erstellte Einstiegsmodul kompilieren, indem Sie F7 drücken oder auf die Schaltfläche Kompilieren klicken. Wenn alles gut gegangen ist, sollten Sie keine Fehler erhalten, sondern nur einige Warnungen!!! Okay. Der Bulls Power Oszillator ist jetzt fertig. Ich hoffe, das hat bei Ihnen auch funktioniert. Ich sage Dankeschön fürs Zuschauen und wir sehen uns dann im nächsten Video. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
Diesmal möchten wir ein Einstiegs-Signal für diesen Oszillator hier erstellen. Es handelt sich um den sogenannten Bears Power Oszillator. Also schauen wir uns mal an, wie man das mit MQL5 programmieren kann. Diesmal wollen wir den Bears-Power-Oszillator berechnen und ihn verwenden, um ein Einstiegssignal für Ihr Handelssystem zu erstellen. Der Bears Power wird unterhalb des Kerzencharts angezeigt und erzeugt Werte, die entweder über oder unter 0 liegen! Um zu beginnen, erstellen wir eine neue Datei namens CheckEntry_BearsPower in unserem Verzeichnis, in dem die anderen Systemdateien bereits gespeichert sind. Die neue Datei verwendet eine Funktion namens CheckEntry und wir erstellen eine Variable namens Signal, mit der wir am Ende der Funktion unser berechnetes Signal zurückgeben können. Und natürlich benötigen wir auch ein Array, um die Kursdaten für einige Kerzen zu speichern. Lassen Sie uns nun fortfahren und eine Definition für unsere oszillierende Funktion erstellen. MQL5 bietet dafür eine integrierte Funktion namens iBearsPower. Es werden drei Parameter benötigt. Die ersten beiden sind für das aktuelle Symbol und die Periode im Chart, der dritte ist für die Berechnungsperiode. In unserem Fall ist es 13! Anschließend verwenden wir Array set as Series, um unser Array von der aktuellen Kerze abwärts zu sortieren. Und nun können wir unser Array mit Hilfe von CopyBuffer mit Daten füllen. Wir tun dies für die Definition, die wir vor einer Minute erstellt haben, und für Puffer 0! Wir wollen mit der aktuellen Kerze 0 beginnen und die Kursdaten für 3 Kerzen kopieren. Das Ergebnis wird in unserem Preis-Array gespeichert. Und damit können wir jetzt den Wert für die aktuelle Kerze ermitteln, indem wir in das Preis-Array schauen und insbesondere den Wert für Kerze 0 betrachten! Jetzt können wir das Kaufsignal berechnen. Immer wenn der Wert des Bears Power über 0 liegt, wollen wir dies als Kaufsignal verwenden. Weisen wir unserem Signal also das Wort buy zu. Im anderen Fall wollen wir verkaufen, wenn der Wert unter 0 liegt! In diesem Fall möchten wir der Signalvariablen das Wort sell zuweisen. Und nun verwenden Sie bitte die return-Funktion, um den berechneten Wert am Ende der Funktion an unser Hauptmodul zurückzugeben. Das war's mit dem Einstiegsmodul. Bitte speichern Sie es jetzt. Und anschließend müssen Sie die Hauptdatei öffnen und nach dem Teil suchen, in dem das Eingangssignal nun eingebunden werden muss. Dazu verwenden Sie die Anweisung include, gefolgt von dem Dateinamen für unser Einstiegssignal. Fügen Sie bitte für jedes andere Einstiegssignal zwei Schrägstriche hinzu. Wenn Sie fertig sind, können Sie F7 drücken oder auf die Schaltfläche Kompilieren klicken, um das Hauptmodul und das soeben erstellte Einstiegsmodul zu kompilieren! Wenn alles gut gegangen ist, sollten Sie keine Fehler erhalten! Falls doch, sehen Sie sich bitte die Fehlermeldungen an und was sie bedeuten! Auf MQL5.com gibt es eine Liste dieser Fehlerursachen! Okay. Wenn der Kompiliervorgang bei Ihnen funktioniert hat, dann sollten Sie jetzt eine Version für den Bears Power haben, die Sie als Einstiegssignal nutzen können. Vielen Dank fürs Zuschauen und wir sehen uns im nächsten Video. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
In diesem Video geht es um diesen Oszillator hier unten. Das ist der sogenannte Chaikin Oszillator. Und wir wollen uns einmal anschauen, wie man den für das System so programmieren kann, dass er Einstiegssignale produziert. Der Chaikin-Oszillator wird normalerweise verwendet, um andere Signale zu bestätigen, da er ein Oszillator ist. Aber in diesem Beispiel werden wir ihn verwenden, um Kauf- und Verkaufssignale zu erzeugen! Erstellen wir eine neue Datei namens CheckEntry_Chaikin.mp5 in demselben Verzeichnis, in dem auch die anderen Dateien gespeichert sind. Wie schon bei den anderen Einstiegsmodulen müssen wir eine Funktion namens CheckEntry erstellen. Das Signal wird später von dieser Funktion zurückgegeben. Und jetzt brauchen wir eine Variable und ein Preis-Array! MQL5 verfügt über eine Funktion namens für den Chaikin Indikator, die wir verwenden können, um unsere Definition für die Berechnung zu erstellen. Parameter 1 steht für das aktuelle Symbol und Parameter 2 für die aktuelle Periode in unserem Chart. Danach haben wir zwei Zahlen! Wenn Sie Metatrader5 öffnen und Einfügen, Indikatoren, Oszillatoren wählen, erfahren Sie, dass diese Werte für den schnellen gleitenden Durchschnitt und für den langsamen gleitenden Durchschnitt stehen. Die Standardwerte sind 3 und 10 Mit dem folgenden Parameter legen wir fest, dass wir das Ergebnis auf der Grundlage von Mode EMA berechnen möchten, was für exponentiellen gleitenden Durchschnitt steht. Und im letzten Parameter haben wir festgelegt, dass das Ergebnis auf Tick-Basis berechnet werden soll. Lassen Sie uns nun fortfahren und das Array von der aktuellen Kerze abwärts sortieren, indem wir array set as series verwenden. Und dann verwenden wir Copy Buffer, um unser Array mit Daten zu füllen! Wir tun dies für die zuvor erstellte Definition und den Puffer Null, beginnend mit der aktuellen Kerze 0. Wir wollen die Werte für 3 Kerzen in unserem Array speichern! Jetzt können wir die Werte für die aktuelle Kerze und die vorherige Kerze berechnen. Dazu sehen wir uns die Werte von Kerze 0 und Kerze 1 in unserem Array an. Wenn der aktuelle Chaikin-Wert über 0 liegt und der vorherige Wert unter 0 war, betrachten wir dies als Kaufsignal und weisen unserem Signal das Wort buy zu. Andernfalls, wenn der aktuelle Wert unter 0 liegt und der vorherige Wert über 0 lag, handelt es sich um ein Verkaufssignal, also weisen wir unserem Signal das Wort sell zu. Und schließlich verwenden wir die Return-Funktion, um den berechneten Wert an unser Hauptmodul zurückzugeben. Das war's für den Einstieg, bitte vergessen Sie nicht, die Datei zu speichern. Das Kompilieren ist nicht erforderlich, da es in das Hauptmodul importiert wird. Öffnen wir nun das Hauptmodul und suchen den Abschnitt include. Dort können Sie die anderen Eingabemodule mit zwei Schrägstrichen auskommentieren und eine neue include-Anweisung für die neue Datei, die wir erstellt haben, hinzufügen. Und nun müssen wir F7 drücken oder auf die Schaltfläche Kompilieren klicken, um beide Module zu kompilieren. Sie werden einige Warnungen sehen, aber es sollten keine Fehler auftreten. Okay, so weit, so gut. Das war's soweit für den Chaikin Oszillator. Ich hoffe, das mit dem Kompilieren hat funktioniert. Vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten Video. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
In diesem Video möchten wir uns den Commodity Channel Index anschauen, das ist dieser oszillierende Indikator hier unten. Der gibt uns Kaufen oder Verkaufen Signale aus, je nachdem, ob diese blaue Linie sich oberhalb dieser oberen gestrichelten Linie oder unterhalb der unteren gestrichelten Linie aufhält. Immer wenn die obere Linie nach oben durchbrochen wird, dann ist unser Währungspaar überkauft und wir möchten Verkaufen. Im anderen Fall, wenn die blaue Linie hier unterhalb der unteren gestrichelten Linie verläuft, dann generiert das für uns ein Kaufsignal. Wie lässt sich jetzt der Commodity Channel Index Indikator programmieren? Nun um das zu tun, kicken Sie bitte hier oben auf diesen kleinen Button im Metatrader oder drücken Sie F4 auf Ihrer Tastatur. Das ruft dann hier das Metaeditor Fenster auf. Hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter, ich vergebe hier einmal den Namen SimplerCommodityChannelIndex, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier entfernt werden, und wir löschen auch die zwei Kommentarzeilen. Zunächst einmal erstellen wir uns eine Variable für unser Signal, die ist vom Typ String und bekommt auch den Namen signal. Den Wert weisen wir noch nicht zu, denn den möchten wir gleich berechnen. Außerdem brauchen wir noch ein Array für Preisdaten, das nennen wir hier mal myPriceArray. Danach definieren wir mal unseren Expert Advisor mit der eingebauten MQL5 Funktion iCCI. Die übernimmt als Parameter das aktuelle Währungspaar auf dem Chart, die dort eingestellte Zeiteinheit und diese 14 hier die sieht man auch in den zwei runden Klammern. Wenn Sie im Metatader auf Einfügen, Indikatoren, Benutzerdefiniert, CCI klicken, dann sehen wir hier unterhalb der Eingabe die Periode mit 14 Kerzen. Wir nutzen in der Standartkonfiguration einen typischen Preis, darum ist dieser Parameter hier die 14 für die Kerzenanzahl, das hier ist PRICE_TYPICAL,denn so kommen wir an den Wert für den aufgestellten Preis. PREIS_CLOSE würde uns den Schlusskurs liefern, in der Hilfe steht leider fälschlicherweise Eröffnungspreis, das wäre allerdings PRICE_OPEN. Leider ist die Übersetzung der MQL5 Hilfe an vielen Stellen suboptimal, vor allen Dingen solche Sätze hier verwirren Sie eher, als Ihnen zu helfen, aber das lässt sich leider nicht ändern. Nachdem wir das jetzt getan haben, sortieren wir unsere Preisdaten mit dem Befehl ArraySetAsSeries für unser Preis Array, das wir hier oben erstellt haben, von der aktuellen Kerze an abwärts und jetzt können wir mittels CopyBuffer unser Preis Array anhand unserer hier getroffenen ICCI Definition für den Buffer null, das ist hier diese blaue Linie, von der aktuellen Kerze null für drei Kerzen mit Daten füllen. Okay, ermitteln wir den Wert der aktuellen Kerze, indem wir auf Kerze null von unserem Preis Array zugreifen und weisen das Ergebnis der Variable ICCI Wert zu. Wenn der ICCI Wert größer ist als der Wert 100, dann weisen wir unserer Signalvariable den Wert Verkaufen zu. Im umgekehrten Fall, der ICCI Wert wäre kleiner als -100, dann möchten wir gerne Kaufen und auch dieser Wert wird unserer Signalvariable zugewiesen. Zum Schluss erzeugen wir noch eine Chartausgabe, das geht mit dem Comment Befehl und der gibt uns den Text Signal, gefolgt von dem ermittelten Wert für unser Signal direkt links oben auf dem Chart aus. Bitte vergessen Sie nicht diese schließende Klammer. Wenn Sie soweit fertig sind, dann können Sie hier oben auf Kompilieren klicken oder auf die F7 ihrer Tastatur drücken. Das funktioniert hier ohne Fehler, wir haben hier eine Warnung, weil wir hier einen float Wert benutzen.
Diesmal wollen wir uns anschauen, wie man diesen farbenprächtigen Indikator hier berechnen kann. Es handelt sich um den sogenannten Awesome Oszillator. Und wir wollen uns mal anschauen, wie man dafür ein entsprechendes Einstiegsmodul programmieren kann. Da der Awesome-Indikator ein Oszillator ist, wird er in einem separaten Fenster unterhalb des Kerzencharts angezeigt. Um ihn zu verwenden, erstellen wir eine separate MQ5-Datei und legen sie in dasselbe Verzeichnis wie die anderen Platin System-Dateien. CheckEntry I A O.mq5 ist der Name der Datei, und sie enthält nur eine Funktion namens CheckEntry. Die Kauf- und Verkaufssignale für unser System werden von dieser Funktion ausgearbeitet. Wir beginnen mit einer String-Variablen namens Signal, der wir aber nicht sofort einen Wert zuweisen, denn das werden wir später ermitteln. Als nächstes erstellen wir ein Array. Wir verwenden den Datentyp „double“, weil er auch mit „Fließkommazahlen“ genutzt werden kann. Dann verwenden wir die Funktion i A O, die mit MQL5 geliefert wird, um eine Definition für den Awesome Oscillator zu erstellen. Und zwar für das aktuelle Symbol im Chart und die Periode, die gerade im Chart ausgewählt ist. Weitere Parameter sind nicht erforderlich. Jetzt verwenden wir Array Set as Series für unser I A O Array, um es von der aktuellen Kerze abwärts zu sortieren. Anschließend können wir unser I A O-Array entsprechend der oben vorgenommenen Definition füllen. Wir tun dies für Puffer 0, beginnend mit Kerze 0 für 3 Kerzen und speichern die Werte in unserem Preis-Array. So können wir den aktuellen I A O-Wert berechnen, indem wir die Kerze 0 in unserem Array betrachten. Mittels normalize double achten wir darauf, die Ausgabe mit 6 Ziffern hinter dem Punkt zu formatieren, denn so sieht der Wert auch aus, wenn Sie den Oszillator manuell zu Ihrem Chart hinzufügen. Lassen Sie uns nun mit der Berechnung für das Signal fortfahren. Wenn der aktuelle Wert über 0 liegt, wollen wir kaufen, also weisen wir unserem Signal das Wort buy zu. Und wenn der aktuelle Wert unter 0 liegt, wollen wir verkaufen, also weisen wir dem Signal das Wort sell zu. Der letzte Teil ist die Rückgabe des berechneten Wertes mit Hilfe der Return-Funktion und das Speichern der Datei. Das Kompilieren erfolgt in der Hauptdatei. Öffnen Sie diese also und suchen Sie nach den include-Anweisungen, die bereits im Quellcode enthalten sind. Dort verwenden wir zwei Schrägstriche, um die anderen Eingabesignale zu ergänzen und fügen eine weitere Zeile hinzu, um die neue Datei namens CheckEntry_ I A O.mq5 einzubinden. Anschließend können wir auf die Schaltfläche Kompilieren klicken oder einfach die Taste F7 drücken, um beide Dateien zu kompilieren. Es werden ein paar Warnungen erwartet, aber Sie sollten keine weiteren Fehlercodes sehen. Okay. Sie sollten jetzt ein arbeitsfähiges Einstiegsmodul für den Oszillator haben, sofern es mit der Kompilierung funktioniert hat. Ich sage, vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten Video. Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten MQL5 TUTORIAL - PLATIN SYSTEM - M...
Diesmal möchten wir uns diesen Oszillator hier anschauen. Es handelt sich um den sogenannten Stochastik Oszillator. Der ist ziemlich beliebt und wird in der Regel als Filter verwendet. Aber in diesem Beispiel werden wir ihn verwenden, um Einstiegssignale zu berechnen. Also lassen Sie uns mal schauen, wie man das mit MQL5 umsetzen kann. In diesem Video werden wir ein Einstiegssignal für diesen kleinen Oszillator erstellen, den ein Expert Advisor verwenden kann. Er heißt „Stochastischer Oszillator“ und wird von vielen Menschen genutzt. Lassen Sie uns also herausfinden, wie MQL5 uns dabei helfen kann. Der Stochastik-Oszillator wird in einem separaten Fenster unterhalb des Kerzencharts angezeigt. Er besteht aus zwei Linien und einer Skala. Meistens werden Oszillatoren dazu verwendet, Signale auszufiltern, aber sie können auch dazu verwendet werden, Einstiegssignale zu geben, was wir hier tun werden. Um diese Funktion zu nutzen, erstellen wir eine separate MQ5-Datei und legen sie in denselben Ordner wie die anderen Dateien von Platin System. Die Datei heißt CheckEntry Stochastic.mq5 und hat nur eine Funktion namens CheckEntry. Sie ermittelt unser Einstiegssignal und sendet diese Information zurück an das Hauptmodul. Wir wollen eine Variable für das berechnete Signal erstellen, aber wir geben ihr noch keinen Wert, denn das werden wir später herausfinden. Jetzt brauchen wir zwei Arrays vom Typ Double, um die verschiedenen Preise zu speichern. Das erste wird K-Array und das zweite D-Array genannt. Wir sortieren beide Arrays von der aktuellen Kerze abwärts, indem wir Array set as Series verwenden. MQL5 verfügt über eine Funktion für die Berechnung des Stochastic Signals, die wir verwenden können, um eine Definition für unseren Oszillator zu erstellen. Wir müssen ein paar Parameter übergeben. Der erste Parameter steht für das Symbol im Chart. Der zweite Parameter ist für die Periode im Chart. Die Parameter 3, 4 und 5 sind die Standardwerte für den Stochastic Oszillator, um die sogenannte K-Periode, die D-Periode und die Verlangsamung zu definieren. Sie sehen diese Werte auch, wenn Sie den Stochastik-Indikator auf eines Ihrer Charts ziehen. In den letzten beiden Parametern legen wir fest, dass wir Modus SMA verwenden möchten, was für den einfachen gleitenden Durchschnittsmodus steht, und dass wir das Ergebnis auf der Grundlage der Tiefst- und Höchstkurse berechnen möchten. Mit CopyBuffer füllen wir beide Arrays mit Daten und tun dies für Puffer 0 und Puffer 1, in beiden Fällen ab der aktuellen Kerze 0 und für 3 Kerzen. Fahren wir fort und berechnen den Wert für die aktuelle Kerze, indem wir uns den Wert der Kerze 0 in beiden Arrays ansehen. Danach machen wir das Gleiche für die Kerze davor, indem wir uns die Werte für Kerze 1 in beiden Arrays ansehen. Um das Kaufsignal zu berechnen, prüfen wir, ob ein Crossover vorliegt. Wenn also der K-Wert und der D-Wert für Kerze 0 unter 20 liegen, wollen wir wissen, ob der K-Wert jetzt über dem D-Wert liegt und ob er bei der Kerze davor darunter lag. Das wäre ein Kaufsignal, und in diesem Fall ordnen wir unserem Signal das Wort buy zu. Andernfalls, wenn der K-Wert und der D-Wert für Kerze 0 über 80 liegen, möchten wir wissen, ob der K-Wert jetzt unter dem D-Wert liegt und ob er für die vorherige Kerze höher war. Das wäre ein Verkaufssignal, und in diesem Fall ordnen wir unserem Signal das Wort sell zu. Am Ende der Funktion verwenden wir den Befehl return, um das Signal an das Hauptmodul zurückzugeben. Bitte denken Sie daran, die Datei zu speichern. Sie müssen sie nicht kompilieren. Speichern Sie sie einfach und gehen Sie zurück...
In diesem Video geht es um diesen Indikator hier. Das ist der Adaptive Moving Average. Der setzt sich aus mehreren Werten zusammen. Und zeichnet hier diese rote Linie. Und wann immer sich der Preis oberhalb der roten Linie befindet, ist das ein Kaufen Signal. Im andern Fall, wenn sich die Kerzen unterhalb der roten Linie bewegen, dann wäre das ein Verkaufen Signal. Wie kann man jetzt einen Expert Advisor erstellen, der in der Lage ist, nicht nur die Signale hier auf den Chart auszugeben, sondern auch eigenständig Positionen zu eröffnen. Um das zu tun, klicken wir auf diesen kleinen Button hier oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage. Weiter. Ich vergebe hier mal den Namen SimplerAMAStandaloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann man alles oberhalb von der On Tick Funktion löschen. Und die zwei Kommentarzeilen können ebenfalls entfernt werden. Zunächst nutzen wir die include Funktion. Damit holen wir uns die Datei Trade.mqh. Die ist Teil von MQL5 und stellt Handelsfunktionen bereit. Und sie ermöglicht uns, von CTrade eine Instanz mit dem Namen trade zu erstellen. Die werden wir gleich nutzen um Positionen zu eröffnen. Damit wir das können müssen einige Dinge berechnet werden. Zunächst einmal holen wir uns den Ask und den Bid Preis. Das geht mit SymbolInfoDouble für das aktuelle Währungspaar. SYMBOL_ASK liefert uns den Ask Preis. SYMBOL_BID liefert uns den Bid Preis. Wenn man mal auf ein Währungspaar hier klickt, dann sieht man: Das hier ist der Ask und das hier der Bid Preis. Diesen Preis zahlen wir, wenn wir etwas kaufen. Und das bekommen wir, wenn wir etwas verkaufen. Das dazwischen ist der Spread, davon lebt der Broker. Jetzt erstellen wir uns ein Preis Array. Das geht mit der Funktion MqlRates. Wir vergeben mal den Namen PriceInfo. Mit dem Befehl ArraySetAsSeries sortieren wir unser PriceInfo Array von der aktuellen Kerze an abwärts. Und mit der Funktion CopyRates füllen wir unser Array mit Preisdaten für das aktuelle Währungspaar und die auf dem Chart ausgewählte Zeiteinheit. Wir starten mit der aktuellen Kerze null, holen uns die Daten für drei Kerzen und speichern sie in unserem Array PriceInfo. Jetzt haben wir die Daten für die Kerzen, brauchen aber noch einen String für unser Signal. Diese Variable bekommt auch den Namen Signal. Noch haben wir keinen Wert zugewiesen. Den müssen wir nämlich noch berechnen. Für unser Signal brauchen wir noch ein Array. Das bekommt den Namen myPriceArray. Und nun kommt der eigentlich spannende Teil. Wir nutzen die Funktion iAMA, die mit MQL5 kommt, um für das aktuelle Währungspaar und die ausgewählte Zeiteinheit eine Definition für unseren Expert Advisor zu erstellen. Falls Sie sich fragen, was diese Zahlen hier bedeuten. 9,2,30, 0. Dann klicken Sie doch einmal auf Einfügen, Indikatoren, Tendenz, Adaptive Moving Average. Dann sehen wir hier eine neun für die Periode, zwei ist der Wert für den schnellen EMA. Null ist die Verschiebung und dreißig ist der langsame EMA. EMA steht an der Stelle für Exponential Moving Average. Und das sind genau die Zahlen, die wir hier sehen. Für den letzten Parameter verwenden wir PRICE_CLOSE. Denn wir möchten gerne unsere Ergebnisse aufgrund der Schlusskurse ermitteln. Auch dieses PriceArray müssen wir wieder von der aktuellen Kerze an abwärts sortieren indem wir ArraySetAsSeries verwenden. Und nun füllen wir mit CopyBuffer unser PriceArray anhand der MovingAverageDefinition, die wir hier oben getroffen haben. Für Buffer null, das ist die erste Signallinie von der aktuellen Kerze null...
Diesmal wollen wir ein Einstiegssignal erstellen für diesen Indikator hier. Der zeichnet Punkte direkt oberhalb oder unterhalb der Kerzen und heißt Parabolic SAR. Also schauen wir mal, wie man das mit MQL5 programmieren kann. Dieses Mal wollen wir ein Einstiegssignal für einen Indikator erstellen, der direkt über oder unter den Kerzen eingezeichnet wird. Es handelt sich um den parabolischen S A R und Sie sehen kleine Punkte über oder unter dem aktuellen Kurs. Dazu erstellen wir eine neue Datei mit dem Namen CheckEntry_S A R und speichern sie in demselben Verzeichnis, in dem sich auch die anderen Dateien für das System befinden. Die Datei verwendet eine Funktion namens CheckEntry, um das Signal zu berechnen, das am Ende der Funktion an die Hauptdatei zurückgegeben wird. Zunächst verwenden wir MQLRates, um ein Preis-Array zu erstellen. Dann verwenden wir Array set as series, um dieses Preis-Array von der aktuellen Kerze abwärts zu sortieren. Und mit Copy Rates füllen wir das Preis-Array mit Daten für das aktuell ausgewählte Symbol im Chart und den Zeitraum, den wir in diesem Chart ausgewählt haben. Wir beginnen mit der Kerze 0, das heisst der aktuellen Kerze, und kopieren die Kursdaten für 3 Kerzen. Das Preis-Array wird diese Daten enthalten. Lassen Sie uns also eine Signalvariable erstellen, die Textwerte enthalten kann, aber weisen Sie in diesem Stadium noch keine Werte zu. Und wir brauchen ein zweites Array für die Indikatordaten. Wir verwenden die Funktion i-S A R für das Symbol im Chart und den ausgewählten Zeitraum für Parameter 1 und 2. Parameter 3 ist ein so genannter Schrittwert und Parameter 4 ist ein Maximalwert. Sie sehen die Werte 0,02 und 0,2, wenn Sie den Parabolic S A R Indikator auf einen Ihrer Charts ziehen. Jetzt verwenden wir array set as series, um das S A R Array von der aktuellen Kerze abwärts zu sortieren. Und mit copy buffer füllen wir das Array entsprechend der S A R Definition, die wir bereits erstellt haben. Wir tun dies für Puffer 0, beginnend mit Kerze 0 für 3 Kerzen. Jetzt können wir Werte aus unserem Array extrahieren. In diesem Fall sind wir daran interessiert, den Wert für Kerze 1 zu erhalten. Damit wird der letzte Wert des Indikators berechnet. Mit NormalizeDouble und der Zahl 5 können wir unsere Ausgabe so formatieren, dass hinter dem Punkt 5 Ziffern angezeigt werden. Und wenn der letzte S A R Wert unter dem Wert für den niedrigsten Preis von Kerze 1 in unserem Preis-Array lag, wollen wir kaufen und weisen unserem Signal das Wort buy zu. Andernfalls, wenn der letzte S A R Wert über dem Wert für den höchsten Preis von Kerze 1 in unserem Preis-Array lag, wollen wir verkaufen und weisen unserem Signal das Wort verkaufen zu. Schließlich verwenden wir die Funktion return, um den berechneten Wert an unsere Hauptdatei zurückzugeben. Vergessen Sie bitte nicht, die Datei zu speichern. Wechseln Sie anschließend zur Hauptdatei und suchen Sie den Teil mit der include-Anweisung für das Einstiegssignal. Sie können andere Einträge auskommentieren, indem Sie zwei Schrägstriche am Anfang der Zeile hinzufügen. Fügen Sie die Include-Anweisung für unsere neue Datei namens CheckEntry_S A R hinzu und drücken Sie F7 oder klicken Sie auf die Schaltfläche Kompilieren, um beide Dateien zu kompilieren. Möglicherweise werden Sie einige Warnungen sehen, aber Sie sollten keine Fehler erhalten. Falls doch Fehler auftreten, sehen Sie sich bitte zuerst eines der grundlegenden Video-Tutorials an, oder vielleicht ist auch der Premium-Kurs auf unserer Website für Sie interessant. Okay. So weit, so gut. Ich denke,
In diesem Video möchten wir uns einmal zufällige Einstiege ansehen. Die werden hier am laufenden Band produziert. Die ganze Zeit gibt es hier oben kaufen oder verkaufen Signale. Die werden anhand eines Zufallsgenerators produziert. Und wir wollen uns einmal anschauen, wie man einen Expert Advisor in MQL5 programmieren kann, der in der Lage ist, mit solchen zufälligen Einstiegen hier Positionen zu eröffnen. Um das zu tun klicken wir im Meta Trader auf diesen kleinen Button hier oder drücken die F4 Taste. Das ruft dann hier den Meta Editor auf und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage. Weiter. Ich vergebe hier einmal den Namen SimplerStandaloneRandomEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb dieser On Tick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Zunächst importieren wir mit dem include Befehl eine Datei mit dem Namen Trade.mqh. Die gehört zum Lieferumfang vom MQL5 dazu und stellt Handelsfunktionen bereit. Und die ermöglicht uns, von der Klasse CTrade eine Instanz zu erstellen. Die nennen wir in diesem Fall trade und wir werden sie später benutzen, um damit Positionen zu eröffnen. Innerhalb der On Tick Funktion berechnen wir jetzt zunächst einmal den Ask Preis und den Bid Preis. Die brauchen wir, um Positionen eröffnen zu können. Ermittelt werden die mit dem Befehl SymbolInfoDouble für das aktuelle Währungspaar. SYMBOL_ASK liefert uns den Ask Preis. SYMBOL_BID liefert uns den Bid Preis. Und mit NormalizeDouble und Unterstrich Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen für das entsprechende Währungspaar berechnen. Wenn man sich das hier einmal anschaut, da gibt es drei oder fünf Nachkommastellen. Das hier wäre der Ask und das hier wäre der Bid Preis. Und wir brauchen in diesem Fall beides. Außerdem brauchen wir eine String Variable für unser Signal. Hier weisen wir aber noch keinen Wert zu, denn den ermitteln wir gleich noch. Zunächst brauchen wir erst einmal ein paar Preisdaten. Dazu nutzen wir den Befehl MqlRates um ein Preis Array zu erstellen, das die Daten für die letzten Kerzen aufnehmen kann. Unser Preis Array wird zunächst mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Danach nutzen wir CapyRates um unser Preis Array mit Daten zu füllen und zwar für das aktuelle Währungspaar auf dem Chart, die auf dem Chart eingestellte Zeiteinheit. Wir starten mit der aktuellen Kerze null und kopieren uns die Daten aus drei Kerzen. Damit haben wir unsere Preisdaten. Jetzt brauchen wir noch den Zufallsgenerator. Wir nutzen MathSrand und GetTickCount um diesen Zufallsgenerator zu initialisieren. GetTickCount liefert uns immer die Zahl der Millisekunden, die seit dem Systemstart vorbei sind. Damit ist das immer eine andere Zahl. Und die brauchen wir, weil MathSrand pseudozufällige Ganzzahlen produziert. Wäre dieser Wert immer gleich, würden wir auch immer die gleichen Zahlen erhalten und genau das wollen wir ja nicht. Berechnen wir also eine Zufallszahl. Dazu nutzen wir einen Befehl der ähnlich klingt MathRand. Und mit Prozent zwei bekommen wir entweder eine null oder eins zurück. Der Befehl an sich würde aber bis zu 32.767 Zahlen bereitstellen können. Da wir aber nur entweder kaufen oder verkaufen Signale benötigen, reichen uns hier zwei Zahlen. Und immer, wenn die Zufallszahl null ist, dann möchten wir gerne kaufen. Also weisen wir das Wort kaufen unserer Signal Variable zu. Im anderen Fall, wenn unser Zufallsgenerator eine eins ausspuckt, dann möchten wir verkaufen. Darum setzen wir unser Signal an der Stelle auf verkaufen.
In diesem Video wollen wir uns mal diesem Oszillator widmen. Das ist der Relativ Igor Index und wir werden uns jetzt mal anschauen, wie man den mit MQL5 berechnen kann. In diesem Video zeigen wir Ihnen, wie Sie ein Einstiegssignalmodul für den Oszillator mit dem Namen Relative Vigor Index erstellen. Da Oszillatoren Werte liefern, die sich von den Preiswerten im Kerzenchart unterscheiden, wird dieser Indikator wieder in einem separaten Chartfenster unterhalb des Kerzencharts gezeichnet. In demselben Verzeichnis wie die Hauptdatei und die anderen Einstiegsdateien erstellen wir zunächst eine neue Datei namens CheckEntry RVI.mq5. Die Funktion CheckEntry, die eine Variable für das berechnete Signal zurückgibt, ist in dieser Datei enthalten. Beginnen wir mit der Erzeugung des Signals. Da es sich um eine Variable vom Typ String handelt, kann sie Textdaten enthalten. Wir lassen sie derzeit leer, da wir den Wert wie gezeigt ermitteln müssen. Lassen Sie uns also zwei Preis-Arrays erstellen, eines für die erste und eines für die zweite Zeile, die im RVI-Oszillator Fenster angezeigt wird. Anschließend definieren wir unseren Oszillator und verwenden die i RVI-Funktion, die mit MQL5 geliefert wird. Diese verwendet das aktuelle Chartsymbol, den gewählten Zeitraum und den Wert 10 für die Definition. Wie Sie vielleicht schon erraten haben, ist der Wert 10 die Anzahl der Kerzen für die Berechnung. Beide Arrays müssen mit Hilfe von array set as series von der aktuellen Kerze abwärts sortiert werden. Jetzt wollen wir unsere beiden Arrays mit Daten füllen und das können wir mit CopyBuffer tun. In beiden Fällen verwenden wir die Definition, die wir zuvor erstellt haben. Der erste Parameter ist für den Puffer, entweder 0 oder 1. Der zweite Parameter ist die Startkerze 0. Parameter 3 steht für die Anzahl der gewünschten Kerzen, in unserem Fall für 3 Kerzen. Und der letzte Parameter ist das Ziel-Array für beide Signale. Im nächsten Schritt verwenden wir Normalize double, um eine formatierte Ausgabe mit 3 Ziffern hinter dem Punkt für die aktuelle Kerze 0 zu erhalten. Wir tun dies für beide Arrays. Da wir nun die aktuellen Werte für beide Puffer haben, können wir ein Kauf- und ein Verkaufssignal definieren. In unserem Beispiel wollen wir kaufen, wenn der Wert 0 unter dem Wert 1 liegt und wenn beide Werte unter 0 liegen. Wenn das der Fall ist, weisen wir unserer Signalvariablen das Wort buy zu. Andernfalls, wenn der Wert 0 über dem Wert 1 liegt und wenn beide Werte größer als 0 sind, weisen wir der Variablen das Wort sell zu. Nachdem wir nun das Signal berechnet haben, wollen wir es mit der return-Anweisung zurückgeben. Bitte speichern Sie die Datei ohne zu kompilieren. Der Prozess dafür wird in der Hauptdatei durchgeführt. Öffnen Sie diese und suchen Sie den Abschnitt include. Dort können Sie alle anderen Einträge mit zwei Schrägstrichen auskommentieren. Fügen Sie eine neue Zeile hinzu und binden Sie die neue Datei mit dem Namen Check_Entry RVI.mq5 ein. Dann können Sie beide Dateien gleichzeitig kompilieren, indem Sie F7 drücken oder auf die Schaltfläche Kompilieren in der Symbolleiste klicken. Der Kompiliervorgang sollte ohne Fehlermeldungen ablaufen, einige Warnungen sind zu erwarten. Okay, wenn alles soweit funktioniert hat, dann sollte man jetzt hier den Oszillator für Einstiegs-Signale nutzen können. Natürlich kann man da auch noch andere Signale draus machen. Für dieses Video war es das, ich sage: Vielen Dank fürs Zuschauen und wir sehen uns dann im nächsten Video.
In diesem Video wollen wir uns anschauen, wie man diesen Oszillator hier unten programmieren kann. Es handelt sich um den MACD, der ist ziemlich beliebt. Der hat eine grundlegende Main- und eine Signal-Linie und wir wollen jetzt mal das Hauptsignal dafür berechnen. Also lassen Sie uns mal schauen, wie das mit MQL5 geht. Der Mac D-Oszillator wird in einem separaten Chart unterhalb des Kerzencharts angezeigt. Er hat zwei Werte, die ein Signal anzeigen. In diesem Fall wollen wir das Signal der Hauptlinie berechnen. Um ihn zu verwenden, erstellen wir eine separate MQ5-Datei und legen sie in dasselbe Verzeichnis wie die anderen Platin System-Dateien. CheckEntry MacD.mq5 ist der Name der Datei, und sie enthält nur eine Funktion namens CheckEntry. Die Kauf- und Verkaufssignale für unser System werden von dieser Funktion berechnet und zurückgegeben. Oszillatoren sind eigentlich nicht dazu gedacht, Signale zu erzeugen. Stattdessen werden sie verwendet, um andere Signale zu bestätigen oder auszufiltern. Das heißt aber nicht, dass wir sie nicht verwenden können, denn alles, was wir für unser Handelssystem brauchen, ist ein klares und gut definiertes Einstiegssignal. Wir beginnen damit, das Signal in eine Variable vom Typ String zu schreiben. Diese wird später an unsere Hauptfunktion zurückgeschickt, aber zunächst müssen wir sie berechnen. Außerdem müssen wir ein Array für die Preisdaten erstellen. Und mit Array Set As Series ordnen wir unser Array und wollen es von der aktuellen Kerze 0 abwärts sortieren. MQL5 verfügt über eine Funktion zur Berechnung des MacD und diese Funktion heißt I MacD. Wir übergeben das Symbol als ersten Parameter, gefolgt von der Periode, die derzeit in unserem Chart ausgewählt ist. Es folgen drei weitere Werte, um die Periode für den schnellen exponentiellen gleitenden Durchschnitt, dann den langsamen exponentiellen gleitenden Durchschnitt und die Signalperiode zu definieren. Die Werte sind 12, 26 und 9, da dies die Standardwerte für den MacD-Oszillator sind. Der letzte Parameter wird verwendet, um festzulegen, wie das Signal berechnet werden soll. Wir möchten hier PRICE_CLOSE verwenden, um den Schlusskurs zu nutzen. Mit CopyBuffer füllen wir nun unser Array entsprechend der Definition, die wir erstellt haben. Wir tun dies für Puffer 0, da dies der Hauptpuffer für den MacD-Oszillator ist. Wir beginnen mit der aktuellen Kerze, das ist Kerze 0. Und wir wollen den Wert für 3 Kerzen speichern, das Ziel ist unser Preis-Array. Nachdem wir das getan haben, können wir den aktuellen Wert berechnen, indem wir den Wert der Kerze 0 in unserem Preis-Array betrachten. Wenn dieser Wert größer als 0 ist, wollen wir verkaufen. In diesem Fall weisen wir unserem Signal das Wort sell zu. Liegt der Wert unter 0, bedeutet das, dass wir kaufen wollen. Daher weisen wir dem Signal jetzt das Wort buy zu. Und am Ende unserer Funktion wollen wir das MacD-Signal an unser Hauptmodul zurückgeben, das die Funktion OnTick enthält. Vergessen Sie bitte nicht, Ihre Eingabedatei zu speichern, aber Sie müssen sie wirklich nicht gleich kompilieren. Die Kompilierung erfolgt im Hauptmodul, aber ehe Sie das tun, suchen Sie die Include-Anweisung für das Einstiegsignal und ändern Sie sie so, dass sie unsere neue Datei CheckEntry MacD .mq5 verwendet. Indem Sie zwei Schrägstriche an den Anfang einer Zeile setzen, können Sie andere Eingabemodule auskommentieren. Drücken Sie anschließend F7 oder klicken Sie auf die Schaltfläche Kompilieren, um Ihr Hauptmodul und die dazugehörige Einstiegssignaldatei zu kompilieren. Es sollte dabei keine Probleme geben. Wenn Sie auf Probleme stoßen,
In diesem Video wollen wir uns mal anschauen, wie man einen Expert Advisor erstellen kann beziehungsweise ein Einstiegs-Modul für diesen Oszillator hier. Der hat den Namen Akkumulation Distribution. Also lassen Sie uns mal schauen, wie das mit MQL5 funktioniert. In diesem Video werden wir eine Einstiegssignaldatei für diesen Oszillator hier erstellen. Er wird Accumulation Distribution genannt. Normalerweise werden Oszillatoren zur Bestätigung von Signalen verwendet, aber in diesem Fall nutzen wir sie als Einstiegssignal. Und wie Sie sehen können, funktioniert er tatsächlich. Der Accumulation Distribution Oszillator wird in einem separaten Chart unterhalb des Kerzencharts eingezeichnet. Er hat eine einzelne Signallinie, die einen Wert anzeigt. Um ihn zu verwenden, erstellen wir eine separate MQ5-Datei in dem Verzeichnis, in dem sich die anderen Dateien des Platin Systems befinden. Der Name der Datei ist CheckEntry_ I A D.mq5 und sie enthält eine einzige Funktion namens CheckEntry. Diese Funktion berechnet die Kauf- und Verkaufssignale für unser System. Eigentlich sind Oszillatoren nicht dazu gedacht, Signale zu generieren, sie werden vielmehr als Filter für andere Indikatoren verwendet. Das heißt aber nicht, dass wir sie nicht verwenden können, denn alles, was wir für unser Handelssystem brauchen, ist ein funktionierendes Signal, das gut definiert ist. Wir beginnen damit, eine Text Variable für das Signal zu erstellen. Diese wird später an unsere Hauptfunktion zurückgegeben, aber bevor wir das tun, müssen wir zunächst das Signal erstellen. Außerdem müssen wir ein Array für die Preisdaten erstellen. Und mit Array Set As Series sortieren wir unser Array von der aktuellen Kerze abwärts. Danach können wir unsere Definition für den Oszillator erstellen, indem wir die iA D Funktion verwenden, die bereits in MQL5 enthalten ist. Der erste Parameter steht für das aktuelle Symbol in unserem Chart und der zweite Parameter für die aktuell ausgewählte Periode in diesem Chart. Der dritte Parameter kann verwendet werden, um das angewandte Volumen auszuwählen. Wir werden hier Volume_Tick verwenden. Lassen Sie uns nun CopyBuffer verwenden, um unser Array mit Daten zu füllen. Der erste Parameter hier ist die Definition, die wir oben erstellt haben. Parameter 2 steht für den Puffer, den wir berechnen wollen. Dieser Oszillator hat nur einen Puffer, also setzen wir ihn auf 0. Der nächste Parameter ist für die Kerze, mit der wir beginnen möchten. Wir wählen die aktuelle Kerze 0 und im nächsten Parameter legen wir die Anzahl der Kerzen fest, die wir berechnen möchten. In unserem Fall tun wir dies für 3 Kerzen. Der letzte Parameter ist für das Ziel-Array, also unser Preis-Array. Jetzt können wir die Werte für die aktuelle Kerze und die Kerze davor berechnen. Um den aktuellen Wert zu ermitteln, schauen wir uns den Wert für Kerze 0 in unserem Preis-Array an. Um den Wert für die vorherige Kerze zu erhalten, machen wir dasselbe für Kerze 1. Jetzt können wir unser Signal tatsächlich berechnen. Wenn der Wert für die aktuelle Kerze höher ist als der Wert für Kerze 1, gehen wir davon aus, dass es sich um ein Kaufsignal handelt. Daher weisen wir unserem Signal das Wort buy zu. Andernfalls, wenn der aktuelle Wert für Kerze 0 unter dem Wert für Kerze 1 liegt, gehen wir davon aus, dass es sich um ein Verkaufssignal handelt. Dann weisen wir unserem Signal das Wort sell zu. Und schließlich verwenden wir die return-Anweisu...
In diesem Video möchte ich über etwas sprechen, das so offensichtlich scheint, dass es fast schon blendet. Wenn Sie den Strategietester verwenden, um etwas zu testen, können Sie Dinge übersehen, die wichtig sind, sobald Sie in Echtzeit handeln. Dies ist ein Beispiel dafür. Wenn Sie Ihre Strategie testen, vergessen Sie wahrscheinlich ein oder zwei Dinge, die Ihnen beim Handel in Echtzeit schaden könnten. Die erste Sache ist, dass die Bedingungen im echten Trading nicht dieselben sind. Wenn Sie den Strategietester verwenden, haben Sie vielleicht nicht viele verschiedene Bedingungen, aber das gehört zum Spiel, wenn Sie richtiges Geld handeln. Wenn der Strom ausfällt oder die Internetverbindung gestört ist, kann es sein, dass Ihr Expert Advisor ein paar Stunden oder sogar Tage lang nicht funktioniert. Das ist uns schon oft passiert. Und wenn es etwas gibt, das wahrscheinlich ist, dann ist es, dass einer dieser Stromausfälle zum ungünstigsten Zeitpunkt und auf die ungünstigste Weise passiert. Es könnte zum Beispiel passieren, während Sie im Urlaub sind. Vor ein paar Jahren ist folgendes passiert. Der Expert Advisor kannte den letzten Kaufkurs und den letzten Verkaufskurs, aber dann wurde die Verbindung unterbrochen. Während des Ausfalls änderte sich der Markt, aber der Expert Advisor bemerkte es nicht. Später traf der Expert Advisor weiterhin Entscheidungen auf der Grundlage von Bedingungen, die aber nicht mehr zutrafen. Sie können einen 7-stündigen Internetausfall nicht in einem Strategietest simulieren, also wird das nicht im Strategietester getestet. Als ich anfing, mit MQL4 zu arbeiten, war man sehr unzufrieden mit mir, weil ich die OnInit-Funktion nicht verwendet habe. Ja, es erfordert mehr Rechenleistung, jedes Mal, wenn ein neuer Tick hereinkommt, alles herauszufinden. Aber es ist die CPU-Zeit wert, wenn Sie Werte und Annahmen, die nicht übereinstimmen, vermeiden wollen. Denken Sie an etwas aus der realen Welt. Vielleicht haben Sie einmal die falsche Kleidung angezogen, weil sich das Wetter geändert hat, während Sie nicht aufgepasst haben. Zum Beispiel könnten Sie aus dem Sommerurlaub nach Hause kommen und feststellen, dass ein T-Shirt nicht ausreicht, weil der Flughafen in Ihrem Heimatland mit Schnee bedeckt ist. Die Funktion OnInit wird nur einmal ausgeführt, nämlich beim Start des Expert Advisors. Es ist also eine gute Idee, jedes Mal, wenn sich der Kurs ändert, zu überprüfen, ob einige wichtige Bedingungen noch zutreffen. In unserem Platin System tun wir dies mit einer Funktion namens CheckForTick. Wenn Sie nur eine Datei verwenden und keine Bibliotheken importieren, können Sie Ihren eigenen Expert Advisor direkt die in MQL enthaltene Funktion OnTick verwenden. Und verlassen Sie sich nicht nur auf die Ergebnisse von Strategietests. Diese sind eine gute Möglichkeit, um festzustellen, ob etwas funktioniert oder nicht. Aber nichts geht über den Handel in Echtzeit, selbst auf einem Cent-Konto. Wenn Sie also in Echtzeit handeln, stellen Sie sicher, dass Sie die Bedingungen und Annahmen, die Sie haben, überprüfen, denn wie Mark Twain einmal sagte: „Es ist nicht das, was wir nicht wissen, das uns in Schwierigkeiten bringt. Es sind die Dinge, derer wir sicher sind, die aber gar nicht wahr sind.“ Nicht sicher was Sie tun sollen? Klicken Sie auf den automatischen Trading Assistenten unten
In diesem Video wollen wir uns einmal anschauen, wie man diesen Expert Advisor hier programmieren kann. Beziehungsweise es geht um den Einstieg für diese beiden blauen und roten Bänder. Es handelt sich um den sogenannten Envelopes Indikator. Also lassen Sie uns einmal schauen, wie man so etwas mit MQL5 programmieren kann. Der Envelopes-Indikator wird im Kerzenchart eingezeichnet. Er hat ein oberes und ein unteres Band. Um ihn zu verwenden, erstellen wir eine separate MQ5-Datei in dem Verzeichnis, in dem sich die anderen Dateien des Platin Systems befinden. Der Name der Datei ist CheckEntry_Envelopes.mq5 und sie enthält eine einzige Funktion namens CheckEntry. Wir verwenden sie, um das Einstiegssignal für unser Handelssystem zu berechnen. Zunächst erstellen wir ein Signal, aber wir weisen keinen Startwert zu. Der Typ des Signals ist entweder Buy oder Sell, also verwenden wir eine Variable vom Typ String. Natürlich müssen wir auch ein Array erstellen. Das können wir mit dem Befehl MQL Rates tun. Um unser Array von der aktuellen Kerze abwärts zu sortieren, verwenden wir Array Set As Series. Und anschließend können wir unser Array mit Daten füllen. Dies geschieht mit dem Befehl Copy Rates. Der erste Parameter ist das aktuelle Symbol im Chart. Der zweite Parameter steht für den Zeitraum, der in diesem Chart ausgewählt ist. Der dritte Parameter steht für die Kerze, mit der wir beginnen möchten, in unserem Fall ist es die aktuelle Kerze 0. Der vierte Parameter steht für die Anzahl der Kerzen, für die wir die Kursdaten speichern möchten. Wir wählen hier 3 Kerzen. Und im letzten Parameter können wir das Ziel-Array definieren, das unser Preisinformations-Array ist. Lassen Sie uns zwei weitere Arrays erstellen. Eines ist für das obere Band, also nennen wir es upper Band-Array. Das andere ist für das untere Band, das wir lower band array nennen. Beide Arrays müssen ebenfalls mit Array Set As Series abwärts sortiert werden. Im nächsten Schritt erstellen wir die Definition für unseren Indikator. Wir verwenden die eingebaute Funktion, die mit MQL5 geliefert wird, und übergeben die folgenden Parameter. Parameter 1 ist das aktuelle Chart-Symbol. Parameter 2 ist die Periode in diesem Chart. Parameter 3 ist die Anzahl der Kerzen für die Berechnung, wir verwenden hier 14. Dies ist auch der Standardwert, wenn Sie den Indikator auf das Chart ziehen. Der nächste Parameter ist für einen Verschiebungswert. Diesen brauchen wir nicht zu ändern, also verwenden wir 0 für Parameter 4. Parameter 5 definiert die gleitenden Durchschnittswerte für die Berechnung. MODE_SMA steht für den einfachen gleitenden Durchschnitt. Das ist es, was wir hier verwenden möchten. Mit Parameter 6 legen Sie fest, ob die Werte auf der Grundlage der Schlusskurse berechnet werden sollen, was wir tun möchten. Und der letzte Parameter ist ein Abweichungswert. Der Standardwert ist 0.100, also verwenden wir ihn. Jetzt verwenden wir den Kopierpuffer, um unsere Arrays zu füllen. Wir tun dies entsprechend der Definition, die wir oben erstellt haben. Entweder für Puffer 0, das bedeutet für das obere Band oder für Puffer 1, also für das untere Band. Wir beginnen mit Kerze 0 und kopieren die Werte für 3 Kerzen in unsere Arrays. Jetzt können wir die Werte für beide Bänder berechnen, indem wir uns den Wert der Kerze 0 in unserem Array ansehen. Wir verwenden NormalizeDouble und den Wert 6, um die Ausgabe für 6 Ziffern hinter dem Punkt zu formatieren. Lassen Sie uns also das Signal berechnen. Wenn der Schlusskurs der Kerze 1 unter dem unteren Bandwert liegt,