MQL5 Tutorial - Automatisch traden mit Metatrader5

MQL5 Tutorial - Automatisch traden mit Metatrader5

By MQL5 Tutorial - Automatisch traden mit Metatrader5BusinessInvesting
Download on the App Store

MQL5 Tutorial - Automatisch traden mit Metatrader5 episodes

  • MQL5 TUTORIAL DEUTSCH MÖGLICH ODER WAHRSCHEINLICH?
    Das Thema heute ist Möglichkeiten und Wahrscheinlichkeiten. Denn ich habe wieder einmal eine Anfrage von einem Kurs-Mitglied bekommen. Und dabei ging es um die Fragestellung, ob es denn möglich ist, eine bestimmte Profit Erwartung praktisch umzusetzen. Meine Antwort darauf war, dass das von einer ganzen Menge Faktoren abhängt und einer dieser Faktoren ist die Wahrscheinlichkeit. Mein Lieblingsbeispiel zu diesem Thema ist ein Mann mit dem Namen Roy Sullivan. Roy Sullivan war ein Park Ranger in den Vereinigten Staaten und der wurde in seinem Leben ganze sieben Mal vom Blitz getroffen. Die Wahrscheinlichkeit, dass so etwas passiert, ist verschwindend gering. Trotzdem ist es für Roy Sullivan zu 100 % Realität geworden. Das bedeutet auch bei einer sehr geringen Wahrscheinlichkeit ist es durchaus möglich, dass die Folgen verheerend sind. Beispielsweise könnte man sich auch Gedanken zu den Statistiken bei Flugzeugabstürzen machen und das Argument vorbringen, dass Fliegen die sicherste Art des Reisens ist. Trotzdem gibt es immer wieder Berichte über Flugzeugabstürze und für die Leute, die in dem Flugzeug von dieser Situation betroffen sind, ist das zu 100 % ein Albtraum. Die Idee beim Trading ist also, etwas zu finden, das beide Dinge zusammenbringt in einer Art und Weise, die uns möglichst gute Ergebnisse ermöglicht.   Das bedeutet, wir müssen etwas finden, das möglich ist und das mit einer ziemlich hohen Wahrscheinlichkeit positive Ergebnisse ermöglicht. Gott sei Dank gibt es beim automatischen Trading die Möglichkeit, das über eine ziemlich intensive Testreihe herauszufinden. Das, was hier im Hintergrund dieses Videos abläuft, ist das, womit ich die meiste Zeit verbringe. Tatsächlich ist das Programmieren eines automatisierten Handelssystems gar nicht so zeitintensiv. Die meiste Zeit geht für gründliche Testreihen drauf. Und dabei geht es immer um das selbe Ziel, nämlich die Wahrscheinlichkeit für ein gutes Ergebnis möglichst zu erhöhen und das System möglichst stabil zu machen. Natürlich werden viele Leute jetzt bei den Ergebnissen aus diesem Video sagen, dass die Profit Erwartung zu gering ist und man deutlich mehr aus so einem System herausholen könnte. Aber da kann ich einwenden, dass sich dieses System erst seit drei Monaten intensiv teste. Das bedeutet, ich habe bereits viele 100 Testreihen wie diese hier durchgeführt. Das mache ich auf derzeit drei unterschiedlichen Rechnern mit drei unterschiedlichen Konten Typen. Und es geht immer darum, das System noch ein klein wenig stabiler zu machen und weniger darum, ein paar Euro mehr in der Profit Erwartung herauszuholen.   Tatsächlich bin ich in der Lage, mit dem, was Sie hier auf dem Bildschirm sehen, in unterschiedlichen Währungspaare seit der Jahrtausendwende historische Daten bis zum heutigen Tage zu handeln, ohne dass das System dabei in die Knie geht. Und das Ziel dabei ist, ein System so stabil zu bekommen, dass man auch über lange Zeiträume einen stabilen operativen Betrieb gewährleisten kann. Anfänger sind oft auf der Jagd nach einem schnellen Gewinn. Aber Profis wie Ray Dalio wissen, dass es darauf ankommt, etwas zu finden, das aufgrund von fundamentalen Gesetzen langfristig funktioniert. Wer Zeit und Lust hat, sollte sich das Buch Principles von Ray Dalio mal genauer anschauen. Ich habe da viel draus gelernt. Und wenn dieses System hier fertig ist, dann wird es ein exklusives Angebot an einige Bestandskunden geben, die die erforderlichen Kriterien erfüllen, um so ein System profitabel handeln zu können. Der Preis dafür wird sich allerdings im vierstelligen Bereich bewegen, da auch Consulting mit dabei ist. Aber bis das alles spruchreif ist, gehen sicherlich noch ein paar Monate ins Land. Falls das für Sie interessant ist, dann können Sie sich ja vorab schon einmal anmelden.   Mir ging es in diesem Video einfach darum, einmal zu zeigen, was nicht nur möglich, sondern auch wahrscheinlich ist. Denn sobald man einen möglichst stabilen Betrieb gewährleisten kann,
    6 min
  • MQL5 TUTORIAL GRUNDLAGEN – 132 STANDALONE BOLLINGER BANDS RSI EXPERT ADVISOR
    In diesem Video, wo wir uns mal anschauen, wie man einen Expert Advisor programmieren kann, der in der Lage ist die Bollinger Bänder zu nutzen, um Einstiegs-Signale zu produzieren. Und wir verwenden hier auch den RSI Oszillator als Filter. Also lassen Sie uns mal schauen, wie man so etwas programmieren kann. Um das zu tun, klicken Sie im Metatrader bitte hier oben auf diesen kleinen Button  oder Sie drücken F4 Taste. Es ruft dann hier den MetaEditor auf und hier haben wir bereits eine vorprogrammierte Version. Die hat den Namen Stand Alone Bollinger RSI und wir verwenden hier einen Einstieg und einen Filter. Zunächst einmal nutzen wir den Include Befehl, um die zu MQL5 zugehörige Datei Trade.mqh zu importieren. Die stellt uns vereinfachte Handelsfunktion bereit und danach nutzen wir wieder include und importieren die zwei Module, die wir noch programmieren müssen. Das eine wird das Einstiegs-Signal für die Bollinger Bänder ermitteln und das andere den Filter für den RSI Oszillator. Danach berechnen wir den Ask Preis und den Bid Preis. Das funktioniert mit der Funktion Symbol Info Double für das aktuelle Währungspaar auf dem Chart.   Wir nutzen entweder Symbol Ask oder Symbol Bid. Und mit Normalize double und Unterstrich Digits stellen wir sicher, dass wir die richtige Anzahl von Nachkommastellen hinter dem Komma berechnen. Danach erstellen wir uns eine Instanz von der Klasse CTrade, der wir den Namen Trade verpassen. Und mit MQLRates erstellen wir uns für ein  Preis Info Array. Wir machen das außerhalb der OnTick Funktion, da wir das auch in dem Bollinger Bands Modul nutzen wollen. Mit Array set as series sortieren wir dann unser Preis Info Array von der aktuellen Kerze an abwärts. Und mit Copy Rates füllen wir unser Preis Info Array für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit von der aktuellen Kerze 0 für drei Kerzen. Das ermöglicht uns dann anhand der aktuellen Kerze 0 den Schlusskurs zu ermitteln, der in unserem Preis Info Array gespeichert ist und diesen der Variable CurrentPrice zuzuordnen. Um das Trading Signal zu ermitteln, öffnen wir jetzt eine Funktion mit dem Namen Check Entry Bollinger. Die finden wir hier in dem Modul. Unsere Funktion bekommt keine Parameter und ist vom Typ String, da sie einen Text zurückgeben wird.   Zunächst erstellen wir eine Signal Variable, die ist auch vom Typ String. Außerdem brauchen wir drei Arrays für die drei Bollinger Bänder. Auch diese werden mit Array set as series von der aktuellen Kerze an abwärts sortiert. Und mit der integrierten Funktion Ibands können wir für das aktuelle Währungspaar auf dem Chart und die dort ausgewählte Zeiteinheit die Bollinger Bänder für 20 Kerzen berechnen. Wir benötigen keinen Shift Wert und wir nutzen den Standardwert zwei für Deviation um anhand der Schlusspreise unsere Werte zu ermitteln. Mit Copy Buffer füllen wir jetzt unsere drei Arrays für das mittlere, das obere und das untere Band, das mittlere Band hat Buffer 0, das obere Buffer 1 und das untere Band Buffer 2. Und jetzt können wir die jeweils aktuellen Werte ermitteln, indem wir uns die Werte in unserem Array anschauen. Diesmal für die Kerze 0. Und dann wiederholen wir das Ganze noch mal für die Kerze davor. Dazu schauen wir uns die Werte für Kerze eins im Array an. Und wenn der Schlusskurs von Kerze 1 kleiner war als unser unteres Band und der Schlusskurs für Kerze 0 über unseren unteren Band liegt dann wäre das ein Kaufen-Signal. Im Umkehrschluss, wenn für Kerze eins der Schlusskurs größer war als unser oberes Band und der Schlusskurs für die aktuelle Kerze 0 jetzt kleiner ist als unser oberes Band, dann wäre das ein Verkaufen Signal. Zum Schluss nutzen wir den Return Befehl, um unser Signal an das Haupt-Modul zurückzugeben. Weiter geht’s mit dem Filter. Den ermitteln wir, indem wir die Funktion Check Entry  RSI aufrufen. Die finden wir hier im zweiten Modul. Auch das ist eine String Variable, die uns hinterher ein Kaufen oder Verkaufen Signal...
    9 min
  • MQL5 TUTORIAL GRUNDLAGEN – 131 STANDALONE EMA MACD EXPERT ADVISOR
    In diesem Video wollen wir uns einmal anschauen, wie man einen Expert Advisor programmieren kann, der zwei gleitende Durchschnitte und den MACD als Filter benutzt. Also schauen wir mal, wie das mit MQL5 geht. Um das zu tun, klicken Sie bitte im MetaTrader auf diesen kleinen IDE Button hier oben oder drücken Sie die F4 Taste. Das ruft dann den MetaEditor auf und ich habe hier schon eine vorprogrammierte Version. Die startet damit, dass wir mit dem Include Befehl hier oben die Datei Trade.MQH importieren.   Die ist Bestandteil von MQL5 und gehört zum Sprach-Umfang. Als nächstes nutzen wir wieder den Include Befehl und importieren uns zwei selbst programmierte Module. Die werden den gleitenden Durchschnitt und den MACD jeweils nutzen, um ein Einstiegs- und ein Filter Signal zu ermitteln. Anschließend berechnen wir den Ask Preis und den Bid preis. Das machen wir mit der Funktion Symbol Info Double für das aktuelle Währungspaar auf dem Chart und wir nutzen Symbol Unterstrich Ask oder Symbol Unterstrich Bid. Und mit Unterstrich Digits und Normalize double stellen wir sicher, dass wir die richtige Anzahl von NachKommastellen für das jeweilige Währungspaar ermitteln. Je nach Währung kann das nämlich unterschiedlich sein. Danach erstellen wir eine Instanz von der Klasse CTrade, die wir Trade nennen. Die stellt vereinfachte Handels-Funktionen bereit, die wir nutzen, um Positionen zu eröffnen. Weiter geht es mit der OnTick Funktion.   Hier nutzen wir MQL4Rates, um uns ein Informations Array für Preisdaten zu erstellen. Das wird dann mit Array set as series im Anschluss von der aktuellen Kerze an abwärts sortiert. Und mit Copy Rates füllen wir unser Array mit Preis Daten für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir starten bei der aktuellen Kerze Null und kopieren uns die Daten für drei Kerzen in unser Preis Info Array. Das ermöglicht uns, den aktuellen Preis zu ermitteln, indem wir uns den Schluss Preis für die aktuelle Kerze im Preis Info Array ausgeben lassen. Weiter geht es mit zwei String Variablen. Die eine ist für das Trading Signal und die andere ist für das Filter Signal. Dazu rufen wir eine Funktion auf. Die Check Entry EMA heißt. Und die befindet sich in diesem Modul. Und für den Filter rufen wir eine Funktion mit dem Namen Check Entry Macd auf. Die finden wir in diesem Modul.   Denn wenn das Trading Signal auf kaufen steht und der Filter ebenfalls auf kaufen steht und uns die Funktion Positions total einen Wert von Null zurückliefert, dann haben wir zwei Kauf Signale und keine offenen Positionen und dann nutzen wir Trade.Buy, um eine Position für zehn Mike zu eröffnen. Im anderen Fall, wenn das Trading Signal auf Sell steht, also wir ein Verkaufen Signal haben und auch der Filter sagt wir sollen verkaufen, dann prüfen wir ebenfalls, ob wir keine offenen Positionen haben. Und wenn das alles zutrifft, dann nutzen wir Trade.Sell um einer Verkaufs-Position über zehn Microlot zu eröffnen. Zum Schluss nutzen wir noch das Comment Signal, um uns das Signal für die gleitenden Durchschnitte und für den MACD auf dem Bildschirm ausgeben zu lassen. Diese beiden Module hier gibt es aber noch nicht. Die müssen wir also programmieren.   Das hier ist das erste. Die Funktion heißt Check entry EMA, um den exponentiellen gleitenden Durchschnitt zu ermitteln. Zunächst erstellen wir eine String Variable mit dem Namen Entry. Der weisen wir hier aber noch keinen Wert zu. Und dann erstellen wir uns zwei Arrays, eins für den Moving Average für 20 Kerzen und eins für den Moving Average für 50 Kerzen. Das geht mit der Funktion IMA für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit. Das hier ist die Anzahl der Kerzen. Wir brauchen keinen Verschiebungswert. Wir nutzen Mode EMA. Das steht für Exponential Moving Average und die Ergebnisse sollen anhand der Schluss-Preise ermittelt werden. Hier machen wir das für 20 Kerzen und darunter wiederholen wir das Ganze noch m...
    11 min
  • MQL5 TUTORIAL GRUNDLAGEN – 130 WIE MASSENTESTS IHRE ERGEBNISSE VERBESSERN
    In diesem Video werden wir über Massentests sprechen und darüber, warum die meisten Menschen nicht verstehen, warum der automatisierte Handel funktioniert, selbst wenn Sie bereits ein Konto zerlegt haben. Lassen Sie uns also herausfinden, wie man das macht. Dies ist ein System, das ich im Moment teste. Ich hoffe, dass es meinen Computer nicht in die Luft jagt, während ich aufzeichne, denn es verbraucht sehr viel Leistung, während es hier einhundert und einen Tests durchführt. Und das seit elf Jahren. Hier ist die aktuelle Einstellung. Ich teste den australischen Dollar gegenüber dem Yen und zwar für die Jahre 2010 bis 2021. Das sind also genau elf Jahre. Und die kleinen Punkte hier auf dem Bildschirm sind die Ergebnisse, weil ich einen schnellen generischen Algorithmus verwende, um all diese Tests durchzuführen. Das wird noch einige Minuten dauern. Aber Sie können bereits sehen, dass wir gute Ergebnisse haben, eine gute erwartete Auszahlung. Aber wenn Sie sich den Equity-Einbruch ansehen, werden Sie feststellen, dass er bis zu 70% betragen kann. Irgendwann in diesen elf Jahren wird Ihr System also immer weiter sinken und Sie werden davon überzeugt sein, dass es abstürzen wird. Für manche Menschen ist sogar ein Einbruch von 22% zu viel, während andere etwa 70% aushalten können. Und wenn Sie hier nach unten scrollen, werden Sie sehen, dass wir viele unterschiedliche Ergebnisse haben, eine unterschiedliche Anzahl von Trades, unterschiedliche Werte für die erwartete Auszahlung. Und das liegt daran, dass ich hier mit einem zufälligen Einstieg handle. Sie werden sich jetzt vielleicht fragen, warum jemand mit einem zufälligen Einstieg handeln sollte? Und hier ist die Antwort. Denken Sie an einen Münzwurf. Wenn Sie eine Münze werfen, besteht eine zufällige Chance, dass Sie Kopf oder Zahl erhalten, und das ist etwa 50 Prozent. Es ist möglich, dass Sie die Münze verlieren oder sie hinter den Schrank werfen. Aber die meiste Zeit werden Sie entweder Kopf oder Zahl erhalten. Je öfter Sie das tun, desto klarer ist das Ergebnis. Und das ist genau der Grund, warum ich elf Jahre lang auf zehn oder 20 Währungspaare setze und warum ich einen zufälligen Einstieg verwende, um herauszufinden, ob es wirklich funktioniert. Nun, dieses Währungspaar sieht sehr gut aus. Und dieses Ergebnis ist auch in Ordnung. Manche Leute geben vielleicht schon auf, wenn sie so etwas sehen. Hier haben wir Verluste. Die roten Punkte bedeuten, dass wir weniger Geld haben, als wir hatten, bevor wir vor elf Jahren mit dem Handel begonnen haben. Und dieses Ergebnis ist sogar noch schlimmer. Aber lassen Sie uns einen Blick auf die Ergebnisse hier werfen. Auch ohne zu zählen, sehen Sie hier vielleicht mehr grüne als rote Punkte. Es ist sogar noch offensichtlicher, ich würde denken, dass wir hier 10 bis 12% Verluste und etwa 85% bis 88% kleine oder größere Gewinne haben. Die meisten Anleger wollen diese Verluste vermeiden und hören auf zu testen, sobald sie einen Verlust sehen. Oder sie sehen einen großen Einbruch der Equity und hören auf zu testen. Aber lassen Sie uns die Ergebnisse des letzten Tests sortieren. Ich habe heute ein paar Dutzend Tests durchgeführt. Dies ist der aktuelle Test. Und alle 101 automatisierten Tests seit elf Jahren waren profitabel. Und ich hätte dieses Ergebnis nicht erzielen können, wenn ich nicht all die anderen Tests hier gemacht hätte. Wenn Sie also sehen, dass Sie mehr Verluste als Gewinne machen, könnte eine einfache Änderung eines einzigen Parameters das Ganze ändern. Und das nächste Ergebnis könnte wie dieses aussehen. Aber hier steigen die meisten Leute aus und sagen: „Ich habe gerade bewiesen, dass es nicht funktioniert“! Machen Sie also wirklich Massentests über lange Zeiträume und für viele Währungspaare. Sie können mit der rechten Maustaste klicken und die Dateien für Excel exportieren. Lassen Sie uns also diese Datei speichern. Und jetzt wähle ich das nächste Währungspaar und beginne von vorne. Hier können Sie sehen,
    8 min
  • MQL5 TUTORIAL GRUNDLAGEN – 129 SIMPLER BOLLINGER BANDS EA
    In diesem Video möchten wir uns einmal anschauen, wie man die Bollinger Bänder automatisieren kann. Wir erzeugen hier Verkaufen- und Kaufen-Signale, je nachdem ob wir einen Ausbruch oberhalb oder unterhalb der Bänder sehen. Und wir möchten uns einmal anschauen, wie man das mit MQL5 für den MetaTrader programmieren kann. Um das zu tun, klicken Sie bitte auf diesen kleinen Button hier oben oder drücken die F4-Taste auf Ihrer Tastatur. Das ruft dann hier den MetaEditor auf und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, weiter. Ich vergebe hier einmal den Namen SimplerBollingerBandsStandAloneEA, klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der OnTick-Funktion hier gelöscht werden und wir entfernen auch beide Kommentarzeilen. Zunächst nutzen wir hier den include-Befehl, um die Datei trade.mqh zu importieren. Die stellt Handelsfunktionen bereit. Unter anderem die Klasse CTrade von der wir uns jetzt eine Instanz erstellen, die wir trade nennen. Damit werden wir gleich Positionen eröffnen.   In der OnTick-Funktion selbst erstellen wir uns eine string-Variable mit dem Namen signal. Die ist vom Typ string damit sie Textketten aufnehmen kann. Wir weisen hier aber zunächst noch keinen Wert zu, denn der wird noch ermittelt. Zunächst holen wir uns hier den Ask- und den Bid-Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. SYMBOL_ASK liefert uns den Ask-Preis. SYMBOL_BID liefert uns den Bid-Preis. Wenn Sie mal auf irgendein Währungspaar klicken, dann sehen Sie, dass wir hier zwei unterschiedliche Preislevel habe. Der höhere Preis ist der Ask-Preis den wir bezahlen müssen, wenn wir etwas kaufen. Der niedrigere Preis ist der Bid-Preis. Das ist das was wir bekommen, wenn wir etwas verkaufen. Das dazwischen ist der Spread. Daran verdient der Broker. Erstellen wir uns zunächst einmal ein Array für Preisdaten. Das machen wir mit der Funktion MqlRates. Unser Array bekommt den Namen PriceInfo.   Das wird jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert und mit dem Befehl CopyRates für das aktuelle Symbol auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit von der aktuellen Kerze für drei Kerzen mit den Preisdaten gefüllt. Das ganze Ergebnis speichern wir dann im Array. Damit haben wir alle Kursdaten zu den letzten drei Kerzen. Jetzt brauchen wir noch jeweils ein weiteres Array für den Expert Advisor. Uns interessiert hier das obere und das untere Band. Denn immer wenn der Preis hier oder hier ausbricht, dann möchten wir ein Signal erzeugen. Auch diese beiden Arrays werden mit ArraySetAsSeries wieder von der aktuellen Kerzen an abwärts sortiert. Und jetzt definieren die Bollinger Bänder. Dazu nutzen wir die Funktion iBands, die in MQL5 eingebaut ist. Wieder für das aktuelle Währungspaar und die aktuell auf dem Chart eingestellte Zeiteinheit. Wir berechnen das für 20 Kerzen. Hier stehen noch eine 0 und eine 2. Und wenn Sie sich einmal die Eigenschaften vom Bollinger Band Indikator anschauen, dann sehen Sie, dass die Standardwerte 20 Kerzen, eine Verschiebung von 0 und eine Abweichung von 2 beinhalten.   Das sind die gleichen Zahlen, die wir auch hier verwenden und das Ergebnis wird ermittelt anhand der Schlusskurse der Kerzen. Zunächst einmal kopieren wir die Preisdaten in die Arrays. Das tun wir mit dem Befehl CopyBuffer anhand unserer Bollinger Bands Definition, die wir getroffen haben. Hier steht eine 1 und da eine 2. Das liegt daran, dass wir zwei Bänder hier berechnen müssen. Die 1 steht für das obere, die 2 für das untere Band. Auch hier kopieren wir von der aktuellen Kerze für drei Kerzen und speichern die Werte in den beiden Arrays UpperBandArray, bzw. LowerBandArray. Die aktuellen Werte dafür bekommen wir indem wir die Werte für Kerze 0 aus dem jeweiligen Array auslesen, um eine Überkreuzung mit den Bändern zu ermitteln benötigen wir aber auch noch die Werte für die Kerze davor. Das ist dann Kerze 1 im gleichen Array.
    9 min
  • MQL5 TUTORIAL GRUNDLAGEN – 128 SIMPLER LONG TERM TREND
    In diesem Video wollen wir uns einmal anschauen, wie man eine Langzeittrend ermitteln kann mit Hilfe von diesen gleitenden Durchschnitten. Und wir wollen uns einmal anschauen, wie man das nutzen kann, um Positionen entsprechend zu eröffnen. Um das zu tun, klicken Sie bitte hier oben auf dieses neue Symbol. Das heißt jetzt DIE. Danach klicken wir auf Datei, Neue Datei, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen SimplerLongTermTrend, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt.   Wir starten mit einem Import für die Datei Trade.mqh, die Bestandteil von MQL5 ist. Sie enthält die Klasse CTrade, von der wir uns hier eine Instanz mit dem Namen trade erstellen. In der OnTick Funktion benötigen wir eine Signal Variable. Der weisen wir hier aber noch keinen Wert zu, denn, den möchten wir gleich ermitteln. Danach berechnen wir den Ask und den Bid Preis. Das geht über SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Wir nutzen entweder SYMBOL_ASK oder SYMBOL_BID und mit NormalizeDouble und _Digits ermitteln wir automatisch, ob das jeweilige Währungspaar drei oder fünf Nachkommastellen hat.   Für unsere Trendermittlung benötigen wir zwei Arrays. Eins soll für 950 und eins für 1.000 Kerzen sein. Für die Berechnung nutzen wir die integrierte Funktion iMA für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit, in diesem Fall für 950 Kerzen. Wir benötigen keinen Shift, also Verschiebungsmodus, nutzen MODE_EMA, um einen exponentiellen Moving Average zu berechnen. Und das Ergebnis soll ermittelt werden anhand der Schlusspreise. Das Ganze wiederholen wir jetzt nochmal für tausend Kerzen. Bis auf die Anzahl der Kerzen und die Bezeichnung ist alles identisch. Im Anschluss nutzen wir ArraySetAsSeries, um unsere beides Arrays von der aktuellen Kerze an abwärts zu sortieren. Und mit Hilfe von CopyBuffer füllen wir jetzt unsere Moving Average Arrays anhand der Definitionen, die wir hier oben getroffen haben. Und zwar tun wir das für Buffer null von der aktuellen Kerze null und wir kopieren die Werte für drei Kerzen und speichern sie in unseren Arrays.   Denn dadurch sind wir jetzt in der Lage die jeweilige Richtung zu ermitteln. Und wenn der Moving Average Array für 950 Kerzen aktuell größer ist als der Wert für den Moving Average Array für tausend Kerzen, dann wäre das für uns ein Kaufen Signal, also weisen wir den Begriff Buy unserer Einstiegsvariable zu. Im anderen Fall, wenn der 950er Moving Average unter dem 1.000er Moving Average liegt, dann wäre das für uns ein Verkaufen Signal und in dem Fall weisen wir den Begriff Sell unserer Einstiegsvariable zu. Denn, wenn unser Einstiegssignal auf Sell steht und wir keine geöffneten Positionen haben, wenn also die Funktion PositionsTotal einen Wert kleiner eins zurückliefert, dann nutzen wir trade.Sell, um eine Position zu verkaufen. Im umgekehrten Fall, wenn wir ein Kaufsignal und ebenfalls keine geöffnetes Positionen haben, dann nutzen wir trade.Buy, um eine Position zu kaufen. Und dieser Bereich hier stellt den Stop Loss und den Take Profit Wert dar.   Wenn Sie mit diesen Werten einmal experimentieren und viele Tests machen, dann werden Sie herausfinden, was Ihnen wirklich weiter hilft, um Ihre Ergebnisse zu verbessern. Das war es auch schon so weit. Wenn alles funktioniert und Sie hier auf Kompilieren klicken, dann sollten Sie keine Fehler bekommen. In meinem Fall ist das so. Wenn Ihnen das hier aber zu schnell ging oder wenn Sie keine Ahnung haben, was alle diese Codezeilen hier bewirken sollen, dann können Sie sich auch mal auf unserer Webseite umsehen. Dort finden Sie auch den Link zum Shop, wo Sie solche vorprogrammierten Module herunterladen können und natürlich auch unseren Premiumkurs. Wir klicken jetzt erst mal hier oben auf dieses kleine Symbol oder drücken die F4 Taste, um in den Metatrader zurückzukehren.
    6 min
  • MQL5 TUTORIAL GRUNDLAGEN – 127 SIMPLES ELLIPSE OBJEKT
    In diesem Video wollen wir uns einmal anschauen, wie man so ein bewegliches Kreisobjekt hier erstellen kann. Eigentlich handelt sich hierbei um eine besondere Form einer Ellipse, also lassen Sie uns einmal schauen, wie man so etwas in MQL5 programmieren kann. Um das tun, klicken Sie bitte im MetaTrader 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 mal den Namen SimplesEllipseObjekt, klicke auf weiter, weiter und fertigstellen. Jetzt kann hier alles oberhalb der OnTick-Funktion entfernt werden und auch die zwei Kommentarzeilen werden gelöscht. Wir starten damit, dass wir uns zunächst eine Variable für die höchste und die niedrigste Kerze erstellen. Außerdem benötigen wir noch ein High und ein Low Array für die höchste und niedrigste Kerze. Diese Arrays werden jetzt mit ArraySetSeries von der aktuellen Kerze an abwärts sortiert. Das machen wir sowohl für das High Array als auch für das Low Array und im Anschluss nutzen wir den Befehl CopyHigh für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit.   Wir starten von Kerze 0 für 30 Kerzen und kopieren uns für alle diese Kerzen die Höchstpreise in unser High Array. Das Ganze geht auch mit den Niedrigstpreisen für alle Kerzen. Hier nutzen wir den Befehl CopyLow. Alle anderen Parameter sind identisch, bis auf den letzten der steht für das Ziel Array und natürlich möchten wir die niedrigsten Preise in das Low Array kopieren. Nach dem wir das getan haben, können wir die höchste Kerze berechnen, indem wir hier ArrayMaximum für unser High Array benutzen. Dieser Befehl durchsucht von Kerze 0 bis Kerze 30 alle enthaltenen Werte und speichert den höchsten Wert in dieser Variable hier ab. Zur Ermittlung der niedrigsten Kerze nutzen wir den Befehl ArrayMinimum. Ebenfalls von Kerze 0 bis Kerze 30 nach dem niedrigsten Wert und den speichern wir dann in dieser Variable ab. Außerdem brauche wir noch ein weiteres Array mit Preisinformationen. Das erstellen wir uns mit Hilfe des Befehls MqlRates.   Auch dieses Array sortieren wir mit ArraySetAsSeries von der aktuellen Kerze an abwärts und mit CopyRates können wir jetzt für das aktuelle Währungspaar auf dem Chart und die dort ausgewählte Zeiteinheit, angefangen von Kerze 0, für alle verfügbaren Kerzen auf dem Chart Preisdaten in unser Price Information Array kopieren. Dieser Befehl hier gibt uns alle verfügbaren Preisdaten. Auf einem langsamen Rechner könnte man das auch durch einen festen Wert ersetzen, so wie hier, und beispielsweise nur die Preisdaten für 30 Kerzen ermitteln. Und bevor wir jetzt unser Objekt zeichnen, möchten wir erst ObjectDelete nutzen, um die vorherigen Objekte zu löschen, und zwar für das aktuelle Währungspaar möchten wir alle Objekte löschen, die diesen Namen hier haben. Den Grund, warum wir Ellipse verwenden, ist, dass ein Kreis eine besondere Form einer Ellipse ist. Das sehen wir jetzt auch, wenn wir ObjectCreate verwenden, denn wir tun das für das aktuelle Währungspaar auf dem Chart. Vergeben hier den Objektnamen und der dritte Parameter ist der Objekttyp und der heißt in unserem Fall OBJ_ELLIPSE. Unser Objekt soll im Hauptfenster gezeichnet werden, das ist Fenster 0.   Die linke Begrenzung ist der Zeitpunkt an dem Kerze 30 gezeichnet wurde. Der höchste Preis der höchsten der letzten 30 Kerzen soll die obere Begrenzung sein. Der aktuelle Zeitpunkt für die aktuelle Kerze 0 ist die Begrenzung nach rechts und der niedrigste Preis der niedrigsten der letzten 30 Kerzen soll die Begrenzung nach unten sein. Jetzt könne wir noch ein paar Objekteigenschaften verändern. Das geht mit der Funktion ObjectSetInteger. Auch hier wieder für das Objekt auf dem Hauptchart mit dem Namen Ellipse. Verändern möchten wir die Eigenschaft OBJPROP_COLOR und die Farbe, die wir nutzen möchten, ist Blau. Diese Objekteigenschaften sind je nach Objekttyp untersc...
    8 min
  • MQL5 TUTORIAL GRUNDLAGEN – 126 SIMPLER RUNNING TIMER
    In diesem Video wollen wir uns einmal anschauen, wie man messen kann, wie viel Zeit seit dem Start eines Expert Advisors vergangen ist. Dazu möchten wir hier diesen Timer programmieren. Also lassen Sie uns einmal schauen, wie man so etwas in MQL5 machen kann. Um das zu tun, klicken Sie im MetaTrader 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 mal den Namen Simpler Running Timer. Klicke auf weiter, weiter und fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Und auch die zwei Kommentar Zeilen hier werden entfernt. Wir starten damit, dass wir einige Variablen erstellen. Die sind vom Typ Date Time. Date Time ist ein Format, das Datum und Zeit seit dem 1. Januar 1970 bestimmen kann. Es gibt unterschiedliche Formate, wie man das darstellen kann. Wir haben hier eine Variable für die aktuelle Zeit, für die Startzeit und für die Zeit, die seitdem vergangen ist.   In der OnTick Funktion starten wir damit, dass wir prüfen, ob die Startzeit keinen Wert enthält. Das wäre der Fall, wenn Start Time den Wert 0 hat. Und wenn das so ist, dann möchten wir für unsere Startzeit die Time Local Funktion nutzen. Die Time Local Funktion wird uns die lokale Zeit des Computers zurückgeben, auf dem unser Client läuft. Das funktioniert auch für den Strategie Tester, bei dem man ja auch andere Zeitspannen eingeben kann. Im nächsten Schritt nutzen wir Time Local wieder, um die aktuelle Zeit zu bestimmen. Die wird immer dann, wenn die Ontick Funktion aufgerufen wird, etwas anders sein, weil ja Zeit vergangen ist. Bitte behalten Sie im Hinterkopf, dass Ontick die Funktion ist, die nur dann gestartet wird, wenn sich der Preis ändert. Wir werden also nicht jede Sekunde eine Aktualisierung sehen. Es wird nur dann aktualisiert, wenn tatsächlich eine Preisänderungen stattgefunden hat. Als nächstes berechnen wir die Differenz, also die vergangene Zeit, indem wir von der aktuellen Zeit die Startzeit abziehen. Und um das Ganze für uns lesbar zu machen, nutzen wir MQL Date Time, um eine Struktur Variable zu erstellen.   Wenn man das hier einmal markiert und die F1 Taste drückt, dann lernen wir, dass es hier unterschiedliche Rückgabewert gibt. Beispielsweise für Stunde, Minuten und Sekunden. Genau das benötigen wir. Und um die gewünschte Ausgabe zu erhalten, nutzen wir time to struct. Damit kann man eine Variable vom Typ Date Time in das gewünschte Format konvertieren. Um die Stunden zu erhalten erstellen wir uns hier eine Integer Variable und weisen ihr den Rückgabewert von date time structure hour zu. Die Minuten erhalten wir mit Date Time Structure min. Die Sekunden erhalten wir über date time structure sec. Bei Bedarf könnten wir hier noch den Tag, das Jahr, den Monat oder den Tag der Woche und sogar den Tag im laufenden Jahr berechnen. Und soll das aber für dieses einfache Beispiel so reichen? Damit wir davon auch was sehen, fügen wir zum Schluss hier noch eine Comment-Ausgabe hinzu. Die wird uns die Startzeit, die aktuelle Zeit und die vergangene Zeit in Stunden, Minuten und Sekunden anzeigen. Das war’s auch schon soweit. Wenn Ihnen das hier zu schnell ging, oder wenn Sie keine Ahnung haben, was diese Codezeilen hier bewirken sollen, dann möchten Sie sich vielleicht zunächst einmal ein anderes Video aus der Grundlagen Serie anschauen.   Vielleicht ist aber auch der Premium Kurs interessant für Sie. Den finden Sie auf unserer Webseite. Und da gibt es jetzt auch Links zum Shop, wo man solche Quellcodes hier herunterladen kann, falls man nicht alles selber tippen möchte. Das hier war übrigens wieder ein Vorschlag von einem Premium Mitglied und wenn Sie eine Idee für so ein Video haben und schon Premium Mitglied sind, dann lassen Sie es mich doch einfach wissen. Für den Moment klicken wir hier auf Kompilieren oder drücken die F7 Taste.
    6 min
  • MQL5 TUTORIAL DEUTSCH – LEVEL 1C SO ERSTELLEN SIE IHRE EIGENE ALGO TRADING SYSTEM FARM
    Willkommen zu unserer neuen Dokumentationsreihe über die Erstellung Ihrer eigenen Algo Trading System Farm. Wir verwenden automatisierte Stimmen und Technologien, um Ihnen zu helfen, Ihre Ergebnisse schneller und mit weniger Aufwand zu verbessern. In diesem Teil werden wir uns mit der grundlegenden Installation von MX Linux befassen. Zunächst müssen Sie herausfinden, wie Sie die Starteinstellungen auf Ihrem Computer ändern können, damit die Installation später funktioniert. Das ist je nach Computertyp unterschiedlich, aber in den meisten Fällen gelangen Sie in die Konfiguration, indem Sie eine bestimmte Taste wie Escape oder F1 drücken. Dort können Sie eine Einstellung vornehmen, die es uns erlaubt, von einem USB-Stick zu starten. Aber zuerst müssen wir diesen USB-Stick erstellen. Dafür gibt es verschiedene Programme und je nach Betriebssystem ist das ganz unterschiedlich. Die meisten Zuschauer dieser Videos werden wahrscheinlich von einem Windows-Betriebssystem ausgehen und es gibt eine sehr gute und einfache Möglichkeit, einen USB-Stick aus unserer heruntergeladenen ISO-Datei zu erstellen. Im letzten Teil haben wir gesagt, dass wir die 64-Bit-Version für Fluxbox herunterladen wollen. Tatsächlich bietet MX Linux aber auch die Möglichkeit, eine 32-Bit-Version herunterzuladen. So können auch 15 Jahre alte Computer mit der neuesten Software verwendet werden. In unserem Beispiel verwenden wir ein Gerät aus dem Jahr 2010. In der Tat habe ich auch einige Netbooks, die nur mit 32-Bit-Betriebssystemen funktionieren. Auf ihnen läuft MX Linux auch mit nur einem Gigabyte Arbeitsspeicher reibungslos. Allerdings sind diese Geräte nicht wirklich für den Aufbau einer Algo-Trading-Serverfarm geeignet. Stattdessen verwenden wir ein Tecra A11-Notebook aus dem Jahr 2010. Dieses Gerät ist kein Hochleistungsrechner mehr, aber der Arbeitsspeicher kann auf 8 GB aufgerüstet werden. Das war in den letzten Jahren ziemlich teuer, aber inzwischen hat sich die Technologie so weit entwickelt, dass der Arbeitsspeicher für solche veralteten Geräte wieder sehr günstig geworden ist. Um nun unser Startmedium auf dem USB-Stick zu erstellen, benötigen wir ein entsprechendes Programm. Daher laden wir zunächst die portable Version der Software Rufus für unseren Windows-PC herunter. Rufus ist eine Software, die in der Lage ist, auch ohne Installation auf Ihrem Windows-PC innerhalb weniger Minuten ein Startmedium zu erstellen. Die portable Version kann nach dem Download mit einem Mausklick gestartet werden und hier erhalten wir das entsprechende ISO-Image der Version, die wir für MX Linux heruntergeladen haben. Außerdem benötigen wir einen USB-Stick, der tatsächlich als Startmedium fungieren kann. Die meisten aktuellen USB-Sticks sollten dazu problemlos in der Lage sein. Wir haben hier einen 32-Gigabyte-Stick, aber wenn Sie einen alten USB-Stick mit 8 GB oder mehr herumliegen haben, ist das auch in Ordnung. Bevor Sie die ISO-Datei auf den USB-Stick schreiben können, vergewissern Sie sich bitte zweimal, dass Sie die richtige Einstellung für das Ziellaufwerk gewählt haben. Im Zweifelsfall entfernen Sie bitte alle externen USB-Geräte wie Festplatten oder SD-Karten im Falle von Notebooks. So vermeiden Sie Verwechslungen. Nachdem Sie alle Einstellungen entsprechend vorgenommen haben, klicken Sie auf die entsprechende Schaltfläche, um den USB-Stick zu erstellen. Dies sollte innerhalb von fünf bis zehn Minuten erledigt sein. Sobald dies erfolgreich abgeschlossen ist, stecken wir unseren neu erstellten USB-Stick in unseren Zielcomputer ein, um MX Linux zu starten. Keine Sorge, es wird noch nichts installiert. Bevor Sie mit der Installation beginnen, wird MX Linux zunächst im Testmodus auf dem Zielcomputer ausgeführt. Dies gibt Ihnen die Möglichkeit, sich zu vergewissern, dass alles funktioniert, bevor Sie Ihr anderes Betriebssystem überschreiben. Wenn Sie ein Backup Ihres früheren Windows-Systems erstellen möchten, bevor Sie es mit MX Linux überschreiben,
    6 min

About MQL5 Tutorial - Automatisch traden mit Metatrader5

From the publisher's feed

Metatrader5 MQL5 Expert Advisor Tutorial