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 – FORTGESCHRITTENER IFORCE EINSTIEG
    In diesem Video geht es darum, diesen Force Index Indikator hier zu einem Einstiegsmodul umzugestalten. Wir möchten dieses Signal nutzen, um mit dem RobotTradingSystem, zehn Jahre automatisch zu handeln. Und wir schauen uns jetzt einmal an, wie man ein solches Einstiegsmodul in MQL5 programmieren kann. Um das zu tun, klicken wir im Metatrader auf dieses kleine Symbol hier oben oder drücken die F4 Taste. Hier wird jetzt der Metaeditor aufgerufen. Das hier ist mein RobotTradingSystem. Es kann all diese Einstiege hier handeln. Und uns geht es in diesem Fall um diesen hier. CheckEtry_IForce. mq5 ist die Datei, die wir jetzt erstellen wollen. Dazu klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich muss den Pfad hier noch etwas verlängern und vergebe hier den Namen CheckEtry_IForce. mq5. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Auch die zwei Kommentarzeilen können weg. Statt void brauchen wir hier den Rückgabetyp string. Und die Funktion bekommt den Namen CheckEntry. In dieser Funktion erstellen wir zunächst einmal eine String Variable für unser Signal. Die bekommt auch den Namen Signal, aber noch keinen Wert zugewiesen, denn der wird noch ermittelt. Danach erstellen wir uns ein Array für die Preisdaten unserer Kerzenpreise. Mit MqlRates bekommen wir die Information, über Preise, Volumen und Spread. Das Array wird jetzt mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und danach nutzen wir die Funktion CopyRates um unser PriceArray mit Daten zu füllen. Und zwar für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir starten bei der aktuellen Kerze. Das ist die Kerze null und kopieren uns die Daten für drei Kerzen. Jetzt brauchen wir noch ein zweites Array. Das soll die Daten für unseren Expert Advisor aufnehmen. Und nutzen die Funktion iForce, die in MQL5 enthalten ist, um die Definition für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit zu erstellen. Dieser Parameter, hier 13, der wird auch ersichtlich, wenn man im Metatrader einmal auf Einfügen, Indikatoren, Oszillatoren, Force Index klickt. Dann sieht man hier, dass die Berechnung anhand von 13 Kerzen erfolgt. Das Ganze wird auf einen Simple Moving Average und auf das Tick Volumen berechnet. Das entspricht auch den beiden letzten Parametern, die wir hier verwenden. Auch in diesem Fall nutzen wir ArraySetAsSeries. Und mit der Funktion CopyBuffer füllen wir jetzt unser PriceArray anhand der ForceIndexDefinition, die wir hier oben erstellt haben für Buffer null, das ist diese blaue Linie hier, von der aktuellen Kerze null für drei Kerzen und speichern die Ergebnisse in unserem PriceArray. Danach ermitteln wir den ForceIndexWert, indem wir einfach auf Kerze null in unserem PriceArray zurückgreifen. Mit NormalizeDouble und dieser sechs stellen wir sicher, dass der Wert richtig formatiert ist. Denn der ForceIndex hat sechs Nachkommastellen. Die eigentliche Signalbestimmung ist sehr einfach. Wenn der ForceIndexWert kleiner ist als null, dann werten wir das als Kaufsignal. Also weisen wir den Begriff Kaufen unserer Signalvariable zu. Andernfalls, wenn der ForceIndexWert größer ist als null, dann halten wir das für ein Signal um zu verkaufen. Also weisen wir den Begriff Verkaufen unserem Signal zu. Letztendlich liefern wir das ermittelte Signal noch an das Hauptmodul zurück. Das machen wir mit der Funktion return. Bitte vergessen Sie nicht diese schließende Klammer. Danach kann ich mein Modul hier speichern. Dieser include Befehl hier unten, wird unser neues Modul im Hauptsystem importieren. Ich nutze hier das ROBOTRADINGSYSTEM in der Version vom 25. Juli 2018. Sie könnten das Modul aber auch in Ihr eigenes System importieren. Und falls Sie keines haben, dann können Sie sich eine Demo Version auf Robotradingsystem.com herunterladen. Das System kann alles diese Einstiege hier handeln,
    9 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER SHIFTED SMA STANDALONE EXPERT ADVISOR
    In diesem Video möchten wir uns einmal einen verschobenen gleitenden Durchschnitt ansehen. Wenn man sich das hier einmal genauer betrachtet, dann sieht man, dass es Original die gleichen Werte sind. Aber dieser gleitende Durchschnitt hier ist in die Zukunft verschoben. Und wir möchten einen Expert Advisor programmieren, der aus den daraus generieten Signalen Kaufen und Verkaufen Signale erstellen kann. Um das zu tun, klicken wir im Metatrader auf dieses kleine Symbol hier oben 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 einmal den Namen SimplerShiftedSMA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion hier gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Und wir beginnen damit, dass wir uns eine Variable für das Signal erstellen. Die soll eine Textkette, Kaufen oder Verkaufen aufnehmen können, bekommt hier aber noch keinen Wert zugewiesen. Denn den möchten wir noch ermitteln. Jetzt brauchen wir zwei Arrays. Eines für unseren gleitenden Durchschnitt. Und ein weiteres für den verschobenen gleitenden Durchschnitt. Für den gleitenden Durchschnitt nutzen wir die, in MQL5 eingebaute Funktion iMA für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit. Hier möchten wir anhand der letzten fünfzig Kerzen den Durchschnittswert berechnen. Diese null hier ist der Verschiebungswert. Der aktuelle Moving Average soll nicht verschoben werden. Darum diese null. Mit MODE_SMA legen wir fest, dass es sich um einen einfachen gleitenden Durchschnitt, also einen Simple Moving Average handelt. Und mit PRICE_CLOSE legen wir fest, dass das Ganze anhand der Schlusskurse berechnet werden soll. Wenn Sie diese iMA Funktion hier markieren und F1 drücken, dann können Sie das alles hier noch mal nachlesen. Und uns geht es in diesem Video um diesen Wert hier. Shift ist die horizontale Verschiebung des Indikators. In unserem Fall bedeutet das, dass wir hier zwei identische Signallinien haben. Aber diese hier ist nach vorne verschoben. Wie macht man das? Ganz einfach, indem man den gleichen Befehl hier noch mal eingibt. Allerdings diesmal den Verschiebungswert auf zwanzig setzt. Das steht für eine Verschiebung von zwanzig Kerzen nach vorn. Und so kann man aus zwei identischen gleitenden Durchschnitten diese Überkreuzungssignale hier generieren. Die tatsächlich funktionieren. Wie Sie sehen, das Signal steht auf Kaufen. Denn wir haben hier einen aufsteigenden Trend. Wir nutzen die Funktion ArraySetAsSeries um den aktuellen und auch den verschobenen gleitenden Durchschnitt, von der aktuellen Kerze an abwärts zu sortieren. Und mittels CopyBuffer füllen wir unser Moving Average mit Daten. Und zwar anhand der getroffenen Moving Average Definition für Buffer null, das ist der rote SMA. Wir starten mit Kerze null. Das ist die aktuelle Kerze und kopieren uns die Werte für drei Kerzen in unser Moving Average Array. Hier machen wir noch einmal das Gleiche für unseren verschobenen gleitenden Durchschnitt. Allerdings nutzen wir hier die ShiftedAverageDefinition, die unseren gleitenden Durchschnitt zwanzig Kerzen in die Zukunft verschiebt. Und um den Wert für die aktuelle Kerze zu berechnen, greifen wir jeweils auf den Wert in Kerze null, das ist die aktuelle Kerze in unserem MovingAverageArray oder in unserem ShiftedAverageArray zu. Und wenn unser aktueller gleitender Durchschnittswert größer ist, als unser verschobener gleitender Durchschnittswert, dann setzen wir das Signal auf Kaufen. Wenn es aber zu einer solchen Überkreuzung hier kommt, wenn also der Moving Average Wert der aktuellen Kerze kleiner ist als der verschobene Moving Average Wert, dann setzen wir unser Signal auf verkaufen. Zum Schluss nutzen wir noch die Comment Funktion um den Satz: das aktuelle Signal ist, gefolgt von unserem ermittelten Signal auszugeben.
    6 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER SELL STOP EXPERT ADVISOR
    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. Und in dem Fall klicken Sie hier oben oder drücken F4, um in den Metatrader zurückzukehren. Und im Metatrader klicken wir auf Ansicht, Strategietester oder drücken die Tastenkombination Ctrl+R. Das ruft dann hier den Strategietester auf. Und hier wählen wir die Datei SimplerSellStop.ex5,
    9 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER TENKANSEN STANDALONE EA
    Das was hier läuft und so verwirrend aussieht ist der Ichimoku Kinko Hyo Indikator. Einer der kompliziertesten Indikatoren, die man so findet. Und wir wollen uns einmal anschauen, wie man diese rote Linie hier, den Tenkan sen berechnen kann. Entsprechend geht das natürlich auch für alle anderen Signale, die hier im Ichimoku Kinku Hyo vorhanden sind. In unserem Fall erzeugen wir hier Verkaufen und Kaufen Signale. Je nachdem, ob die rote Linie oberhalb oder unterhalb der Preisdaten ist. Und entsprechend werden hier auch automatische Positionen eröffnet. Schauen wir uns also mal an, wie das geht. Um das zu programmieren, klicken Sie im Metatrader bitte auf diesen kleinen Button hier oder drücken Sie 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 SimplerTenkansenStandaloneEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der OnTick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Und wir starten mit dem include Kommando und importieren die Datei Trade.mqh. Die gehört mit zu MQL5. Diese Instanz werden wir später nutzen, um Positionen zu eröffnen. Innerhalb der OnTick Funktion berechnen wir zunächst den Ask-Preis und den Bid Preis. Das macht die Funktion SybolInfoDouble. Die benötigt als Parameter das aktuelle Währungspaar auf dem Chart. Und mit SYMBOL_ASK berechnen wir den Ask-Preis. Das Ganze geht noch mal mit Symbol_Bid für den Bid Preis. Und mit NormalizeDouble_Digits sorgen dafür, dass die passende Anzahl von Nachkommastellen für das jeweilige Währungspaar berechnet wird. Das können nämlich sowohl drei, als auch fünf Nachkommastellen sein. Danach erstellen wir uns eine Variable für das Signal. Die ist vom Typ string. Aber wir weisen zunächst noch keinen Wert zu. Der wird noch ermittelt. Mit der Funktion MqlRates erstellen wir uns ein Preis Array für die Price Informationen. Denn MqlRates bewahrt die Informationen über Preise, Volumen und Spread auf. Danach sortieren wir das Array von der aktuellen Kerze an abwärts. Das geht mit ArraySetAsSeries. Jetzt kopieren wir uns noch Preisdaten in das Array. Dazu nutzen wir ja CopyRates für das aktuelle Währungspaar auf dem Chart und die auf dem Chart ausgewählte Zeiteinheit. Wir starten mit der aktuellen Kerze null, kopieren uns die Preisdaten für drei Kerzen und speichern das Ergebnis in unserem PriceInformation Array. Jetzt brauchen wir noch ein Array. Und zwar für den Tenkansen. Und wir nutzen die MQL5 Funktion iIchimoku. Wenn man die mal markiert und F1 drückt, dann sieht man, dass man damit unterschiedliche Dinge berechnen kann. Der Tenkan sen, der Kijun sen, der senkou span b. Das sind alles unterschiedliche Puffer. Je nachdem, welchen Pufferwert man nutzt, bekommt man für Puffer null den Tenkan sen, für Puffer eins den Kijun sen und so weiter. Die iIchimoku Funktion benötigt einige Parameter. Der erste Parameter ist für das aktuelle Währungspaar. Der zweite ist die aktuelle Zeiteinheit auf dem Chart. Und diese drei Werte, 9; 26 und 52, die sieht man auch, wenn man auf Einfügen, Indikatoren, Tendenz Ichimoku Kinko Hyo klickt. Der Tenkan sen hat einen Wert von nein, der Kijun sen hat einen Wert von 26. Und der Senkou Span B hat einen Wert von 52. Und das ist exakt das, was wir auch hier verwenden. Unser Array wird wieder mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und jetzt nutzen wir CopyBuffer, um anhand der IchimokuDefinition, die wir hier oben getroffen haben, unser TenkansenArray mit Preisdaten zu füllen. Und zwar für Buffer null von der aktuellen Kerze null, für drei Kerzen. Danach können wir den Wert für die aktuelle Kerze berechnen, indem wir auf Kerze null in unserem TenkansenArray zugreifen. In unserem Beispiel möchten wir dann verkaufen, wenn der Tenkansen Wert größer ist, als der Schlusskurs von Kerze eins. In dem Fall weisen wir den Begriff Verkaufen unserer Signal Variable zu.
    8 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER BEARS POWER STANDALONE EA
    In diesem Video möchten wir uns einmal anschauen, wie man einen eigenständig handelsfähigen Expert Advisor für diesen Indikator, den Bears Power Oszillator programmieren kann. Der wird uns hier oben Kaufen und Verkaufen Signale anzeigen und entsprechend Positionen eigenständig eröffnen. Um das zu programmieren, klicken wir im Metatrader hier oben auf dieses kleine Symbol oder drücken die F4 Taste. Das ruft dann den Metaeditor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerBearsPowerStandaloneEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen kommen weg. Wir starten mit dem include Befehl und importieren die Datei Trade.mqh, die Bestandteil von MQL5 ist. Sie enthält die Klasse CTrade. Davon erstellen wir uns eine Instanz mit dem Namen Trade, die wir später nutzen werden, um Positionen zu eröffnen. Vorher ermitteln wir hier den Ask und den Bid- Preis. Die bekommen wir über die Funktion SybolInfoDouble für das aktuelle Währungspaar. Wir nutzen SYMBOL_ASK um den Ask-Preis zu ermitteln. Und SYMBOL_BID für den Bid-Preis. Und mit NormalizeDouble_Digits berechnen wir die Anzahl der Ziffern nach dem Dezimalpunkt. Denn die können je nach Währungspaar unterscheiden. Hier haben wir drei und hier hätten wir fünf. Und _Digits liefert uns das automatisch. Jetzt erstellen wir uns eine string Variable. Die kann Textketten aufnehmen. Aber weisen hier noch keinen Wert zu. Denn wird noch ermittelt. Für die Kerzen auf dem Chart erstellen wir uns jetzt ein Array mit dem Namen PriceInformation. Über MqlRates holen wir uns die Informationen über die Preise, das Volumen und den Spread für die einzelnen Kerzen. Mit der Funktion ArraySetAsSeries wird unser PriceInformations Array jetzt von der aktuellen Kerze an abwärts sortiert. Und mit der Funktion CopyRates können wir uns jetzt für das aktuelle Währungspaar auf dem Chart und die dort ausgewählte Zeiteinheit von der aktuellen Kerze null für drei Kerzen die Preisdaten holen. Und die speichern wir dann in unserem PriceInformations Array. Jetzt brauchen wir noch ein zweites Array für Preisdaten von unserem Expert Advisor. Das bekommen den Namen myPriceArray. Auch das wird mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und danach nutzen wir die Funktion iBearsPower, die in MQL5 eingebaut ist, um für das aktuelle Währungspaar und die auf dem Chart eingestellte Zeiteinheit den Indikatorwert für 13 Kerzen zu berechnen. Diese 13 sieht man auch hier in Klammern und wenn man auf Einfügen, Indikatoren, Oszillatoren, Bears Power klickt, sieht man hier auch: Aha, der Wert wird anhand der letzten 13 Kerzen berechnet. Mittels CopyBuffer holen wir uns jetzt für das erste Buffer, das ist diese Signallinie hier, die Werte von der aktuellen Kerze null für drei Kerzen und speichern das Ergebnis in unserem PriceArray. Danach können wir den aktuellen BearsPowerWert berechnen, indem wir einfach auf Kerze null in unserem PriceArray zugreifen. Und wenn der BearsPowerWert größer ist als null, wenn also der Wert oberhalb dieser gestrichelten Linie hier liegt, dann interpretieren wir das als Kaufen Signal und weisen den Begriff Kaufen unserer Signalvariable zu. Im anderen Fall, wenn der BearsPowerWert kleiner ist als null, dann halten wir das für ein Verkaufssignal. Und dann weisen wir unserer Signal Variable den Wert Verkaufen zu. Und wenn das Signal auf Verkaufen steht und uns die Funktion PositionsTotal einen Wert kleiner eins zurückliefert, dann haben wir keine geöffnete Position. Und in dem Fall nutzen wir trade.Sell um zehn Microlot zu verkaufen. Andererseits, wenn Signal auf Kaufen steht und wir keine geöffneten Positionen haben, dann nutzen wir trade.Buy, um zehn Microlot zu kaufen. Zum Schluss nutzen wir noch den Comment Befehl um eine Chart Ausgabe zu erstellen. Die wird und den Text: Das aktuelle Signal ist… gefolgt vom ermittelten...
    7 min
  • MQL5 Tutorial Deutsch – Simpler IDEMA Standalone EA
    In diesem Video geht es um die Erstellung eines lauffähigen Expert Advisors, der in der Lage ist, automatisch den Double Exponential Moving Average zu handeln. Das ist diese rote Linie hier. Wir haben hier bereits unsere erste Position eröffnet. Und wir wollen uns jetzt einmal schauen, wie man so etwas mit MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im Metatrader auf das Symbol hier oder drücken die F4 Taste. Jetzt sollten Sie den Metaeditor sehen. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerIDEMAStandaloneEA, klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Auch die zwei Kommentarzeilen werden entfernt. Zunächst erstellen wir uns von der Klasse CTrade eine Instanz mit dem Namen trade. Die werden wir später verwenden, um Positionen zu eröffnen. Dafür müssen wir zunächst einmal den Ask-Preis und den Bid-Preis berechnen. Der Ask-Preis wird verwendet, wenn wir etwas kaufen. Und der Bid-Preis, wenn wir etwas verkaufen möchten. Die Funktion SymbolInfoDouble ermöglicht es uns, für das aktuell ausgewählte Währungspaar mit SYMBOL_ASK den Ask-Preis zu berechnen. Und die Funktion NormalizeDouble_Digits kürzt die Anzahl der Nachkommastellen so, dass das auch zu dem ausgewählten Währungspaar passt. In diesem Fall haben wir fünf Nachkommastellen. Dieses Währungspaar hier hätte nur drei Nachkommastellen. Der rote Preis hier ist der Ask-Preis und der blaue ist der Bid-Preise. Jetzt nutzen wir MqlRates um ein Array für unsere Preisedaten zu erstellen. Mit Hilfe der Funktion ArraySetAsSeries sortieren wir jetzt unser Array von der aktuellen Kerze an abwärts. Und danach nutzen wir die Funktion CopyRates, um unser PriceInfo Array für das aktuelle Währungspaar und die auf dem Währungspaar ausgewählte Zeiteinheit von der von der aktuellen Kerze null für drei Kerzen mit Preisdaten zu füllen. Wir brauchen auch noch eine String Variable für unser Signal. Die bekommt auch den Namen Signal. Hier weisen wir noch keinen Wert zu, denn der wird noch ermittelt. Jetzt brauchen wir noch ein Array für Preisdaten für unseren Expert Advisor. Das bekommt hier mal den Namen MyEaArray. Und wir definieren mit Hilfe der eingebauten iDEMA Funktion von MQL5, dass wir für das aktuelle Währungspaar und die auf dem Währungspaar ausgewählte Zeiteinheit ein Ergebnis auf Basis von 14 Kerzen ermitteln möchten. Wenn man sich hier einmal die Eigenschaften anschaut, dann sieht man die 14 auch in Klammern. Und mit der rechten Maustaste sehen wir in den Eigenschaften des Double Exponential Moving Average, dass er für 14 Kerzen mit einer Verschiebung von null auf den Close Preis berechnet wird. Das sind genau die drei Parameter, die wir hier nutzen. Auch jetzt nutzen wir wieder ArraySetAsSeries um unser EaArray von der aktuellen Kerze an abwärts zu sortieren. Und mit CopyBuffer füllen wir unser EaArray anhand der movingAverage Definition, die wir hier oben getroffen haben für Buffer null, das ist dieser rote Strich hier, von der aktuellen Kerze null für drei Kerzen mit Daten. Das war es soweit mit der Vorarbeit. Um den Expert Advisor Wert für die letzte Kerze zu berechnen, greifen wir auf Kerze eins in unserem EaArray zu und weisen das Ergebnis der Variable MeinMovingIDEMaWert zu. Vom Prinzip hat diese rote Linie hier jeweils einen Wert für jede Kerze. In diesem Fall hier wäre der Wert 1.354748. Und wenn dieser berechnete Wert oberhalb des Schlusskurses für Kerze eins in unserem PriceInfo Array liegt, dann wäre das für uns ein Verkaufen Signal. Darum weisen wir dann den Begriff Verkaufen unserer Signal Variable zu. Anders herum, wenn der movingAverage IDEMA Wert kleiner ist, als der Schlusskurs von Kerze eins in unserem PriceInfo Array, dann sehen wir das als ein Kaufen Signal. Und dann weisen wir den Begriff Kaufen unserer Signal Variable zu. Und wenn unser Signal den Wert Verkaufen hat, und uns der Wert PositionsTotal einen Wert kleine...
    8 min
  • MQL5 Tutorial Deutsch – Simpler Volumes Filter
    In diesem Video möchten wir uns einmal den Filter für den Volumen Indikator anschauen. Es handelt sich um diese grünen und roten Balken hier unten. Unser Expert Advisor wird eigenständig die Bollinger Bänder handeln. Er gibt hier oben Signale und Filterzustände aus. Und nur wenn wir ein Einstiegssignal und einen positiven Filterwert haben, dann wird eine neue Position eröffnet. Wie kann man jetzt einen Expert Advisor erstellen, der in der Lage ist, den Volumenindikator als Filter zu benutzen und die Signale nicht nur auszugeben, sondern auch eigenständig zu handeln? Um das zu tun, drücken Sie im Meta Trader bitte auf die F4 Taste oder klicken auf diesen kleinen Button. Das öffnet dann hier den Meta Editor. Hier haben wir bereits eine Datei, die geöffnet ist. Diese Datei soll unseren Filter später benutzen. Dazu importieren wir mittels Include Befehl zunächst die Datei Trade.mqh, die uns Handelsfunktionen bereitstellt. Danach wird mit dem gleichen Befehl der Einstieg für die Bollinger Bänder und unser Filtermodul importiert. Das hier ist das Bollinger Bands Modul, das den Einstieg liefern wird. Aber darum geht es in diesem Video nicht. Denn wir möchten ein neues Modul für unseren Filter erstellen. Und das erhält hier den Namen CheckFilter_Volumes.mq5. Wir benötigen zunächst einmal eine Funktion. Die bekommt den Namen CheckFilter und wird uns eine Textkette an unser Hauptmodul zurückliefern, die entweder den Wert positiv oder negativ enthält. Zunächst erstellen wir uns eine Variable für unseren Filter. Die ist vom Typ String, die heißt auch Filter. Und wir weisen hier zunächst noch keinen Wert zu. Anschließend erstellen wir ein Array für die Preisdaten. Das bekommt den Namen myPriceArray und ist vom Typ Double. Damit kann es auch Nachkommastellen aufnehmen? Im Fall von unserem Volumenindikator ist das gar nicht erforderlich, denn der gibt hier unten ganze Zahlen aus. Danach definieren wir die Eigenschaften für unseren Filter. Dazu nutzen wir die Funktion iVolumes für das aktuelle Währungspaar auf dem Chart und dort eingestellte Zeiteinheit. Als dritten Parameter nutzen wir VOLUME_TICK, um uns die Werte für das Tick Volumen ausgeben zu lassen. Jetzt sortieren wir die Preise von der aktuellen Kerze an abwärts, indem wir ArraySetAsSeries für unser Array nutzen. Und mit CopyBuffer füllen wir unser Array anhand der Definition, die wir hier oben getroffen haben, für Buffer 0 von der aktuellen Kerze 0 für drei Kerzen mit Daten. Danach berechnen wir den Wert für die aktuelle Kerze, indem wir auf Kerze 0 in unserem Preisarray zugreifen. Und das Ergebnis der Variable CurrentVolumesValue zuordnen. Auf Deutsch bedeutet das: aktueller Volumenwert. Jetzt berechnen wir noch den Wert für die Kerze davor. Den bekommen wir, wenn wir auf die Kerze 1 in unserem PriceArray schauen. Dieser Wert wird der Variable LastVolumesValue zugewiesen. Das bedeutet: letzter Volumen Wert. Und wenn wir ein steigendes Volumen haben, also der aktuelle Volumenwert über dem letzten Volumenwert liegt, dann setzen wir unsere Filtervariable auf positiv. Im anderen Fall, wenn der aktuelle Volumenwert kleiner ist als der letzte Volumenwert, dann möchten wir unseren Filter auf negativ setzen. Zum Schluss möchten wir den Filter noch an das Hauptmodul zurückliefern. Das macht in diesem Fall der Retournbefehl und hier im Hauptmodul greifen wir über CheckEntry auf das aktuelle Signal zu, den Filter holen wir uns über CheckFilter. Und wenn das TradingSignal auf Kaufen steht, unser Filter positiv ist und wir keine offenen Positionen haben, dann nutzen wir trade.buy um zehn Mikrolot zu kaufen. Im anderen Fall, unser TradingSignal steht auf Verkaufen, unser Filter ist positiv und wir haben keine geöffnete Position, dann nutzen wir trade.sell um zehn Mikrolot zu verkaufen. Zum Schluss nutzen wir noch den Comment Befehl. Der gibt uns das TradingSignal und in einer neuen Zeile den aktuellen Wert des Filters aus. Sie können hier dieses Hauptmodul und auch das Modul für den Bollinger...
    7 min
  • MQL5 Tutorial Deutsch – Simpler Standalone Bulls Power Expert Advisor
    In diesem Video möchten wir uns mal den Bulls Power Indikator anschauen. Der Indikator ist relativ einfach. Wir haben eine gestrichelte Linie. Immer wenn die Balken sich oberhalb dieser gestrichelten Linie befinden, dann sehen wir das als kaufen Signal. Im umgekehrten Fall, sobald die Balken unterhalb der gestrichelten Linie sind, dann wäre das ein verkaufen Signal. Und wir wollen uns einmal einen eigenständig handelsfähigen Expert Advisor programmieren, der nicht nur kaufen und verkaufen Signale hier direkt auf den Chart ausgibt, sondern auch in der Lage ist, eigenständig Positionen 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 SimplerBullsPowerStandaloneEA, 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 dem include Befehl, um die Datei Trade. mqh zu importieren. Die stellt Handelsfunktionen bereit. Und jetzt erstellen wir uns eine Instanz von CTrade. Die bekommt den Namen trade und wir werden sie später verwenden, um Positionen zu eröffnen. In der On Tick Funktion ermitteln wir zunächst den Ask-Preis und den Bid-Preis. Mit SybolInfoDouble lässt sich das erledigen. Dafür brauchen wir genau zwei Parameter. Der erste Parameter ist das aktuelle Währungspaar auf dem Chart. Und im zweiten Parameter nutzen wir SYMBOL_ASK für den Ask-Preis beziehungsweise SYMBOL_BID für den Bid-Preis. Mit Hilfe von NormalizeDouble_Digits runden wir die Anzahl der Nachkommastellen so, dass sie zur Anzahl der Nachkommastellen des jeweiligen Währungspaares passt. Jetzt brauchen wir noch eine String Variable für das Signal. Zunächst weisen wir hier keinen Wert zu. Denn der wird noch ermittelt. Mit der Funktion MqlRates erstellen wir ein Array für Preisinformationen. Denn MqlRates speichert die Informationen über Preise, Volumen und Spread. Danach wird das Array mit ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Und mit Hilfe der Funktion CopyRates füllen wir unser Preis Informations Array für das aktuelle Symbol, also das Währungspaar auf dem Chart, die auf dem Chart eingestellte Zeiteinheit von der aktuellen Kerze null für drei Kerzen mit Preisdaten. Danach brauchen wir noch ein Array für die Preis Daten des Indikators. Das nennen wir mal PriceArray. Auch das wird mit Hilfe von ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Jetzt können wir mit Hilfe der eingebauten iBullsPower Funktion vom MQL5 anhand des aktuellen Währungspaares auf dem Chart und der dort eingestellten Zeiteinheit unsern Expert Advisor definieren. Diese 13 hier sieht man auch hier in Klammern. Und wenn wir uns die Eigenschaften vom Bulls Power Indikator anschauen, dann sieht man, dass dieser Indikator auf die letzten 13 Kerzen berechnet wird. Und das entspricht auch hier unserem letzten Parameter. Mit CopyBuffer füllen wir jetzt unserer PriceArray anhand der BullsPowerDefinition, die wir hier oben getroffen haben für das erste Buffer, das ist das Buffer null, von der aktuellen Kerze null für drei Kerzen mit Preisdaten. Und um den Wert für die aktuelle Kerze zu berechnen greifen wir einfach auf die Kerze null in unserem PriceArray zu und weisen das Ergebnis der Variable BullsPowerWert zu. Und wenn der Bulls Power Wert größer ist als null, also if BullsPowerWert > 0, dann setzen wir unser Signal auf Kaufen. Liegt der Bulls Power Wert unter null, dann möchten wir gerne verkaufen und weisen den Begriff verkaufen unser Signal Variable zu. Und wenn unser Signal auf verkaufen steht und wir keine geöffneten Positionen haben, in diesem Fall gibt die Funktion PositionsTotal einen Wert kleiner eins zurück, dann nutzen wir trade.Sell um zehn Mikrolot zu verkaufen. Andernfalls, wenn das Signal auf kaufen steht,
    7 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER ENVELOPES STANDALONE EXPERT
    In diesem Video möchten wir uns einmal den Indikator Envelopes anschauen. Der produziert so eine blaue und eine rote Linie. Und wir wollen einmal schauen, wie man sich einen Expert Advisor in MQL5 erstellen kann, der in der Lage ist, Kaufen und Verkaufen Signale hier auf dem Chart auszugeben und eigenständig Positionen automatisch zu öffnen. Um das zu tun, klicken wir im Mata Trader auf diesen kleinen Button oder drücken die F4 Taste. Das ruft dann den Meta Editor auf. Und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier einmal den Namen SimplerEnvelopesStandAloneEA. Klicke auf Weiter, Weiter und Fertigstellen. Jetzt kann alles oberhalb der On Tick Funktion gelöscht werden. Und auch die zwei Kommentarzeilen kommen weg. Wir starten, indem wir uns eine Instanz von CTrade erstellen. Dazu nutzen wir den Include Befehl und importieren die Datei Trade.mqh. Die ist in MQL5 enthalten und stellt Handelsfunktionen bereit. Unsere Instanz bekommt den Namen Trade. Und damit werden wir gleich Positionen eröffenen. Vorher müssen wir noch ein paar Dinge berechnen. Fangen wir an mit dem Ask Preis und dem Bid Preis. Die Berechnung erfolgt mit der Funktion SymbolInfoDouble für das aktuelle Symbol auf dem Chart, also das Währungspaar. Benutzen SYMPBOL_ASK um den Ask Preis zu berechnen. Und SYMBOL_BID um den Bid Preis zu berechnen. Mit NormalizeDouble_Digits stellen wir sicher, dass die Berechnung von drei oder fünf Nachkommastellen automatisch erfolgt, je nachdem, welches Währungspaar wir traden. Jetzt brauchen wir noch eine leere String Variable. Die bekommt den Namen Signal, denn die soll später unser Handelssignal aufnehmen. Und mit MQL Rates erstellen wir uns ein Array für Preisinformationen. Das wird mittels ArraySetAsSeries von der aktuellen Kerze an abwärts sortiert. Jetzt nutzen wir die Funktion CopyRates um unser Preisinformations Array für das aktuelle Währungspaar und die auf dem Chart aktuelle ausgewählte Zeiteinheit von der Kerze 0, dass ist die aktuelle Kerze ganz rechts, die gerade erstellt wird, für drei Kerzen zu kopieren. Die Daten landen dann hier in unserem PriceArray. Für den Envelopes Indikator brauchen wir zwei Arrays. Eins für das obere und eins für das untere Band. Auch diese Arrays sortieren wir mit ArraySetAsSeries von der aktuellen Kerze an abwärts. Danach nutzen wir die Funktion iEnvelopes um den Expert Advisor zu definieren. iEnvelopes ist in MQL5 enthalten und benötigt als Parameter das aktuelle Währungspaar, die auf dem Chart ausgewählte Zeiteinheit. Diese 14 hier steht für 14 Kerzen. Man sieht das auch, wenn man einmal im Meta Trader auf Einfügen, Indikatoren, Tendenz Envelopes klickt. Hier sind 14 Kerzen als Standardwert vorgelegt, die Abweichung beträgt 0.100. Die Verschiebung ist 0 und berechnet wird das Ganze auf die Close Preise, also auf die Schlusskurse. Genau das sind auch die Paramter, die wir hier verwenden. Mittels CopyBuffer füllen wir jetzt unsere Arrays mit Daten. Und zwar anhand der Envelopes Definition, die wir hier oben getroffen haben. Das obere Array hat das Buffer 0. Das untere das Buffer 1. Wir starten von der jeweils aktuellen Kerze 0 und kopieren uns die Daten für drei Kerzen jeweils in das ober oder in das untere Array. Das ermöglicht uns, den Expert Advisor für die jeweils aktuelle Kerze zu berechnen. Der Wert für das obere Band wird ermittelt, indem man sich die Kerze 0 im jeweiligen Array anschaut. Und mit NormolizeDouble und dieser 6 kürzen wir dieses Ergebnis auf sechs Nachkommastellen ab. Das Gleiche machen wir hier nochmal für das untere Band. Und wenn die letzte Kerze unter dem unteren Band geschlossen wurde, wenn also der Schlusskurs von Kerze 1 aus unserem Preisinformations Array kleiner war als der Wert für das untere Band, dann möchten wir gerne kaufen und weisen den Begriff Kaufen unserer Signal Variable zu. Im anderen Fall, wenn die letzte Kerze über dem oberen Band geschlossen wurde. Wenn also der Schlusskurs von Kerze 1 aus unserem Pre...
    8 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER RANDOM STANDALONE EXPERT ADVISOR
    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. Und wenn unser Signal auf verkaufen steht, und die Funktion PositionsTotal kleiner eins zurückliefert, das bedeutet, wir haben keine geöffneten Positionen, dann nutzen wir trade.Sell um zehn Microlot zu verkaufen. Und kaufen möchten wir, wenn unser Signal auf kaufen steht und wir ebenfalls keine geöffnete Position haben. In dem Fall nutzen wir trade.
    7 min

About MQL5 Tutorial - Automatisch traden mit Metatrader5

From the publisher's feed

Metatrader5 MQL5 Expert Advisor Tutorial