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 – Fortgeschrittener SMA Expert Advisor
    Das, was hier im Hintergrund so fleißig vor sich hin handelt, ist ein Expert Advisor für einen Simple Moving Average. Diese rote Linie hier ist ein einfacher gleitender Durchschnitt. Der wird berechnet auf die letzten 20 Kerzen. Dieses System handelt hier so viele Positionen gleichzeitig, weil es sich um das Forex Trading Framework handelt. Damit ist es möglich, bis zu 200 Positionen pro Währungspaar automatisch zu handeln, und das auf bis zu 22 Währungspaaren gleichzeitig. Und wir wollen uns jetzt einmal anschauen, wie man ein Einstiegsmodul für ein solches System programmieren kann. Natürlich ist es nicht möglich, das ganze System innerhalb von 5 Minuten zu erklären, aber der Einstieg ist relativ einfach vermittelbar. Dazu erstellen wir jetzt einen neuen Expert Advisor, und um das zu tun, klicken Sie einfach hier oben im MetaTrader auf dieses Symbol, oder drücken die F4 Taste, dann bekommen wir hier den Meta-Editor angezeigt. Und hier wählen wir „Datei/ Neu/ Expert Advisor (Vorlage)/ Weiter“. Ich vergebe hier einmal den Namen „FortgeschrittenerSMA“, klicke auf „Weiter/ Weiter/ Fertigstellen“. Alle Inhalte hier können gelöscht werden, denn wir möchten uns eine Funktion mit dem Namen „CheckEntry“ erstellen. In dieser Funktion erstellen wir uns zunächst ein Array für die Preisdaten, das wird den Namen „PriceInfo“ erhalten. Und die Funktion „MqlRates“ bewahrt die Informationen über die Preise und das Volumen und die Spreads auf; das bedeutet, für jede Kerze bekommen wir den Eröffnungspreis, den Höchstpreis, den niedrigsten Preis, und den Schlusskurs, neben ein paar anderen Informationen. Dieses Array sortieren wir jetzt von der aktuellen Kerze an abwärts. Das übernimmt für uns die Funktion „ArraySetAsSeries“, und danach füllen wir das Array mit Preisdaten für 3 Kerzen. Das übernimmt die Funktion „CopyRates“. Die braucht ein paar Parameter, z.B. das aktuelle Währungspaar auf dem Chart, die dort auf dem Chart ausgewählte Handelsperiode, z.B. 1 Minute oder 1 Stunde. Wir kopieren die Daten von der aktuellen Kerze 0 für 3 Kerzen und speichern das Ergebnis in unserem Array „PriceInfo“. Für unser Signal brauchen wir jetzt noch eine String-Variable; die bekommt auch den Namen „Signal“ zugewiesen, allerdings hier noch keinen Wert, denn den wollen wir ja gleich erst noch berechnen. Für den Simple Moving Average brauchen wir ebenfalls noch ein Array, das bekommt den Namen „myMovingAverageArray“ zugewiesen. Die Eigenschaften dafür müssen wir jetzt noch definieren. Und wenn man sich hier diesen gleitenden Durchschnitt einmal anschaut, dann sieht man bereits eine 20 in den runden Klammern. Das ist die Anzahl der Kerzen. Wenn man mit der rechten Maustaste auf die Linie klickt und sich die Eigenschaften von Moving Average anzeigen lässt, dann sehen wir hier 20 Kerzen, einen Verschiebungs-Wert von 0; es handelt sich um einen Simple Moving Average der auf den Schluss-Preis, also auf den „Close Price“, berechnet wird. In MQL5 sieht das dann so aus: wir nutzen die integrierte Funktion „iMA“ für das aktuelle Währungspaar auf dem Chart und die auf dem Chart eingestellte Zeiteinheit für die 20 Kerzen mit dem Verschiebungs-Wert 0, so, wie auch hier angezeigt wurde, und wir nutzen „MODE_SMA“, da es sich um einen Simple Moving Average handelt. Berechnet wird anhand des Close Price, darum nutzen wir im letzten Parameter „PRICE_CLOSE“. Auch dieses Array sortieren wir wieder abwärts von der aktuellen Kerze an und nutzen anschließend „CopyBuffer“, um für unseren definierten Expert Advisor für genau 1 Linie im Buffer 0, von Kerze 0 an für 3 Kerzen -darum diese 3- die Daten für den Simple Moving Average in unserem Array zu speichern. Und wenn der Preis über dem Simple Moving Average liegt, wenn also der Schlusskurs für Kerze 1 in unserem „PriceInfo“-Array größer ist, als der Wert für Kerze 1 in unserem „MovingAverage“-Array – das wäre in diesem Fall hier: die Preise liegen über unserem Moving Average -, dann möchten wir noch prüfen,
    9 min
  • MQL5 Tutorial Deutsch – Fortgeschrittener RSI Expert Advisor
    Das, was hier im Hintergrund in einer wahnsinnigen Geschwindigkeit unzählige Trades handelt, ist das Golden Goose Framework vom 15. Oktober 2017. Und das Einstiegssignal, was wir hier handeln, ist der RSI-Indikator. Wir möchten uns in diesem Video einmal ansehen, wie man so ein Einstiegsmodul programmieren kann. Natürlich kann man in 5 Minuten nicht erklären, wie das komplette Framework funktioniert, aber Sie können sich das als eine Art vorprogrammierte Trading-Verwaltung für die geöffneten Positionen in einem beliebigen Währungspaar vorstellen. Der komplette Handelsvorgang läuft hier sehr schnell ab, und der überwiegende Teil aller Trader hat kein Problem, sich diesen Handelsverlauf hier mal im Backtesting anzusehen. Allerdings kann ich Ihnen garantieren, dass Sie ganz schön ins Schwitzen geraten, wenn Sie auf Ihrem Echtgeldkonto einmal einen Drawdown sehen, der so aussieht, wie hier. Auch wenn Sie vorher EUR 150.000,- plus gemacht haben, sobald es mehrere EUR 1.000,- ins Minus geht, fängt jeder normale Trader an zu schwitzen, und in der Regel schließen die meisten Menschen zum schlechtmöglichsten Zeitpunkt Ihr Konto, und das wäre genau hier. Okay schauen wir uns einmal an, wie wir den Einstieg für dieses System hier programmieren können. Dazu klicken Sie bitte im MetaTrader auf diesen kleinen Button hier, oder drücken die F4-Taste auf Ihrer Tastatur, und dann sollte Ihnen hier der Meta-Editor angezeigt werden. Ich stell das mal auf „Deutsch“ um. Und im MetaTrader klicken Sie bitte auf „Datei/ Neu/ Expert Advisor (Vorlage)/ Weiter“. Ich vergebe hier einmal den Namen „CheckEntry_RSI“, klicke auf „Weiter/ Weiter/ Fertigstellen“. Und in diesem Fall kann der komplette Quelltext hier gelöscht werden, denn wir erstellen uns eine eigene Funktion mit dem Namen „CheckEntry“, öffnen hier mit einer geschweiften Klammer, und im ersten Schritt erstellen wir eine Textvariable für unser Signal. Die Variable ist vom Typ „String“ und bekommt auch den Namen „Signal“. An der Stelle hier weisen wir noch keinen Wert zu, denn den möchten wir später berechnen. Danach erstellen wir uns ein Array für die Preisdaten, das ist vom Typ „Double“, damit es auch Nachkommastellen verarbeiten kann und bekommt den Namen „myPriceArray“. Als nächstes folgt die eigentliche Definition für den RSI. Dazu stellt MQL5 die Funktion iRSI zur Verfügung. Die benötigt als Parameter das aktuelle Währungspaar auf dem Chart, die auf diesem Chart eingestellte Periode, also die Zeiteinheit wie 1 oder 60 Minuten. Hier steht die Anzahl der Kerzen; das sind in diesem Fall 14 Kerzen, denn wenn Sie sich hier mal die Eigenschaften des Indikators RSI ansehen, dann sehen Sie, dass auch der auf der Grundlage von 14 Kerzen berechnet wird. Als Berechnungsgrundlage nutzen wir hier den „Close price“. Wenn man hier einmal mit der Maus auf die blaue Linie geht, rechte Maustaste, „Eigenschaften von Relative Strenght Index“ anklickt, dann sieht man hier: die Periode beträgt 14 Kerzen, und berechnet wird anhand des Schlusskurses, also des „Close price“. Wir verwenden also auch hier den „Close price“. Jetzt müssen wir die Preisdaten in unserem Array noch von der aktuellen Kerze an abwärts sortieren, und das übernimmt die eingebaute Funktion „ArraySetAsSeries“ für unser PriceArray, das wir hier oben definiert haben. Wir benötigen für unseren definierten Expert Advisor für den Puffer 0 und die Kerze 0, absteigend für 3 Kerzen, alle Daten und speichern sie in unserem Array. In MQL5 sieht das so aus: wir nutzen den Befehl „CopyBuffer“ für unsere RSI-Definition, die wir hier oben getroffen haben. Da wir den Puffer 0 brauchen, nehmen wir hier eine 0. Auch unsere aktuelle Kerze hat den Index 0, und da wir 3 Kerzen benötigen, setzen wir in diesem Parameter hier eine 3 ein und speichern dann das Ergebnis im Array mit dem Namen „myRSIArray“. Jetzt berechnen wir den aktuellen RSI-Wert, indem wir auf die aktuelle Kerze 0 in unserem RSIArray zugreifen. Kerze 0 ist immer die Kerze,
    9 min
  • MQL5 Tutorial Deutsch – Mangelhafte Qualität historischer Daten im Backtest
    Ich bin gerade dabei, den Multiplikator zu testen, den ich in die neue Version vom Forex Trading Framework eingebaut habe. In der Regel mache ich einfache Backtests, so wie diesen hier, und man sieht, dass die Verlaufskurve hier entweder flach, oder leicht schräg nach oben verläuft. Wenn wir uns die Resultate hier ansehen, dann schauen die ganz gut aus. Wir haben hier eine historische Datenqualität von 95 %. Getestet habe ich hier den AUD (australischer Dollar) gegen den CAD (kanadischer Dollar) für das Jahr 2016, und damit das Framework auf allen Rechnern gut funktioniert, teste ich immer auch auf anderen Geräten. Nehmen wir hier mal den EUR-USD (Euro-US-Dollar) für den gleichen Zeitraum, Einlage und Hebel sind ebenfalls gleich, und ich starte einen neuen Test. Und diesmal sehe ich, dass hier im Testverlauf solche Zacken auftreten. Man stellt sich die Frage, wie das kommt, und wenn man sich die Ergebnisse genauer anschaut, dann sieht man hier, dass die Qualität der Historie mit 0% angegeben wird. Genau das steht auch ganz frech bei Qualität der Historie im Strategietester-Bericht. Das, was hier gehandelt wird, ist das Demokonto, welches bei der Grundinstallation von MetaTrader 5 dabei war, und offensichtlich zieht sich dieses Problem durch sämtliche Währungspaare. Wir haben hier einen ordentlichen Verlust gemacht, auch hier steht 0 % bei der Qualität der Historie in den Ergebnissen. Es ist auch egal, welche Version vom Framework wir hier handeln, es kommt immer zu diesen gezackten Ausreißern hier. Das hier ist das GBP (britisches Pfund) gegen den USD. Nehmen wir uns den EUR-USD vor, starten den Test, dann sehen wir auch hier ein paar Ausreißer. Wir haben bei 0% Qualität der Historie 6207 Balken gehandelt. Machen wir das mal auf dem Hauptrechner für den EUR-USD, den gleichen Zeitraum, dann dauert bereits der Test viel länger. Wir haben ein komplett anderes Ergebnis, und hier sehen wir, dass wir 368.900 Balken gehandelt haben – also Bars oder Balken entsprechen jeweils einer Kerze -, und falls Sie sich einmal wundern, warum Ihre Ergebnisse massiv von dem abweichen, was Sie eigentlich erwartet haben, dann prüfen Sie doch mal, ob Ihre Historie von minderer Qualität, und die Anzahl der Balken auf dem Chart viel zu gering sind. In diesem Fall macht dieser Unterschied über EUR 4.000 aus, und schlechte Historienqualität kann im Endeffekt dazu führen, dass Sie glauben, Ihr System sei unzureichend, obwohl es tatsächlich an der mangelhaften Qualität der historischen Daten liegt.
    4 min
  • MQL5 Tutorial – Fortgeschrittenes Risiko- und Profitverhältnis
    In diesem Video schauen wir uns mal das Thema „Risiko-Multiplikatoren“ an. Die meisten Leute würden bei diesem Handelsverlauf hier sagen: „Das ist mir zu langweilig. Für ein Konto dieser Größenordnung sind mir die paar Euro hier einfach zu wenig.“ Wir haben hier einen Nettogewinn gemacht von EUR 43,36, gehandelt haben wir das Währungspaar EUR-USD mit dem Forex Trading Framework vom 10.10.2017 und unser Handelszeitraum war das Jahr 2016. Als Kapital haben wir USD 100.000,00 eingesetzt, und der Hebel betrug 1:500. In dieser Version vom Forex Trading Framework gibt es etwas Neues, und zwar einen Multiplikator für das Risiko beim Trading, denn jeder Trader hat eine andere Toleranzgrenze für sein eigenes Risiko, und wahrscheinlich ist auch die Kapitalisierung und der Hebel bei vielen Konten unterschiedlich. Und dieses Ergebnis hier haben wir gerade mit dem Faktor 1 erzielt. Der Multiplikator ist hier im Quelltext definiert. Bei einem Wert von 1 ist das Trading Risiko sehr gering, wohingegen ein Multiplikator von 10 ein sehr hohes Risiko birgt. Alles über 10 ist in meinen Augen Wahnsinn, und ich würde es niemals auf einem Echtgeldkonto handeln. Aber ich weiß mittlerweile, dass jeder Trader seine eigene Toleranzgrenze für Risiken hat, und wir setzen jetzt mal den Multiplikator auf 5 und handeln mit denselben Einstellungen den gleichen Zeitraum. Und wie man sehen kann, geht hier schon einiges mehr, der Endstand hier zeigt uns einen Nettogewinn von 5.213,00 EUR an. Starten wir also einmal mit dem Multiplikator 10 einen neuen Testlauf, dann sehen wir hier, dass unser Expert Advisor ziemlich abgeht. Allerdings gibt es auch Drawdowns wie diesen hier, und Sie können mir glauben, auf einem Echtgeldkonto würde Sie ein solcher Handelsverlauf einige schlaflose Nächte kosten, aber sich das in einem Demokonto anzusehen, ist kein Problem. Unser Test sollte jetzt gleich zu Ende sein. Diese grünen Balken hier unten zeigen übrigens die Anzahl der gehandelten Positionen an. Wir werden das gleich im letzten Test noch mit einem visuellen Durchlauf selber sehen. Und jetzt gleich sollten wir hier zum Ende kommen; das ist jetzt hier geschehen, und auf der Reiterkarte „Ergebnisse“ sehen wir einen Nettogewinn von EUR 99.980,00 Euro. Dieser Multiplikator-Wert ist für mich die Obergrenze, aber zur Veranschaulichung, was möglich ist, setzen wir den Wert hier mal auf 20, starten einen neuen Test inklusive Visualisierung. Ich blende hier mal den Strategietester mit der grafischen Diagramm-Darstellung ein, damit Sie sehen können, was so geht. Eine derart große Anzahl von Positionen könnten Sie niemals selbst handeln, und das ist wohl auch einer der Gründe, warum automatischer Handel immer populärer wird. Sie sehen jetzt hier diesen großen Drawdown, und glauben Sie mir, wenn Sie auf einem Echtgeldkonto sehen müssten, wie Ihr Handelskonto mal eben um EUR 50.000,00 in die Knie geht, dann fühlt sich das ganz anders an, als wenn man das in ein paar Sekunden mit Demo Geld in MetaTrader 5 beobachten kann. Trotzdem sind solche Tests eine sehr gute Möglichkeit, um echte Handelserfahrungen in einem Bruchteil der Zeit zu sammeln, und wenn Sie mit Demo-Konten ebenso sorgsam umgehen, wie mit Echtgeld-Konten, dann lernen Sie auch schnell, wo Ihre Toleranzgrenzen sind. Falls Sie sowas mal selbst handeln möchten: in der aktuellen Framework Version vom Oktober 2017 finden Sie den entsprechenden Multiplikator, um dieses Handelssystem hier an Ihre eigenen Risiko Bedürfnisse anzupassen und sich mal selbst anzuschauen, ob und wie viel Sie im EUR-USD verdient hätten, wenn Sie das Jahr 2016 mit diesem Forex Trading Framework gehandelt hätten.
    7 min
  • MQL5 Tutorial – Einfach Foxexpreise berechnen mit MQL5
    Mit MQL5 lassen sich Forex Preise berechnen um sie zum Beispiel in einer preisbasierenden Forex Trading Strategie für den Einstieg zu nutzen. Die Preisinformationen für jede auf dem Metatrader5 Chart abgebildete Kerze können in Sekundenbruchteilen abgerufen und automatisch verarbeitet werden. Preisbasierende Einstiege sind gerade sehr beliebt…
    3 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER POSITION CLOSE EA
    In diesem Video geht es um das Schließen von allen geöffneten Positionen. Hier ist das beispielsweise passiert. Es handelt sich um einen einfachen Expert Advisor, der immer dann alle Positionen schließt, wenn wir uns hier mit der Equity oberhalb der Balance, also der Bruttobilanz befinden. Das bedeutet, sobald dieser Wert hier über 300016 Euro steigt, werden hier oben die Positionen geschlossen. Wie können wir jetzt einen Expert Advisor in MQL5 erstellen, der in der Lage ist, diese Testpositionen hier alle auf einmal zu schließen? Um das zu tun, klicken Sie bitte im MetaTrader5 hier oben auf diesen kleinen Button oder drücken die F4-Taste. Das ruft dann hier den Meta Editor auf, und hier klicken wir auf Datei, neu, Expert Advisor aus Vorlage, weiter. Ich vergebe hier mal den Namen Simpler Position Close EA, klicke auf weiter, weiter, und fertigstellen. Und jetzt kann alles oberhalb der On-Tick-Funktion hier entfernt werden. Das gilt auch für die zwei Kommentarzeilen. Im ersten Schritt müssen wir die Trading-Bibliothek mit den vereinfachten Funktionen importieren. Das geht mittels Include-Befehl, und wir benötigen die in MQL5 enthaltene Datei Trade.MQH. Sie enthält vereinfachte Handelsfunktionen, und wir erstellen uns jetzt eine Instanz von der Klasse CTrade, die wird den Namen Trade bekommen. In MQL5 geht das so, und in unserer On-Tick-Funktion, die bei jeder Preisänderung aufgerufen wird, holen wir uns zunächst einmal den Ask-Preis. Das geht mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart. Und wir nutzen die Konstante Symbol_Ask, um hier den Ask-Preis zu ermitteln. Und mit NormalizeDouble und _Digits sorgen wir dafür, dass wir je nach Währungspaar entweder drei oder fünf Nachkommastellen berechnen, denn wie Sie sehen, gibt es da durchaus Unterschiede. Im nächsten Schritt ermitteln wir den Bruttokontostand. Der Bruttokontostand ist das, was Sie hier vorne als ersten Wert im Strategietester sehen. Man bezeichnet ihn auch als AccountBalance, und der wird ermittelt über die Funktion AccountInfoDouble in Verbindung mit der Konstante Account_Balance. Neben der Account Balance gibt es auch noch die sogenannte Account Equity. Die Equity ist der Nettokontostand. Die Ermittlung ist ziemlich gleich, aber in diesem Fall nutzen wir die Konstante Account_Equity. Die Equity ist dieser Wert hier, und sie errechnet sich aus dem Bruttoguthaben abzüglich der Kosten für die offenen Positionen. Und damit wir etwas haben, was wir gleichzeitig schließen können, öffnen wir jetzt einige Testpositionen. Immer, wenn die Funktion PositionsTotal einen Rückgabewert kleiner fünf hat, dann nutzen wir die hier oben erstellte Trade-Instanz, um mit Trade.Buy zu kaufen. Ich ändere das hier mal auf zehn Micro Lot, das hier ist die Positionsgröße. Wir kaufen auf dem aktuellen Chart zum Ask-Preis. Wenn Sie einen Doppelklick hier auf ein Währungspaar durchführen, dann sehen Sie, dass der Ask-Preis, diese rote Linie, immer über dem Bid-Preis, der blauen Linie, liegt. Das hier ist das, was wir zahlen, wenn wir etwas kaufen, und das ist das, was wir erhalten, wenn wir etwas verkaufen. Da wir in diesem Fall kaufen, müssen wir zum aktuellen Ask-Preis kaufen. Wir haben hier keinen Stop Loss definiert. Unser Profitziel wird 100 Punkte über dem aktuellen Ask-Preis liegen, und da wir keinen Kommentar verwenden, nutzen wir hier die Konstante null. Und immer, wenn wir im Profit sind, wenn also unser Nettoguthaben das Bruttoguthaben übersteigt, dann möchten wir eine Funktion aufrufen mit dem Namen SchliesseallePositionen. Die gibt es aber noch gar nicht, also schreiben wir die jetzt. Und diese Funktion werden wir jetzt erstellen. Hier ist unsere On-Tick-Funktion zu Ende, also können wir darunter mit einer neuen Funktion beginnen. Die soll alle unsere geöffneten Positionen schließen können. Sie ist vom Rückgabetyp Void. Void bedeutet, wir geben aus dieser Funktion nichts an unsere Hauptfunktion zurück.
    8 min
  • MQL5 Tutorial Deutsch – Simpler Sell Limit EA
    Diesmal geht es um ein so genanntes Sell Limit. Ein Sell Limit ist eine so Pending Order, die in den Markt gelegt wird zu einem Zeitpunkt als der Preis noch nicht an dem Punkt war, an dem diese Order hier ausgelöst werden soll. Starten wir das einmal neu. Das hier ist so ein Sell Limit. Man kann hier unten erkennen, dass es sich um eine Order handelt. Im Gegensatz zu einer Position ist eine Order etwas, was im Markt platziert wird und die Order wird erst ausgelöst, wenn bestimmte Bedingungen vorhanden sind. Deswegen bewegt sich hier zwar der Preis, aber wir haben keinen Gewinn oder Verlust, so lange nicht hier diese grüne Linie überschritten wird. Das ist jetzt gerade geschehen und in dem Moment sehen wir auch, dass wir Gewinn oder Verlust machen. Jetzt warten wir darauf, dass der Preis wieder weit genug fällt um hier unser Take Profit Ziel zu erreichen. Und während wir das tun, wollen wir uns anschauen, wie man mit MQL5 einen Expert Advisor erstellen kann, der in der Lage ist ein solches Sell Limit hier im Markt zu platzieren. Um das zu tun, klicken Sie bitte hier oben auf diesen kleinen Button oder drücken F4 im Metatrader. Daraufhin wird dann hier der Metaeditor aufgerufen und hier klicken wir auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe hier mal den Namen “Simpler Sell Limit EA”, klicke auf Weiter, Weiter, Fertigstellen und jetzt können wir alles entfernen, was sich oberhalb dieser OnTick Funktion hier befindet und auch die beiden Kommentarzeilen können weg. Und damit wir überhaupt irgendetwas traden können, müssen wir zunächst einmal die Trade Library importieren. Eine Library ist eine Bibliothek, Sie können auch eigene Bibliotheken bereitstellen, aber mit dem Include-Befehl hier können Sie die in MQL5 enthaltene Trade.mqh Bibliothek importieren. Die enthält vereinfachte Funktionen für den MQL5 Hedging Mode, unter anderem ist dort auch eine Klasse enthalten mit dem Namen CTrade und von der möchten wir uns jetzt eine Instanz erstellen. Die bekommt den Namen trade. Das geht so und mit dieser Instanz hier möchten wir gleich unser Sell Limit eröffnen. Dazu brauchen wir Preisinformationen, also ermitteln wir im ersten Schritt innerhalb unserer Funktion OnTick den Ask-Preis. Wenn Sie einmal einen Doppelklick auf ein Währungspaar machen, dann sehen Sie, dass es hier diese rote Linie und die blaue Linie gibt. Das hier oben ist der so genannte Ask Preis, den müssen wir bezahlen wenn wir etwas kaufen. Und das blaue Signal hier ist der Bid Preis, den bekommen wir, wenn wir verkaufen. Der Ask Preis wird ermittelt mit der Funktion SymbolInfoDouble für das aktuelle Währungspaar auf dem Chart und da wir den Ask Preis brauchen, verwenden wir hier die Konstante Symbol_Ask mit NormalizeDouble und _Digits ermitteln wir ob unser Währungspaar drei oder fünf Nachkommastellen hinter dem Punkt hat und das Ergebnis wird hier der Variable Ask zugewiesen. Ausserdem brauchen wir hier den Bid-Preis. Der wird vom Prinzip genauso ermittelt, nur dass wir hier den Namen Bid vergeben und die Konstante Symbol_Bid verwenden. Wenn Sie diesen Begriff einmal markieren und die F1-Taste drücken, dann sieht man, dass es hier noch eine ganze Menge anderer Konstanten gibt. Diese hier zum Beispiel würde Ihnen die Swap-Kosten für Long Trades anzeigen. Das brauchen wir aber in diesem Fall nicht. Wir möchten in diesem einfachen Beispiel einfach prüfen, ob keine offenen Orders oder Positionen existieren. Dafür verwenden wir hier diese IF-Abfrage. Und wenn uns die Funktion OrdersTotal Null zurückliefert und auch die Funktion PositionsTotal eine Null zurückliefert, dann wissen wir, dass wir keine offenen Orders oder Positionen haben. Und in dem Fall nutzen wir unsere Trade-Klasse, die wir hier oben als Instanz erstellt haben und eröffnen mit der Funktion SellLimit eine offene Order über 10 Mikrolot, die liegt 200 Punkte über dem derzeitigen Ask-Preis und wird also erst ausgelöst, wenn der Preis weiter steigt. Und das ist etwas,
    8 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLER BUY LIMIT EA
    Diesmal geht es um das Thema Buy Limit, das ist am Anfang vielleicht nicht ganz einfach zu verstehen. Wir sehen das hier unten, dass eine Pending Order platziert ist. Das bedeutet wir haben hier unten eine geplante Position, die aber als Position noch nicht eröffnet wurde und die soll hier oben dieses Gewinnziel erreichen. Es handelt sich hier in diesem Fall, um ein sogenanntes Buy Limit, das ist am Anfang relativ schwer zu verstehen, denn dieses Buy Limit, also dieser Auftrag, liegt unter dem aktuellen Preis. Sobald der Preis hier erreicht wird, wird aus der Order eine Position erstellt und jetzt warten wir darauf, dass der Preis wieder hoch geht und hier oben den Take Profit erreicht. Wann wäre solch ein Buy Limit sinnvoll? Naja, beispielsweise wenn man an Hoch- oder Tiefpunkten darauf wartet, dass nach Markttechnik ein neues Hoch erreicht wird. Man könnte dann solche Buy Limits jetzt hier benutzen, um sie an den lokalen Tiefpunkten an einem aktuellen Trend zu setzen. Ich persönlich bin kein großer Freund davon. Ich sehe auch hier gerade, dass sich der Preis hier häufig über meine Take Profit Grenze darüber hinaus bewegt hat und hätte jetzt keine Lust darauf zu warten, dass der Preis solange fällt, bis meine Order ausgelöst wird, nur um mir dann wieder zu wünschen, dass der Preis nach oben geht, um den Take Profit zu erzielen. Wir wollen uns in diesem Video auf jeden Fall einmal ansehen, wie man solch ein Buy Limit in MQL5 programmieren kann. Um das zu tun, klicken Sie bitte im MetaTrader auf den kleinen Button oder drücken die F4-Taste, das ruft dann den Meta-Editor auf und hier klicken Sie auf Datei, neu, Expert Advisor Vorlage, weiter. Ich vergebe hier jetzt mal den Namen „simpler Buy Limit EA“, klicke auf weiter, weiter, fertigstellen und alles oberhalb der Ontick-Funktion kann entfernt werden. Das gilt auch für die beiden Kommentarzeilen hier. Zunächst müssen wir hier oben die Trading Bibliothek importieren, das geht mit dem Include Befehl und wir benötigen die in MQL5 integrierte Datei „Trade.mqh“. Die stellt die Klasse CTrade bereit und wir erstellen uns von CTrade eine Instanz mit dem Namen Trade in der Ontick-Funktion selbst ermitteln wir zunächst den Ask-Price. Das geht mit der Funktion Symbolinfodouble für das aktuelle Währungspaar auf dem Chart und wir nutzen Symbol_Ask. Mit dieser Konstante lässt sich der Kaufpreis ermitteln. Symbol_Bid ermittelt den Verkaufspreis, den berechnen wir ebenfalls. Diese beiden Zeilen sehen in etwa gleich aus, bis auf dem Unterschied, dass wir einmal Ask und Bid ermitteln, dazu einmal Symbol_Ask und einmal Symbol_Bid nutzen. Beides wird mit Symbolinfodouble ermittelt und die Funktion NormalizeDouble hier vorne führt in Verbindung mit _Digits dazu, dass hier die richtige Anzahl an Nachkomma stellen für Währungspaare mit drei Nachkommastellen oder 5 Nachkommastellen ermittelt wird. Wenn man mal einen Doppelklick auf ein Währungspaar macht, dann kann man sehen, dass der Ask-Preis und der Bid-Preis immer ein ganzes Stück auseinander liegen. Wenn wir long gehen wollen, also kaufen, müssen wir den Ask-Preis bezahlen. Wenn wir allerdings verkaufen wollten, dann würden wir nur den Bid-Preis erhalten. Nachdem wir jetzt Ask- und Bid-Preis jetzt kennen, prüfen wir noch ob die Funktion OrdersTotal und PositionsTotal jeweils den Wert 0 zurückliefern, dass würde dann bedeuten, dass keine Order oder Position existiert. Und wenn das der Fall ist, dann machen wir mit trade.Buylimit eine neue Order auf, die hat in diesem Fall eine Größe von 10 Microlot und wird 200 Punkte unter dem aktuellen Bid Preis platziert als weitere Parameter nutzen wir hier _Symbol für das aktuelle Währungspaar, diese 0 hier bedeutet, dass wir keinen Stop Loss definiert haben. Der Take Profit liegt 200 Punkte über dem aktuellen Ask Preis. Order Time GTC bedeutet in Verbindung mit diesem Parameter, dass wir kein Ablaufdatum für unsere Position festgelegt haben und dieser letzte Parameter hier könnte für einen Kommentar verwe...
    7 min
  • MQL5 TUTORIAL DEUTSCH – SIMPLE DYNAMISCHE POSITIONSGROESSENBERECHNUNG
    In diesem Video geht es um das dynamische Berechnen von Positionsgrößen. In diesem Fall haben wir eine Positionsgröße von 0,09 Lot. Wir machen hier jede Menge Trades auf, das dient nur einem einzigen Zweck, nämlich nachzuweisen, dass die dynamische Positionsgrößenberechnung funktioniert. Jetzt sind wir bei acht Microlot, jetzt werden wieder neun Microlot getradet. Dieser Expert Advisor hier ist in der Lage, basierend auf dem Nettoguthaben, die entsprechende dynamische Positionsgröße zu ermitteln. Wie können wir jetzt einen Expert Advisor erstellen, der in der Lage ist so eine dynamische Positionsgröße zu errechnen? Um das zu tun klicken Sie bitte im Metatrader hier auf diesen kleinen Button oder drücken die F4 Taste. Das ruft dann hier den Metaeditor auf. Und hier klicken Sie bitte auf Datei, Neu, Expert Advisor aus Vorlage, Weiter. Ich vergebe an dieser Stelle den Namen SimpleDynamischeLotGroesse, klicke auf Weiter, Weiter und Fertig stellen. Jetzt kann alles oberhalb der (Ontickfunktion) gelöscht werden. Und wir entfernen auch die beiden Kommentarzeilen. Und zunächst einmal müssen wir mittels dieser include Anweisung die Datei Trade.mqh importieren. Es handelt sich um eine in MQL5 integrierte Bibliothek, die es uns ermöglicht von der Klasse CTrade eine Instanz mit dem Namen trade zu erstellen. Die werden wir später benötigen, um eine Position zu eröffnen. In der On Tick Version holen wir uns zunächst einmal die Equity. Das geht über die Funktion AccountInfoDouble. Und hier nutzen wir Account_Equity. Das ist eine Konstante. Wenn Sie die markieren und F1 Taste drücken, dann sehen Sie noch weitere Konstanten, zum Beispiel Account_Balance. Damit könnten wir das Bruttoguthaben ermitteln. Im nächsten Schritt setzen wir eine dynamische Positionsgröße. Die bekommt den Namen DynamischePositionsGroesse, ist vom Typ double und wir nutzen das Nettoguthaben, also die Equity, die wir hier oben ermittelt haben, dividieren diese durch eine Million und mit NormalizeDouble und dieser 2 möchten wir gewährleisten, dass wir diese zwei Nachkommastellen angezeigt bekommen. Je nachdem wie eine Double Variable gerundet wird, kommt es aber schonmal vor, dass mehr als zwei Nachkommastellen angezeigt werden. Das ist für die Berechnung allerdings nicht relevant. Jetzt brauchen wir noch den Ask-Preis. Den bekommen wir mit der Funktion SymbolInfoDouble. Für das aktuelle Währungspaar auf dem Chart. Hier nutzen wir Symbol_Ask. Auch hier drücke ich wieder F1 und dann sieht man, dass man den Bid-Preis mit Symbol_Bid ermitteln könnte. Der Bid-Preis würde immer dann fällig, wenn wir verkaufen wollen und der Ask-Preis wird benötigt, wenn wir kaufen. In diesem Fall reicht uns der Ask-Preis, weil es nur darum geht, ausreichende Anzahl an Testpositionen zu eröffnen um die dynamische Positionsgröße anhand der Equity hier berechnen zu können. Auch unsere Einstiegskriterien sind in diesem Fall ziemlich brutal. Wenn weniger als 100 Positionen oder Orders existieren, also wenn uns die Funktion PositionsTotal oder OrdersTotal eine Zahl von unter 100 liefert, dann eröffnen wir mit trade.BuyStop eine Position mit unserer DynamischenPositionsGroesse. Der BuyStop wird 100 über dem aktuellen Ask-Preis liegen. Wir haben keinen StopLoss definiert. Der TakeProfit liegt 300 Punkte über dem Ask-Preis. Und die letzten drei Parameter stehen dafür, dass wir die Order sofort ausführen, es kein Ablaufdatum gibt und wir auch keinen Kommentar benötigen. Fehlt noch die Ausgabe auf dem Chart. Das erledigt die Comment Funktion. Die wird den Text DynamischePositionsGroesse und den von uns ermittelten Wert der Positionsgröße angeben. Wenn alles fertig ist, klicken Sie bitte auf Kompilieren oder drücken Sie die F7 Taste. Das sollte ohne Fehler über die Bühne gehen. Und wenn das funktioniert hat, dann drücken Sie bitte hier oder drücken auf F4, um in den MetaTrader zurückzukehren. Und im MetaTrader klicken wir auf Ansicht, Strategietester, oder drücken die Tastenkombination Strg und R.
    7 min

About MQL5 Tutorial - Automatisch traden mit Metatrader5

From the publisher's feed

Metatrader5 MQL5 Expert Advisor Tutorial