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 – Simpler Order Cancels Order Expert Advisor
    Heute möchten wir uns mit einem Expert Advisor beschäftigen der oberhalb und unterhalb des aktuellen Kurses eine pending Order in Form eines Buy Stop oder eines Sell Stop erstellt und sobald hier unser Preis eine der beiden Linien erreicht, wird aus der Order eine Position erstellt und die jeweils andere Order soll gelöscht werden. Diese Technik nennt man „Order cancels Order“. Wir beschleunigen das hier mal ein wenig um zu zeigen wie das funktioniert. Und jetzt ist hier unten eine Buy Position erstellt worden und die offene Order ist verschwunden. Wie können wir jetzt einen Expert Advisor erstellen der genau diese Funktionalität bereit stellt? Um das zu tun klicken wir hier oben auf den kleinen Button oder drücken die F4-Taste, das ruft dann hier den Metaeditor auf und hier wählen wir Datei – Neu – Expert Advisor aus Vorlage – Weiter – ich vergebe hier einmal den Namen „SimplerCancelOrderEA“ – klicke auf Weiter – Weiter – Fertigstellen. Jetzt können wir alles oberhalb der OnTick Funktion löschen und auch die Kommentarzeilen werden entfernt. Damit wir etwas haben, was wir handeln können, importieren wir zunächst einmal die Datei „Trade.mqh“ und erstellen uns, aus der dort enthaltenen Klasse CTrade, eine Instanz mit dem Namen „trade“. In der OnTick Funktion möchten wir zunächst einmal die Konto Balance ermitteln. Das machen wir mit „AccountInfoDouble“ und dafür benutzen wir die Konstante „ACCOUNT_BALANCE“. Ähnlich wird die Equity ermittelt, auch hier nutzen wir „AccountInfoDouble“ und die Konstante „ACCOUNT_EQUITY“. Die Variable Balance nimmt also unser Brutto Guthaben auf und die Variable Equity enthält unser nicht gebundenes Netto Guthaben, nach Abzug aller offenen Trades und Kosten. Für Long Trades benötigen wir den Ask Preis, der wird mit „SymbolInfoDouble“ für das aktuelle Chart und die Konstante „SYMBOL_ASK“ ermittelt. Die Funktion „NormalizeDouble“ in Verbindung mit „_Digits“ sorgt dafür, dass wir die richtige Anzahl von Nachkommastellen ermitteln, denn es gibt Währungspaare mit 3 und andere mit 5 Nachkommastellen. Ähnlich ermitteln wir den Bid Preis, allerdings nutzen wir hier „SYMBOL_BID“. Den Bid Preis benötigen wir für Short Trades. Wir möchten Test Orders eröffnen wenn keine Positionen und auch keine Order geöffnet sind, das ist der Fall wenn die Funktion „PositionsTotal“ und „OrdersTotal“ jeweils den Wert 0 ergeben. Und wenn das der Fall ist, dann eröffnen wir mit „trade.BuyStop“ und „trade.SellStop“ jeweils eine Order von 10 Microlot. Die Long Order wird 100 Punkte über dem derzeitigen Ask Preis liegen und die Short Order liegt 100 Punkte unterhalb des Bid Preises. Das gilt jeweils für das aktuelle Chart, wir haben keinen Stop Loss definiert und unser Take Profit soll für die Long Order 300 Punkte oberhalb des derzeitigen Ask Preises liegen und genauso gilt das für den Bid Preis, da liegt sie 300 Punkte darunter. Diese Konstante hier „ORDER_TIME_GTC“ wird benutzt wenn die Order solange gültig sein soll bis wir sie selbst löschen. In Deutsch ist das etwas unglücklich mit „Warteorder vor der Ablehnung“ übersetzt. Andernfalls würden wir hier und hier ein Ablaufdatum setzen, das wir aber in diesem Fall nicht nutzen und auch der letzte Parameter wird mit einer 0 besetzt, denn für dieses einfache Beispiel benötigen wir keinen Kommentar. Und wenn wir gerade traden, wenn also unser Brutto Guthaben ungleich ist zu unserem Netto Guthaben, dann rufen wir die noch zu erstellende Funktion „CancelOrder“ auf, die unsere offene Order löschen soll. Dazu erstellen wir hier eine neue Funktion vom Typ Void, da wir keine Rückgabewerte benötigen und diese Funktion bekommt den Namen „CancelOrder“. Das erste was wir in der Funktion tun, ist mit einer for-Schleife über den Zähler i, von der, mit OrdersTotal ermittelten Gesamtanzahl aller offenen Orders, abzüglich 1, solange wie noch offene Order bestehen, den Zähler herunter zu zählen und für den Zähler der jeweiligen Position mit OrderGetTicket,
    8 min
  • MQL5 Tutorial – Fortgeschrittene Trading Bibliothek
    Das hier ist ein Expert Advisor, der diese Buy-Stops hier eröffnet, indem er eine selbst geschriebene Bibliothek benutzt. Und in dieser Bibliothek gibt es eine entsprechende Funktion, um die Trades hier auszulösen. Wir möchten uns jetzt einmal anschauen, wie man so was im MQL5 programmieren kann. Dazu klicken wir im MetaTrader hier oben auf diesen kleinen Button oder drücken die F4-Taste. Das ruft dann hier den MetaEditor auf. Und hier habe ich bereits ein Hauptmodul erstellt. Und in diesem Modul nutze ich eine Datei, die nennt sich MeineBibliothek.ex5. Eine Bibliothek können Sie sich als eine Sammlung von Funktionen vorstellen, die immer wieder genutzt werden und die man in einer Datei bereitstellt. Und aus dieser Datei importieren wir uns hier, mit diesen beiden Importbefehlen, eine Funktion um den Profit für unser Währungspaar zu berechnen und eine weitere Funktion, die den Buy-Stop öffnet. In der OnTick-Funktion prüfen wir dann, ob wir bereits geöffnete Orders haben, und falls nicht, eröffnen wir einen Buy-Stop. Und hier ermitteln wir uns den Profit, indem wir die Methode GetProfitWährungspaar aufrufen, die wir oben aus unserer Bibliothek importiert haben. Zu guter Letzt geben wir hier mit dem Comment-Befehl noch unseren Profit aus. Alles das ist nicht weltbewegend, aber es geht in diesem Fall ja auch um die Bibliothek selber. Wir möchten uns jetzt also diese Bibliothek hier erstellen. Dazu klicken wir auf Datei, Neu, Bibliothek, Weiter. Ich vergebe hier den Namen Meine Bibliothek und klicke auf Fertigstellen. Und der MetaEditor erstellt mir jetzt hier so ein leeres Gerüst und die property library hier oben muss stehen bleiben, damit wir unsere Bibliothek später kompilieren können. Der Rest kann gelöscht werden. Und damit wir uns die Buy-Stops öffnen können, benötigen wir zunächst einmal die Funktionen aus der Datei Trade.mqh. Die importieren wir mittels des Include-Befehls und danach erstellen wir uns eine Instanz von der Klasse CTrade, die erhält den Namen Trade. Jetzt erstellen wir uns hier unsere Funktion GetProfitWährungspaar. Und der Unterschied zu einer herkömmlichen Funktion ist, dass unsere Bibliotheksfunktion um diesen Begriff Export hier erweitert wird. Wenn man sich das einmal in der MQL5-Hilfe ansieht, dann sieht man, dass man damit Funktionen aus anderen Programmen aufrufen kann. Ansonsten tickt sie wie jede andere Funktion. Wir erstellen uns hier eine double-Variable für den Profit, zählen alle Positionen von PositionsTotal aus runter, bis wir bei Null angelangt sind, beschaffen uns über PositionGetSymbol für den aktuellen Zähler i das entsprechende Währungspaar. Und wenn unser Währungspaar auf dem Chart übereinstimmt mit dem Währungspaar aus der aktuellen Position, dann ermitteln wir hier uns mit PositionGetDouble den Positionsprofit, beziehungsweise den Positions-Swap. Und als Endergebnis ermitteln wir die Summe aus diesen beiden Werten. Hier wird der for loop beendet und hier formatieren wir das berechnete Ergebnis, indem wir mit NormalizeDouble für den errechneten Wert die Zahl auf zwei Nachkommastellen begrenzen. Im letzten Schritt geben wir hier den Profit für das Währungspaar zurück. Damit wir überhaupt einen Profit haben, benötigen wir noch eine weitere Funktion, die heißt OpenBuyStop. Und hier ermitteln wir den Ask-Wert über SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart, benutzen SYMBOL_ASK, weil wir den Ask-Preis benötigen, und formatieren mit NormalizeDouble die Nachkommastellen, indem wir _Digits benutzen. Das liefert uns für die entsprechenden Währungspaare entweder drei oder fünf Nachkommastellen zurück. Mit AccountInfoDouble ACCOUNT_BALANCE holen wir uns das Bruttoguthaben auf unserem Konto. Entsprechend liefert AccountInfoDouble ACCOUNT_EQUITY uns das Nettoguthaben. Und wenn Netto- und Bruttoguthaben gleich sind, dann eröffnen wir mit dieser Zeile hier einen Buy-Stop für zehn Micro-Lot einhundert Punkte über dem Ask-Preis für das aktuelle Währungspaar.
    7 min
  • MQL5 TUTORIAL – SIMPLER SAR STOCHASTIC STANDALONE EXPERT ADVISOR
    In diesem Video werden wir einen Expert Advisor erstellen, der die Parabolic SAR und Stochastic Oscillator-Indikatoren verwendet, um Kauf- und Verkaufssignale in MetaTrader zu generieren. Schauen wir mal, wie wir das machen können. Zuerst starten Sie den MetaEditor. Sie können dies tun, indem Sie auf das Symbol klicken oder einfach die F vier-Taste drücken. Wir beginnen mit der #include Direktive, um die Trade.mqh-Bibliothek zu importieren.   Diese Bibliothek bietet uns wesentliche Handelsfunktionen. Danach erstellen wir eine Instanz der CTrade-Klasse namens trade. Diese Instanz wird unser Hauptwerkzeug für die Ausführung von Kauf- und Verkaufsaufträgen sein. Als Nächstes berechnen wir den aktuellen Angebotspreis mit der Funktion Symbol Info Double und den Parametern Symbol und SYMBOL ASK. Dies gibt uns den Preis, zu dem wir kaufen können. Um die Genauigkeit zu gewährleisten, verwenden wir die Funktion Normalize Double und geben den Preis und Digits ein, um die Anzahl der Dezimalstellen anzupassen. Ebenso bestimmen wir den Gebotspreis mit der Funktion Symbol Info Double und den Parametern Symbol und SYMBOL BID. Dies ist der Preis, zu dem wir verkaufen können. Dieser Preis wird auch mit der Funktion Normalize Double normalisiert.   Dann richten wir ein Array namens Price Info vom Typ Mql Rates ein. Dieses Array speichert unsere Preisdaten für bestimmte Zeiträume im Diagramm. Innerhalb der On Tick-Funktion sortieren wir unser Price Info-Array mit der Funktion Array Set As Series, um die neuesten Daten zu priorisieren. Dann füllen wir dieses Array mit Preisdaten für das aktuelle Symbol und den aktuellen Zeitrahmen mit der Funktion namens Copy Rates. Hier kopieren wir Daten für drei Kerzen, was uns einen Überblick über die jüngsten Preisbewegungen gibt. Der Schlusskurs der neuesten Kerze wird dann mit der Referenz Price Info[ null].close bestimmt. Dann rufen wir die Funktion Check Entry auf. In dieser Funktion verwenden wir den Parabolic SAR-Indikator, um die aktuellen und vorherigen Werte zu überprüfen und festzustellen, ob ein Kauf- oder Verkaufssignal vorliegt. Wenn der aktuelle SAR-Wert unter dem aktuellen Preis liegt und der vorherige SAR-Wert über dem vorherigen Preis lag, deutet dies auf ein Kaufsignal hin.   Umgekehrt, wenn der aktuelle SAR-Wert über dem aktuellen Preis liegt und der vorherige SAR-Wert unter dem vorherigen Preis lag, deutet dies auf ein Verkaufssignal hin. Zusätzlich wird die Funktion Check Entry Stochastic verwendet, um unsere Signale zu verfeinern. Diese Funktion überprüft die Werte des Stochastic Oscillator. Wenn die K-Linie die D-Linie von unten in einem überverkauften Bereich kreuzt, deutet dies auf ein Kaufsignal hin. Wenn die K-Linie die D-Linie von oben in einem überkauften Bereich kreuzt, deutet dies auf ein Verkaufssignal hin. Mit diesen Signalen entscheidet der Code, ob ein Kauf- oder Verkaufshandel ausgeführt wird. Wenn sowohl das Handelssignal als auch das Filtersignal einen Kauf zurückgeben und keine offenen Positionen vorhanden sind, wird die Funktion trade Buy verwendet, um zu kaufen, was zehn Mikro-Lot entspricht. Wenn beide Signale einen Verkauf zurückgeben, wird die Funktion trade.   Sell verwendet, um zehn Mikro-Lot zu verkaufen. Nachdem Sie den gesamten Code eingegeben haben, drücken Sie F sieben, um ihn zu kompilieren. Wenn das zu schnell für Sie war oder Sie nicht verstehen, was der gesamte Code macht, sollten Sie vielleicht den Premium-Kurs auf unserer Website besuchen oder eines der Grundvideos zuerst ansehen. Nach einer erfolgreichen Kompilierung kehren Sie zu MetaTrader zurück, indem Sie die F vier-Taste drücken oder auf das Symbol klicken. Einmal in MetaTrader, drücken Sie Control und R, um den Strategietester zu starten. Wählen Sie den Expert Advisor, den Sie gerade erstellt haben, aktivieren Sie den visuellen Modus und starten Sie einen Strategietest. Sie sollten dann den Expert Advisor im Diagramm in Aktion sehen.   Wenn Sie bereits Mitglied des Premium-Kurses sind und e...
    5 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER RSI STANDALONE EXPERT ADVISOR
    In diesem Video geht es um diesen Indikator hier. Das ist der Relative Strength Index. Auch bekannt unter dem Namen RSI. Und wir wollen uns einmal anschauen, wie man den für den Metatrader 5 komplett automatisiert handeln kann. Immer wenn diese blaue Linie hier oberhalb der oberen gestrichelten Linie ist, dann wäre das ein Verkaufen Signal. Ist sie hier unter der unteren Linie, dann wäre das ein Kaufen Signal. Wir haben ja auch schon eine geöffnete Position. Und wir schauen uns jetzt einmal an, wie man so ein System hier mit MQL5 komplett automatisiert, so dass es tatsächlich eigenständig handelt. Um das zu tun, klicken Sie im Metatrader 5 bitte auf diesen kleinen Button hier oben 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 SimplerRSIStandaloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Und jetzt kann alles oberhalb dieser On Tick Funktion hier gelöscht werden. Wir entfernen auch noch die zwei Kommentarzeilen. Im ersten Schritt importieren wir hier die Datei Trade.mqh. Die kommt mit MQL5 und stellt einige nützliche Handelsfunktionen bereit. Wir erstellen zunächst eine Instanz von CTrade. Die bekommt den Namen trade und wird gleich genutzt, um die Positionen auch eröffnen. Innerhalb der On Tick Funktion erstellen wir eine leere String Variable mit dem Namen signal. Jetzt brauchen wir noch den Ask Preis und den Bid Preis. Die bekommen wir über die Funktion SymbolInfoDouble. Für das aktuelle Währungspaar auf den Chart mit SYMBOL_ASK bekommen wir den Ask Preis. Mit SYMBOL_BID bekommen wir den Bid Preis. Man sieht das hier ganz gut, dass eine Preisspanne existiert. Der blaue Preis ist der Ask Preis. Und der rote Preis ist der Bid Preis. Und da es Währungspaare mit unterschiedlicher Anzahl von Nachkommastellen gibt, nutzen wir noch NormalizeDouble_Digits. Denn _Digits bewahrt die Anzahl von Ziffern nach dem Dezimalpunkt auf. In diesem Währungspaar hätten wir drei Nachkommastellen und in diesem Währungspaar fünf Nachkommastellen. Danach erstellen wir ein Array für einige Preisdaten. Und vergeben den Namen RSIArray. Und jetzt kommt die eigentliche Definition. Dazu nutzen wir die in MQL5 eingebaute Funktion iRSI für das aktuelle Währungspaar auf den Chart und die auf dem Chart ausgewählte Zeiteinheit. Wenn Sie sich fragen, wo diese 14 hier herkommt, die sieht man übrigens auch hier unten. Und wenn Sie einmal auf Einfügen, Indikatoren, Oszillatoren, Relativ Strength Index klicken, dann sehen Sie, dass die Berechnung auf 14 Kerzen erfolgt. Und hier wird der Close Preis genutzt. Genauso machen wir das auch. 14 Kerzen und PRICE_CLOSE für den Schlusskurs. Jetzt nutzen wir ArraySetAsSeries und sortieren das Array von der aktuellen Kerze an abwärts. Und mit CopyBuffer füllen wir unser RSIArray anhand der RSI Definition, die wir hier oben getroffen haben, für das erste Signal. Das ist Buffer 0, von der aktuellen Kerze 0 für 3 Kerzen und speichern das Endergebnis in unserem Array hier. Um jetzt den aktuellen RSIWert zu berechnen, erstellen wir eine Variable mit dem gleichen Namen und greifen auf die Kerze 0 in unserem RSIArray zu. Das gibt uns hier den RSIWert. Mit NormalizeDouble und dieser 2 kürzen wir das Ergebnis noch auf zwei Nachkommastellen. Damit lassen sich die Signale ermitteln. Wenn der RSIWert größer ist als 70, dann weisen wir unserer Signal Variable den Wert Verkaufen zu. Also immer, wenn die blaue Linie hier oberhalb der gestrichelten oberen Linie ist, dann möchten wir verkaufen. Im andern Fall, wenn der RSIWert kleiner ist als 30, dann weisen wir unserem Signal den Wert Kaufen zu. Das wäre jetzt hier der Fall gewesen. Denn hier war die blaue Linie unterhalb der unteren gestrichelten Linie. Kommen wir zur eigentlichen Positionseröffnung. Wenn unser Signal Kaufen ist und wenn die Funktion PositionsTotal kleiner als 1 ist, das wäre immer dann der Fall, wenn wir keine geöffnete Position haben,
    7 min
  • MQL5 TUTORIAL – SO OPTIMIEREN SIE IHRE ERGEBNISSE
    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. Und das geht immer dann am besten, wenn man das Geld nicht braucht. Und ich glaube, dass der Anteil der Platin Mitglieder, die die Nerven haben, solche Drawdowns auszuhalten und die auch das nötige Geld haben, solche Entwicklungen hier durchzustehen, überdurchschnittlich hoch ist. Und wenn Sie bereit sind Platin Mitglied sind,
    6 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER ICCI EXPERT ADVISOR
    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, die gerade auf dem Chart ausgebildet wird, indem wir einfach auf Kerze null in unserem PriceArray zugreifen. Wenn dieser Wert über der oberen Linie ist, dann möchten wir verkaufen. Wir prüfen also, ob der ICCIWert größer ist als 100. Das wäre der Fall, wenn diese blaue Linie hier oberhalb der gestrichelten 100-er Linie ist.
    8 min
  • MQL5 TUTORIAL – WIE MAN IMMER NOCH PROFITIERT AUCH WENN DER PREIS GEGEN SIE GEHT
    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. Den Link finden Sie unten und wie immer danke ich Ihnen fürs Zuschauen und wir sehen uns im nächsten Video!
    4 min
  • MQL5 TUTORIAL – VORSICHT BEI HISTORISCHEN DATEN
    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.
    3 min
  • MQL5 TUTORIAL DEUTSCH – 135 SIMPLE LOT GROESSEN RUNDUNG
    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.
    5 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER IFRAMA STANDALONE EXPERT ADVISOR
    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 Variable zu. Umgekehrt, ist der Frama Wert kleiner als unser tiefster Preis von Kerze eins im Array, dann möchten wir gerne kaufen und weisen den Wert kaufen unserer Signal Variable zu. Und wenn unser Signal dem Wert kaufen entspricht und PositionsTotal uns einen Wert von kleiner eins zurück liefert, mit anderen Worten,
    7 min

About MQL5 Tutorial - Automatisch traden mit Metatrader5

From the publisher's feed

Metatrader5 MQL5 Expert Advisor Tutorial