MT4 Fragen und Antworten

Punkte und Pips und Ticks: die Unterschiede einfach erklärt

Punkte und Pips und Ticks: ein Teil der Fachsprache im Trading und in der EA-Programmierung und -Verwendung, der Verwirrung stiften kann. Der heutige Artikel soll für Klarheit sorgen.

charts und expert advisors schauen nach kursticks, pips und punkten

Die Unterschiede zwischen Ticks, Pips und Punkten

Korrekt genutzte Fachsprache erlaubt präzise Kommunikation in Sachen Trading und Expert Advisors (EAs). Foto: M. B. M.

Definition von Ticks: Kurs-Tick und Tick-Größe

Ein “Kurs-Tick” ist eine einzelne Kursbewegung. Die Handelsplattform, z.B. MetaTrader 4 (MT4) oder MetaTrader 5 (MT5), nimmt sie wahr. Es blinkt blau oder rot, der Chart verändert sich, gegebenenfalls wird ein Expert Advisor (EA) durchlaufen, der nach Handelssignalen Ausschau hält.

Wenn von Tick-Größe (Tick-Size) gesprochen wird, ist gemeint, welches der kleinstmögliche Kursabstand zwischen zwei Kurs-Ticks ist. Folgende Tick-Größen sind im MT4/5-Trading mit Forex-Symbolen am weitesten verbreitet:

  • 1 Tick = 0,00001 Kursdifferenz bei Währungspaaren wie EURUSD, GBPAUD oder NZDCHF. Die kleinstmögliche Kursveränderung ist z.B. der Unterschied zwischen 1,10858 und 1,10859.

  • 1 Tick = 0,001 Kursdifferenz bei Währungspaaren, die höhere Nominalwerte ausweisen, wie GBPJPY, EURJPY oder USDJPY.

Im CFD-Geschäft bestimmt jeder Broker selbst, welche Tick-Size er verwenden möchte. Dazu gehören Indizes wie der Dax oder der Dow Jones sowie Edelmetalle und Rohstoffe. Beim Dax gibt es Broker, die Kleinstveränderungen von 0,01 zulassen, während andere mit 0,1 oder auch 0,25 arbeiten. Bei Gold stoßen wir in der Regel auf 0,01, seltener auf 0,1 als Tick-Größe.

Definition von Pips im Forex-Handel

Der Begriff “Pip” kommt aus dem Devisenhandel. Er steht als Abkürzung für “Price interest point”, was sinngemäß als “kleinste mögliche Kursbewegung“ übersetzt werden kann.

Bis vor nicht allzu langer Zeit wurden am Devisenmarkt die Hauptwährungen mit vier Nachkommastellen quotiert, z.B. 1 EUR = 1,1025 USD. Der Unterschied zwischen 1,1025 und 1,1026 ist 0,0001, also 1 Pip. Nur wenn eine Währung in Japanischen Yen quotiert wurde, griff man auf nur zwei Nachkommastellen zurück, weil ja vor dem Komma schon drei Stellen statt nur einer zu finden sind: 1 EUR = 112,22 JPY. 1 Pip ist dann 0,01 Kursunterschied, also die Differenz zwischen 112,22 und 112,23.

Zwischenzeitlich quotieren fast alle Broker mit einer Nachkommastelle mehr, also fünf bei allen Majors und Minors. In Yen gelistete Währungspaare haben drei Nachkommastellen. Der Pip blieb davon allerdings unberührt. 1 Pip ist im Sprachgebrauch noch immer die vierte Nachkommastelle, also 0,0001 Kursdifferenz bei EURUSD und Co. bzw. die zweite Nachkommastelle, also 0,01 Kursbewegung bei JPY-Paaren.

EAs müssen auf Forex und CFDs laufen können. Daher übersetzte ich in der Regel die Pip-Definition der Forex-Welt für EAs normalerweise folgendermaßen:

  • Wenn 5- oder 4-stellig quotiert wird, ist 1 Pip = 0,0001.

  • Wenn 3- quotiert wird, ist 1 Pip = 0,01.

  • Wenn 1-, 2- oder 0-stellig quotiert wird, ist 1 Pip = 1.

Damit ist gewährleistet, dass bei Index-CFDs wie beispielsweise DE30/GER30/.DE30, die alle in der Regel 1- oder 2-stellig quotiert werden, ein Indexpunkt einem Pip entspricht. Das halte ich für eine intuitive Lösung.

Definition von Punkten im MT4 und MT5

Während die Pip-Definition stehen geblieben ist, geht der Begriff “Punkt” (nicht zu verwechseln mit “Indexpunkt”), der auf englisch als “Point” bezeichnet wird, mit der Zeit. Er richtet sich nach der Anzahl der Nachkommastellen der Symbol-Quotierung:

  • Wenn 5-stellig quotiert wird, ist 1 Punkt = 0,00001 Kursdifferenz.

  • Wenn 4-stellig quotiert wird, ist 1 Punkt = 0,0001 Kursdifferenz.

  • Wenn 3-stellig quotiert wird, ist 1 Punkt = 0,001 Kursdifferenz.

  • Wenn 2-stellig quotiert wird, ist 1 Punkt = 0,01 Kursdifferenz.

  • Wenn 1-stellig quotiert wird, ist 1 Punkt = 0,1 Kursdifferenz.

  • Wenn 0-stellig quotiert wird, ist 1 Punkt = 1 Kursdifferenz.

1 Indexpunkt beim Dax, die Differenz also zwischen 12.267,30 und 12.268,30 gleicht demnach entweder 10 Punkte (bei Quotierung mit einer Nachkommastelle) oder 100 Punkte (bei Quotierung mit zwei Nachkommastellen).

100 Punkte bedeuten für den meist 5-stellig quotierten EURUSD eine Kursdifferenz von 0,00100, was wiederum 10 Pips entspricht.

Pips und Punkte und Ticks

Fachjargon schreckt oft ab. Mit ein bisschen Eingewöhnung und Achtsamkeit kann dadurch aber sehr präzise und schnell kommuniziert werden. Prägen Sie sich daher die Unterschiede zwischen Pips, Punkten und Ticks gut ein oder nutzen diesen Blog-Artikel als Referenz. Speichern Sie ihn daher als Lesezeichen in Ihrem Browser ab und kehren zu ihm zurück, wann immer Sie sich Ihrer Wortwahl in Schrift oder Sprache sicher sein wollen.

Haben Sie Fragen zu diesen Definitionen? Schreiben Sie sie einfach ins Kommentar unten. Ich werde dann schnellstmöglich antworten.

Beste Tradingerfolge wünscht
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Was tun, wenn Open Range Breakout EA keine Deals eröffnet?

In manchen, seltenen Situationen kann es vorkommen, dass ein Expert Advisor (EA), z.B. unser Open Range Breakout EA mFX-OpenRangeBreakoutBASIS oder mFX-OpenRangeBreakoutDELUXE, keinen Deal auslöst, obwohl er laut Regelwerk offensichtlich einen hätte eröffnen müssen. Hier eine Checkliste für Sie, die an sich auf alle möglichen EAs angewendet werden kann, je nachdem wie diese programmiert sind.

Was tun, wenn ein EA keine Deals auslöst?

Zunächst eine Übersicht, danach gehen wir ins Detail:

  • Aktuellste EA-Version geladen?

  • MetaTrader und EA waren ständig aktiv?

  • AutoTrading Button an?

  • Häkchen gesetzt bei “Life Trading zulassen”?

  • Korrekte MagicNumber ausgewählt?

  • Genügend Kapital verfügbar?

  • Lotstep und Mindestlotsize eingehalten?

  • Broker erlaubt EA-Trades?

  • War Slippage zu hoch?

  • War Spread-Filter aktiv?

  • Waren alle Filterkriterien erfüllt?

Gehen wir nun ins Detail. Ich erkläre Ihnen in den folgenden Abschnitten genau, wie alles gemeint ist und was Sie zur Überprüfung dieses Punkts der Checkliste tun müssen.

Aktuellste EA-Version geladen?

Stellen Sie sicher, dass Sie die jüngste EA-Version in Ihrem MetaTrader geladen haben. Folgende Versionsnummern sind für unsere EAs derzeit aktuell:

Für Leser, die diesen Blog-Artikel nach dem 13.9.2019 lesen: Klicken Sie auf den jeweiligen Link in der obigen Liste und scrollen auf der EA-Seite runter zur Überschrift PREISVARIANTEN. In der dort folgenden Auflistung finden Sie die derzeit gültige Versionsnummer des jeweiligen EA’s.

Falls es sich um einen EA dreht, der Sie nicht von uns haben, wenden Sie sich bitte an den Autor bzw. Verkäufer Ihres EA’s, um die aktuellste Versionsnummer herauszufinden.

MetaTrader und EA waren ständig aktiv?

Der EA muss mindestens zum Signalzeitpunkt, besser aber ständig, auf einem Chart aktiv gewesen sein. Sprich, diese Punkte müssen erfüllt gewesen sein:

  1. Chart war offen

  2. EA war auf Chart aktiv

  3. MT4/MT5 war offen

  4. MT4/MT5 war in das gewünschte Konto eingeloggt

  5. Es bestand eine aktive Internetverbindung

Die einfachste Variante, das der EA ständig aktiv sein kann, ist es, einen Virtual Private Server (VPS) zu mieten und den MetaTrader mit EA dort zu installieren und laufen zu lassen. (Siehe dazu auch mein Blog Welchen Virtual Private Server (VPS) soll ich für meinen EA Dauerlauf verwenden?)

AutoTrading Button an?

Im MetaTrader 4/5 gibt es in der Werkzeugleiste den “AutoTrading” Button. Er muss aktiviert sein, damit EAs Deals eröffnen, managen und schließen dürfen. War dieser die ganze Zeit über aktiviert?

Vereinzelte EAs steuern den AutoTrading-Button direkt an. Außerdem können Konto- oder Profil-Wechsel das AutoTrading von selbst deaktivieren. Oder Sie haben den Button vielleicht aus Versehen gedrückt oder nach einem absichtlichen Ausschalten das Einschalten vergessen.

Im Zweifelsfall prüfen Sie bitte das Experten-Log, welches Sie im MT4/5-Terminal-Fenster im Reiter “Experten” finden. Suchen Sie dort nach den entsprechenden Einträgen: der Text “automated trading is disabled” erscheint, wenn AutoTrading deaktiviert wird, während “automated trading is enabled” festgehalten wird, wenn Sie den AutoTrading-Button aktivieren. Die Uhrzeit dieses Vorgangs ist ebenso zu sehen, so dass Sie nachvollziehen können, ob AutoTrading bei Signal erlaubt war oder nicht.

Häkchen gesetzt bei “Life Trading zulassen”?

Während der AutoTrading-Button für alle EAs, die im MetaTrader geladen sind, gleichwohl gilt, kann jeder EA separat aktiviert und deaktiviert werden. In den EA Eigenschaften (F7 auf der Tastatur) muss im Reiter Allgemein ein Häkchen gesetzt sein, damit der EA automatisch handeln darf.

Im MT4 ist es das mit “Life Trading zulassen” beschriftete Feld. Das Pendant im MT5 heißt “Automatischen Handel aktivieren”. Prüfen Sie also, ob dieses Häkchen auch wirklich gesetzt ist.

Korrekte MagicNumber ausgewählt?

Manche EAs können Steuerungselemente beinhalten, die an die MagicNumber des EA’s gebunden sind. Die MagicNumber ist eine interne Identifikations-Nummer, mit der der EA seine eigenen Deals wiedererkennt. Sie kann in der Regel einen Wert zwischen 1 und 2147483647 erhalten. In vielen EAs können Sie diese selbst einstellen.

In gewissen Situationen können keine Deals in einem bestimmten Symbol und mit einer bestimmten MagicNumber mehr gemacht werden oder nur solche in eine bestimmte Richtung. Zwei Beispiele von unserem EA mFX-OpenRangeBreakout:

  1. Nach einem gehandelten Ausbruch nach oben wird in der gleichen Tradingsession als nächster Deal zwangsläufig der Ausbruch nach unten gehandelt werden. Wenn Sie nun beispielsweise von einer Morgen-Range zu einer Nachmittags-Range im gleichen Symbol wechseln, müssen Sie im EA eine neue, noch nicht verwendete MagicNumber einstellen. Ansonsten kann es sein, dass der erste Nachmittags-Ausbruch nicht gehandelt werden kann, weil der letzte Ausbruch am Vormittag in die gleiche Richtung geschah.

  2. War der letzte Deal ein Gewinndeal im Takeprofit, kann in der EA-Variante mFX-OpenRangeBreakoutDELUXE der Handel für den Rest des Tages automatisch eingestellt werden. Nehmen wir für dieses zweite Beispiel an, Sie hätten diese Funktion der Gewinnsicherung aktiviert. Wenn Sie nun, wie im ersten Beispiel, im gleichen Symbol die Rangezeiten verändern, um am gleichen Handelstag erneut ein Box bauen zu lassen, deren Ausbrüche gehandelt werden sollen, wird der EA keinen Handel mehr ausführen. Denn für die Symbol-MagicNumber-Kombination liegt in der Kontohistorie ein durch TP im Gewinn geschlossener Deal vor, den der EA erkennt und der den EA davon abhält, weitere Deals auszuführen. Denn erst am nächsten Tag darf bei dieser Funktion wieder gehandelt werden. Sie müssen, um das zu umgehen, eine neue, noch nicht verwendete MagicNumber in den EA-Eingaben in den Experten-Eigenschaften (F7) vergeben.

Bei anderen EAs kann es solche Vorkehrungen ebenso geben. Prüfen Sie also, ob sich durch das Verändern der MagicNumber auf einen noch nicht verwendeten Wert das Problem lösen lässt.

Genügend Kapital verfügbar?

Eventuell war nicht genügend Kapital auf dem Konto verfügbar, um den gewünschten Deal auszuführen. Sie erkennen das in der Regel, aber nicht immer, im Experten-Log bzw. Tester-Journal. Dort finden Sie dann solche Einträge wie z.B. die folgenden:

EA erzeugt Fehlermeldung “not enough money” und Fehlercode 134 im Strategietester des MT4

Fehlercode 134 bedeutet eben genau, dass für den Deal, den der EA (im Beispiel der Screenshots oben ist es der EA mFX-OpenRangeBreakoutDELUXE) zu öffnen versucht hat, nicht genügend Kapital verfügbar war.

Die Lösung ist einfach: Lotsize runter, Risiko runter.

Falls Sie im Experten-Log des Live-Trading-Terminals keine Einträge finden, starten Sie einfach einen Strategietester-Lauf mit den exakt gleichen EA-Eingaben und dem derzeitigen Kontoequity als Startkapital. Im Tester-Log werden diese Fehlermeldungen immer ausgegeben.

Lotstep und Mindestlotsize eingehalten?

Stellen Sie sicher, dass Sie bei der Eingabe der Lotsize die richtige Stückelung verwenden haben. Nicht alle EA passen die Lotsize automatisch richtig an. Es gibt zum Beispiel Broker und Symbole, bei denen nur ganze, viertel oder zehntel Lots gehandelt werden können. Wenn Sie dort dann versuchen, hundertstel Lots zu handeln, also z.B. 0.01 oder 0.13 oder 1.56, dann können diese Trades nicht platziert werden.

Falls Sie die Trading-Lotsize manuell im EA einstellen können, beachten Sie einfach Lotstückelung (auch “Lotstep” genannt) sowie Mindest- und Maximallotsizes des Brokers für das zu handelnde Symbol. Falls die Lotsize vom EA automatisch berechnet wird, z.B. im Rahmen eines eventuelle vorhandenen Risiko- und Moneymanagements, und der EA rundet nicht richtig, erhalten Sie in der Regel den Fehlercode 131 “Invalid trade volume” im Experten-oder Tester-Log. Sprechen Sie dann einfach den Autor des EA’s an, um eine Code-Anpassung vorzunehmen.

Unser EA mFX-OpenRangeBreakout berechnet die Lotsizes von selbst, je nachdem wie hoch die gemessene Range ist (automatisch) und wie viel Prozent des Equity Sie pro Deal riskieren wollen (durch Sie in den EA-Eingaben einstellbar). Die jüngste Version v1.10 kann nun auch in den seltenen Fällen eingesetzt werden, bei denen die Lotstückelung von den üblichen 1/0.1/0.01 abweicht, also z.B. bei Lotstep = 0.25.

Broker erlaubt EA-Trades?

Manchmal kann es sein, dass der Broker keine EA-Deals für Ihr Konto oder das gewählte Trading-Symbol nicht erlaubt. Dann erscheint im Experten-Log die Fehlermeldung “Trade is disabled”. Einer der folgenden drei Gründe ist dafür verantwortlich:

  1. Ihr Broker hat das Trading deaktiviert, z.B. wegen eines Feiertags, höherer Gewalt oder Erstellung eines täglichen oder monatlichen Trade-Reports. Die Kursticks, die geladen werden, sind Indikationen, aber keine handelbaren Kurse. Dies kann von wenigen Sekunden bis hin zu mehreren Tagen dauern. Die Lösung dafür ist einfach: Broker kontaktieren und nachfragen, wann Trading wieder erlaubt ist.

  2. Ihr Konto ist nicht fürs EA-Trading aktiviert. Gleiches gilt: Ihr MT4 erhält Kursticks, der EA wird dadurch durchlaufen; aber wenn er traden möchte, ist dies nicht möglich. Auch hier steht eine einfache Lösung zur Verfügung: bei Ihrem Broker direkt nachfragen, wie das Konto aktiviert werden kann.

  3. Das ausgewählte Symbol ist nicht handelbar. Manche Broker bieten für das selbe Asset, z.B. EURUSD, mehrere Symbole an, z.B. EURUSD und EURUSDc. Beide sind in der Marktübersicht abrufbar und scheinen aktiv zu sein. Je nach Kontoart ist aber nur eines der beiden handelbar. Die nicht handelbaren Symbole sind im Marktfenster in der Regel in grauer Schrift dargestellt. Die Lösung liegt auf der Hand: einfach das andere, nicht-graue Symbol wählen.

Für dieses Phänomen gibt es einen eigenen, detaillierten Blog-Artikel: Was tun bei MT4-Fehlermeldung "Trade is disabled"?

War Slippage zu hoch

Wenn der Kursrutsch im Moment des Ausbruchs zu hoch ist, kann der EA mFX-OpenRangeBreakout die Dealplatzierung verhindern. Standardmäßig sind 100 Punkte Slippage bei diesem EA zugelassen, was z.B. 0.00100 Kursdifferenz bei 5-stellig quotierten Währungen oder 1 Indexpunkt bei 2-stellig quotierten Index-CFDs entspricht.

Bei anderen EAs kann dieser Wert anders hinterlegt sein, bei manchen EAs, wie beispielsweise unseren EAs mFX-MAXingPro und mFX-HochTiefAusbruch können Sie die höchstens zugelassene Slippage sogar einstellen.

Wenn der EA so programmiert ist, dass bei Nicht-Einhaltung der Slippagevorgabe das Handelssignale komplett verworfen wird, tradet der EA diesen Ausbruch bzw. dieses Signal nicht.

War Spread-Filter aktiv?

In manchen Marktsituationen weitet sich der Spread aus. Üblicherweise geschieht dies zu Momenten großer Marktbewegungen, was oft mit wichtigen geplanten News-Veröffentlichungen zu tun hat. Berühmt-berüchtigte Beispiele hierfür sind Leitzinsentscheide von Zentralbanken wie der europäischen EZB oder der US Fed sowie der US-Arbeitsmarktbericht “non-farm payrolls”.

Manche EAs filtern Dealsignale heraus, wenn diese durch Kurse verursacht wurden, die bei zu hohem Spread quotiert wurden. Unsere EAs mFX-MAXingPro und mFX-HochTiefAusbruch verfügen über einen solchen Spread-Filter. Sie können dort den maximal erlaubten Spread in den EA Eingaben einstellen.

Unser EA mFX-OpenRangeBreakout hat keinen solchen Spreadfilter, um so viele wie mögliche Box-Ausbrüche handeln zu können.

Wenn der EA so programmiert ist, dass bei Nicht-Einhaltung des Maximal-Spreads das Handelssignale komplett verworfen wird, tradet der EA diesen Ausbruch bzw. dieses Signal nicht.

Waren alle Filterkriterien erfüllt?

Zu guter letzt: vielleicht haben wir Tomaten auf den Augen. Vielleicht monieren wir einen fehlenden Trade, haben aber einfach vergessen, dass eines der Filterkriterien nicht erfüllt war. Im EA mFX-OpenRangeBreakoutDELUXE können dies die folgenden Nebenbedingungen sein:

  1. Rangebegrenzung 1: die Range muss mindestens x Punkte groß sein (einstellbar).

  2. Rangebegrenzung 2: die Range darf maximal x Punkte groß sein (einstellbar).

  3. Rangebegrenzung 3: die Range muss mindestens das x-fache des aktuellen Average-True-Range-Werts groß sein (einstellbar).

  4. Rangebegrenzung 4: die Range darf maximal das x-fache des aktuellen Average-True-Range-Werts groß sein (einstellbar).

  5. Generelle Blockade von Buy- oder Sell-Deals (selektierbar).

  6. Ein- und ausschaltbarer MA-Filter: nur wenn der Kurs über/unter einem voll einstellbaren gleitenden Durchschnitt (auch Moving Average oder MA genannt) liegt, sind Buy-/Sell-Deals zugelassen.

  7. Nach Buy folgt Sell, nach Sell folgt Buy innerhalb ein und desselber Handelssession.

  8. Ist die einstellbare maximale Dealanzahl vielleicht schon erreicht gewesen?

  9. War der letzte Deal im Take-Profit mit Gewinn geschlossen worden und der Filter Tagesende_nachGewinn aktiviert?

  10. Lässt der ein- und ausschaltbare Wochentagsfilter Deals am heutigen Wochentag überhaupt zu?

Bei anderen EAs gibt es andere Filter. Stellen Sie sicher, dass Sie alle Filterkriterien verstehen und nachvollziehen können. Der EA folgt allen Regeln stur wie ein Ochse. Es gibt keinen Interpretationsspielraum. Wenn Sie herausfinden, dass eine der Regeln nicht genau die Szenarien abbildet, in denen Sie eigentlich handeln oder doch lieber still halten wollen, sprechen Sie den Autor Ihres EAs an, um Änderungen oder Individualisierungen vornehmen zu lassen.

Falls es sich um einen EA dreht, den Sie von uns, der mindful FX haben, treten Sie mit uns hier in Kontakt.

Ich hoffe, dass diese Auflistung möglicher Erklärungen Licht ins Dunkel Ihres EA-Verhaltens bringt - für unseren EA mFX-OpenRangeBreakout im Speziellen, aber auch für alle anderen EAs im allgemeinen.

Ihnen nun allerbeste Tradingerfolge
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

M1-Daten für EA-Backtests in MT4 seit 1999 kostenlos

Die Tiefen des MetaTraders 4 (MT4) sind unergründlich. Bis neulich dachte ich, dass wir vom Broker abhängig sind, wie weit zurück wir lückenlose M1-Daten erhalten. Sind wir aber nicht!

Mit diesem Wissen können wir schnell und kostenlos langfristige Backtests von Expert Advisors (EAs) durchführen, die zwar nicht die Qualität von Tickdaten-Tests haben, aber dennoch von vergleichsweise sehr hoher Qualität sind. Das ist wichtig, um erfolgreiche EAs und solche, die Verluste einfahren, auseinander zu halten.

In diesem Blog zeige ich Ihnen, wie Sie dies bewerkstelligen, völlig legal und in nur wenigen Arbeitsschritten.

Wie man kostenlos M1-Daten für Backtests von Expert Advisors seit 1999 in den MT4 lädt

Bevor Sie sich aber an die Arbeit machen und die Daten laden, lesen Sie bitte die folgenden beiden Abschnitte zum Unterschied zwischen M1- und Tickdaten und wie Sie eine adäquate Modellierungsqualität für den Test Ihres EA’s sicherstellen.

Modellierungsqualität von 90%

Der 1-Minuten-Chart (M1) ist der kleinste Timeframe im MT4. Somit können Sie Kursverläufe im 1-Minuten-Rhythmus betrachten und EAs auf deren Funktionalität und Performance darin testen. Wichtig zu wissen: auch wenn Sie einen EA in höheren Timeframes testen, sind M1-Daten von höchster Relevanz.

Denn der MT4-Strategietester wandelt Kurshistorien, die Speicherplatz sparend pro Periode nur mit fünf Datenpunkten festgehalten wurden, in angenommene Kursverläufe um. Aus Eröffnung-, Höchst-, Tiefst- und Schlusskurs sowie der Anzahl der Kursticks der Chart-Kerze bzw. des Chart-Balkens erstellt der MT4 per Algorithmus einen Kurspfad (Mehr dazu können Sie hier in diesem MT4-Dokumentations-Artikel lesen). Diese Daten nennt man OHLCV-Daten. Das Akronym steht für Open, High, Low, Close, Volume.

Wenn M1-Daten vorliegen, entsteht ein realistischerer Kurspfad als wenn nicht. Je weniger M1-Daten vorliegen, desto stärker wird der angenommene Kursverlauf die Häufigkeit der Kursschwünge zwischen Höchst- und Tiefstkurs der vorhandenen Kerzendaten unterschätzen. Insbesondere für Trendfolge- und Ausbruchs-EAs stellt dies ein Problem dar, vor allem im Bereich des Scalpings und wann immer enge Stops oder Trailing Stops verwendet werden. Im Umkehrschluss erhalten Sie eventuell einen zu guten Eindruck von Ihrem EA und setzen ihn vorschnell ein.

Dieser Effekt liegt zwar immer noch vor, auch wenn Sie die vollständige M1-Historie geladen haben, aber er verringert sich stark. Sie werden das am Ende Ihrer Testläufe daran sehen, dass der Testbericht im MT4-Strategietester eine Modellierungsqualität von 90% ausweist. Das ist sehr viel besser als das, was Sie dort ansonsten lesen müssen.

Aber geht es noch besser?

Modellierungsqualität von 90% auf 99% steigern

Wenn Sie die Testqualität noch steigern möchten, müssen Sie auf echte Tickdaten zugreifen. Was sind nun Tickdaten?

Während bei M1-Daten lediglich OHLCV-Punkte festgehalten und dann ein Kursverlauf daraus angenommen wird, sind bei Tickdaten alle einzelnen Ticks mit Kurs und Uhrzeit festgehalten. Statt einem fünfteiligen Datensatz pro Minute sind nun hunderte, in hektischen Marktphasen sogar tausende Datensätze pro Minute gespeichert. Es ist offensichtlich, dass dies ein Vielfaches an Speicherplatz in Anspruch nimmt.

Im Gegenzug können Sie Ihren EA nun mit 99% Modellierungsqualität testen. Das gibt die Performance des EAs für den getesteten, historischen Zeitraum sehr genau wieder. Wie kommen Sie nun an solche Tickdaten?

Diese bekommen Sie zum Beispiel von Tickstory (Partnerlink). Deren Datenbasis aggregiert echte Trading-Daten von mehreren Brokern und bildet daraus eine solidere, objektivere Tick-für-Tick-Betrachtung des echten Kursverlaufs.

Anleitung zum Laden von kostenlosen M1-Daten seit 1999

Hier nun die Anleitung dafür, wie Sie Ihren MT4 mit kostenlosen M1-Daten seit 1999 ausstatten können. Ein wichtiger Hinweis: diese Daten werden nicht von Ihrem Broker, sondern von MetaQuotes Software, den Machern von MetaTrader 4 und MetaTrader 5, zur Verfügung gestellt.

Zunächst öffnen wir unser MT4-Demokonto als ersten Schritt des Datenimports zum EA-Test.

Schritt 1: Starten Sie Ihren MT4 im Demobetrieb.

Wenn Sie mehrere MT4-Instanzen auf Ihrem Rechner installiert haben, nutzen Sie die, auf der Sie die EA-Tests mit den zu ladenden Daten durchführen möchten. (Siehe dazu auch: Wie Sie auf mehrere MT4-Konten beim gleichen Broker gleichzeitig zugreifen)

Am besten, Sie nutzen dazu ein Demokonto, damit ein eventueller Echtgeld-Betrieb keinesfalls beeinträchtigt wird.

Schritt 2: Schließen Sie zunächst alle Charts des Symbols, das Sie testen möchten.

Im 2. Schritt schließen wir alle Charts des Symbols, für das wir M1-Daten seit 1999 importieren wollen, um einen EA langfristig zu testen; hier: USDJPY-Chart geschlossen.

Wir schließen für unser Beispiel alle USDJPY-Charts, da wir unseren EA (z.B. mFX-MAXingPro oder mFX-OpenRangeBreakout) auf USDJPY-M1-Daten testen möchten.

Dieser Schritt stellt sicher, dass die Datenbasis zwischen schon verfügbaren und noch zu ladenden Daten nicht unsauber vermischt wird. Nur damit kann der EA erfolgreich getestet werden.

Schritt 3: Vergrößern Sie in den Chart-Einstellungen die Anzahl der Kerzen.

Folgen Sie für diesen Schritt dem Anleitungsvideo rechts oder dem folgenden Text.

  1. Gehen Sie im Menü auf Extras und dann auf Optionen.

  2. Tragen Sie dann sowohl bei “Max. Kerzen in Historie” als auch bei “Max. Kerzen im Chart” jeweils 10000000 (zehn Millionen) ein. Dann klicken Sie auf OK.

Das ermöglicht, dass die zu ladenden Datenmengen auch wirklich verarbeitet und angezeigt werden können.

Wichtiger Hinweis: wenn Sie mit den Tests fertig sind, stellen Sie diese Parameter am besten wieder auf ihre Ursprungswerte (512000 bzw. 65000) zurück. Dadurch speichern Sie ungemein Rechenkapazität.

Schritt 4: bestehende Daten sicherheitshalber löschen

Um sicherzustellen, dass keinerlei Ungereimtheiten oder Lücken in den Datenreihen entstehen, ist es meiner Erfahrung nach ratsam, die schon vorhandenen Daten zunächst zu löschen. Dadurch können die neu zu ladenden Daten konsistent in den MT4 eingespielt werden.

So löschen Sie die bestehenden Datenreihen (siehe auch Videoanleitung rechts):

  1. Öffnen Sie den Dateiordner des MT4: Menü → Datei → Dateiordner öffnen

  2. Wählen Sie dann zunächst den Unterordner history.

  3. Danach öffnen Sie den Unterordner des Demo-Konto-Servers (in unserem Beispiel JFD-Demo), damit Daten auf dem Echtgeldkonto nicht verloren gehen sicherheitshalber. Achtung: wenn Sie schon einmal Daten gekauft haben und hier abgespeichert haben, machen Sie der Vorsicht halber eine Sicherungskopie davon.

  4. Löschen Sie nun alle hst-Dateien, die sich auf das Symbol beziehen, in dem Sie den EA testen möchten. Die Dateinamen sind aus Symbol (z.B. USDJPY) und Timeframe in Minuten (z.B. 1, 5 oder 240) zusammengesetzt.

Nun können Sie das Explorer-Fenster schließen und zum nächsten Schritt übergehen.

Schritt 5: M1-Daten seit 1999 herunterladen

In diesem Schritt laden Sie die eigentlichen M1-Daten vom MetaQuotes Datenserver herunter. Das geht so (siehe auch Videoanleitung rechts):

  1. Öffnen Sie das Datencenter; entweder über F2 auf Ihrer Tastatur oder über Menüpunkt Extras → Historiendatenbank.

  2. Wählen Sie das Symbol aus, für das Sie die Daten herunterladen wollen. Einfaches Markieren des Symbolnamens in der Liste per einfachem Mausklick reicht, Sie müssen nicht Doppelklicken und dann einen Timeframe auswählen.

  3. Unter der Symbolliste befindet sich ein Button ‘Herunterladen’. Diesen Klicken Sie, bestätigen das sich öffnende Dialogfeld mit OK und warten dann bis der grüne Balken sich vollständig bis ganz rechts bewegt hat. Am besten einen Kaffee holen gehen, weil der Download je nach Internetverbindung mehrere Minuten dauert.

  4. Schließen Sie dann das Historien-Fenster durch Klick auf ‘Schließen’ oder Drücken der Escape-Taste auf Ihrer Tastatur.

Übrigens: während des Ladens erscheint der Button ‘Stop’ rechts, mit dem Sie den Vorgang abbrechen können. Außerdem wird das gesamte Fenster, mit Ausnahme des Stop-Buttons, nicht mehr auswählbar. Wenn der Download fertig ist, verschwindet ‘Stop’ und alle anderen Details können wieder geklickt werden. Falls Sie den grünen Balken wegen Kaffee etc. verpasst haben, erkennen Sie spätestens daran, dass der Ladevorgang beendet ist.

Schritt 6: MT4 einmal neu starten

Abschließend muss der MT4 neu gestartet werden. Also einfach den MT4 schließen und dann erneut hochfahren. Nun stehen die neuen M1-Daten sowohl in den Charts als auch im Strategietester zum ausführlichen Testen von hoffentlich profitablen EAs zur Verfügung.

Es ist zu empfehlen, für nur ein oder zwei Symbole diese Daten herunterzuladen. Denn ansonsten wird sich aufgrund der Speicherplatz-Intensität der MT4 sehr leicht aufhängen. Bevor Sie Ihren EA auf weiteren Symbolen testen möchten, sollten Sie daher die Daten andere Symbole löschen (siehe Schritte 2 bis 6).

Trotz best möglicher “Was-wäre-gewesen”-Simulation des programmierten EA’s bleibt natürlich immer noch das Problem, dass die Ergebnisse der Vergangenheit, seien es Test- oder Realtrading-Ergebnisse, keine Garantie für die Zukunft darstellen. Dennoch ist das ausführliche Testen möglicher Vergangenheits-Szenarien das beste Werkzeug, was uns zur Verfügung steht. Ergänzt mit gutem Risikomanagement im Live-Betrieb steht nun den systematischen Gewinnen mit EAs technisch nichts mehr im Wege.

Beste Tradingerfolge wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Für die mindful FX Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Open Range Breakout EA: Antworten auf häufig gestellte Fragen

Zu unserem fertigen Expert Advisor (EA) für MetaTrader 4 (MT4) mFX-OpenRangeBreakout, mit dem Sie die so genannte Eröffnungs-Range-Ausbruchs- bzw. Open-Range-Breakout-Strategie voll automatisiert handeln können, erreichen mich häufig die folgenden Fragen. Ich hoffe, meine Antworten darauf bringen Licht ins Dunkel!

Wenn ich den EA im Strategiefenster als Backtest laufen lasse, zeichnet er bei vielen Pairs keine Box ein, wenn er im M5 die Tage durchläuft. Beim EUR/JPY aber läuft er sauber durch und zeichnet beim Durchlauf schön sauber die Box und die entsprenden Trades ein. Wo liegt mein Problem?

Der EA zieht sich die Kerzen-Daten aus dem M1-Chart. Laden Sie daher entweder im Strategietester die M1-Daten oder öffnen Sie mindestens einmal einen M1-Chart im zu testenden Symbol.

Ist beim Auslösen einer Order eine bestimmte Anzahl Ticks vorgeben bevor der Trade startet? Habe festgestellt, dass bei schnellen Bewegungen aus der Box es “relativ” lange dauert bis der Trade ausgelöst wird.

Ein einziger Tick reicht aus. Das Problem ist, dass an solchen Chartpunkten viele Trader Deals platzieren wollen, was oftmals den Trade-Server des Brokers stark aus- oder gar überlastet. Daher ist mit Verzögerungen in der Ausführung zu rechnen. Das ist eines der Risiken einer solchen Strategie.

Ist es möglich, dass man beispielsweise die Range von 05:00 bis 08:00 Uhr nimmt, um 07:00 Uhr den Rechner startet samt MT4 und EA und dann das Haus/Rechner auch mal ein paar Stunden verlassen kann? Ich denke es sind einige Berufstätige unter uns, denen das auch gefallen würde.

So ist es programmiert. Die Box wird eingezeichnet, sobald die M1-Kerze der eingegebenen Rangeendzeit vollständig beendet ist. Danach beginnt der Ausbruchshandel komplett automatisch, sofern der MT4 und der EA laufen und eine aktive Verbindung mit dem Tradeserver des Brokers besteht. Allerdings ist es immer ratsam, einen Blick auf die Aktivitäten des EAs zu halten, um in Sondersituationen und Notfällen eingreifen zu können. Ein EA ist immer “nur” ein Werkzeug, das einen ernsthaften Trader besser, schneller und präziser macht, ersetzt aber den Trader selbst grundsätzlich nicht.

Wenn ich die DELUXE-Version des Open Range Breakout-EA’s erwerbe (125 EUR), kann ich den EA dann bei mehreren Brokern verwenden?

Egal welche Variante Sie kaufen, sei es BASIS, DELUXE oder MQL4-KURS: Sie können den EA für Ihre privaten Zwecke bei allen Ihren Brokern gleichermaßen einsetzen. Er ist so programmiert, dass er bei allen Brokern und allen Chart-Symbolen funktional ist.

Nach dem ersten Ausbruch aus der Range, z.B. short, siehe Screenshot, ist der Kurs in die Range zurückgekommen. Hätte dann nicht ein weiterer Shorttrade (siehe Markierung) ausgelöst werden müssen oder wird jetzt erst wieder auf Long gewartet?

Der EA ist so programmiert, dass nach einem Short als nächster Deal immer ein Long kommt. Es wird also im Beispiel oben auf den nächsten Ausbruch nach oben gewartet. Die einzige Ausnahme von dieser Regel ist der letzte Deal einer Box/Handelszeit und der erste Deal der folgenden Box. Denn die strenge Short-Long-Abfolge wird nach Ablauf der Box-Handelszeit (in Ihrem Beispiel mit 08:00 Uhr eingestellt) zurückgesetzt.

Wird es diesen EA auch für MT5 geben?

Ja, wir planen im Laufe des zweiten Halbjahres 2019 mit der Veröffentlichung einer MT5 Version des ORB-EA’s mFX-OpenRangeBreakout.

Ist dieser Expert Advisor auch auf Demokonten verwendbar und im Strategietester testbar, so dass ich die für mich richtigen Einstellungen finden kann?

Ja, diesen EA können Sie auf Demokonten und auch im Strategietester testen.

Über den EA mFX-OpenRangeBreakout können Sie sich hier vollständig informieren und ihn kaufen. Bitte beachten Sie dabei auch explizit die Risiken, die mit der Open-Range-Breakout-Strategie einhergehen.

Herzliche Grüße und beste Trading-Erfolge
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Gültigkeit Ihrer MT4 Versionen überprüfen!

Ab heute, 1. März 2019, stellt MetaQuotes, die Softwareschmiede, die den MetaTrader 4 (MT4) und den MetaTrader 5 (MT5) erstellt hat und weiter entwickelt, laut einer Mitteilung des Brokers Oanda den Support für ältere MT4-Versionen ein.

Das ist für alle Nutzer wichtig und bedeutsam, weil es je nach Broker dazu kommen kann, dass auf älteren Programm-Versionen keine Deals mehr geschlossen oder eröffnet werden können. Auch Expert Advisors (EAs) können dann keinen automatischen Handel mehr betreiben.

Prüfen Sie daher heute, ob

  1. Ihre MT4 Instanz auf Ihrem Desktop mindestens der Build Nummer 1118 und ob

  2. Ihre MT4 Mobile-App mindestens der Build Nummer 1104

entsprechen. Wenn das nicht der Fall ist, dann führen Sie ein Update durch. Treten Sie gegebenenfalls mit Ihrem Broker in Kontakt, um die aktuelle MT4-Version zu erhalten.

Wie prüfe ich die Build Nummer der MT4-Installation auf meinem Desktop?

  1. Öffnen Sie zunächst Ihren MetaTrader 4.

  2. Wählen Sie dann das Menü Hilfe -> Über aus, siehe Screenshot rechts.

  3. Es öffnet sich dann ein Fenster, aus dem die aktuelle Build Nummer hervorgeht, siehe Screenshot unten. Stand 25. Februar 2019 ist Build Nummer 1170 die neueste Version des MT4.

 
 

Wie prüfe ich die Build Nummer der MT4-App auf meinem Mobilgerät?

  1. Öffnen Sie zunächst die MetaTrader 4 App auf Ihrem Mobilgerät, z.B. Handy oder Tablet.

  2. Mit einem Swipe vom linken Bildrand nach rechts öffnen Sie dann das Hauptmenü. Ganz unten finden Sie den Punkt “About” (oder “Über”), den Sie bitte klicken.

  3. Es öffnet sich dann ein Info-Fenster, das Sie über den aktuellen Build (Versionsnummer) informiert - im Screenshot rechts ist es die Nummer 1136.

Mit der aktuellen MT4-Version steht dann IT-seitig Ihrem Trading-Erfolg nichts mehr im Wege. Lesen Sie meinen letztwöchigen Blog Was Trader davon abhält, erfolgreich und profitabel zu sein, um sich psychologisch für den profitablen Forex-, CFD- und Börsen-Handel bestens zu rüsten.

Höhere Gewinne als Verluste wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA Programmierer

Für meine Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Wie man ermittelt, mit wie viel Kapital man einem MT4-EA-Signal folgen sollte

Letzte Woche ging es darum, wie man die Wachstumszahlen eines Trading-Signals richtig deutet. Diese Woche ziehen wir daraus Schlüsse, wie viel Trading-Kapital man sinnvollerweise einsetzt. Denn so verlockend es erscheint, “mal ein profitabel aussehendes Signal mit wenig Kapital auszuprobieren,” muss man immer die Kosten im Blick behalten.

Schritt 1: Kosten ermitteln

Wie viel es kostet, ein Signal zu abonnieren und damit hoffentlich erfolgreiche Expert Advisor (oder je nach Signalgeber und Signal auch manuell eröffnete) Trades zu kopieren, ist bei mql5.com-Signalen für MT4 und MT5 immer deutlich zu sehen, siehe folgender Screenshot bei unserem eigenen 100%-EA-Signal ProvideLiquidityDaily:

Die roten Pfeile zeigen auf die beiden Stellen auf der mql5.com-Signal-Seite, aus denen die Kosten für das Kopieren des Signals hervorgehen.

Die roten Pfeile zeigen auf die beiden Stellen auf der mql5.com-Signal-Seite, aus denen die Kosten für das Kopieren des Signals hervorgehen.

Wenn Sie auf einen der grünen Buttons klicken, gelangen Sie in den Prozess des Abonnierens des Signals, siehe auch mein kürzlicher Blogpost Wie man ein MT4-Signal von mql5.com abonniert und somit erfolgreiche EA Trades automatisch kopiert. Hier in diesem Fall kostet das Abo also 30 USD pro Monat.

Schritt 2: durchschnittliche monatliche Rendite des Signals ausrechnen

Zunächst ermitteln wir den durchschnittlichen, monatlichen Ertrag, den das Signal produziert hat. Dazu addieren wir die Wachstumsraten der letzten zwölf vollständig abgeschlossenen Monate, die uns die Tabelle unter dem Wachstumschart anzeigt, und teilen diese Summe durch zwölf.

Eine Beispiel-Rechnung anhand unseres ProvideLiquidityDaily-Signals (siehe Screenshot rechts, erstellt am 8. Januar 2019 um 22:13 Uhr):

Durchschnitt der letzten zwölf Monatsrenditen =

Summe der letzten zwölf Monatsrenditen / 12 =

( 11,76 - 4,47 + 2,77 + 4,84 + 1,90 - 0,10 + 5,35 + 4,02 + 10,96 + 4,46 + 9,17 + 8,77 ) / 12 =

4,95%

Achtung! Wir teilen nicht die Jahresrendite durch zwölf (oder die Anzahl verfügbarer Monate), sondern addieren wirklich die Monatswerte und teilen diese durch die Anzahl der aufsummierten Werte. Warum das so wichtig ist, liegt daran, dass die Jahresrendite bei profitablen Signalen regelmäßig höher ist als die Summe der Monatsrenditen. Lesen Sie zu diesem Unterschied bitte unbedingt auch meinen Blog von letzter Woche wie man die Wachstumszahlen eines Trading-Signals richtig deutet.

Schritt 3: Sicherheitspuffer einbauen

Mit dem Durchschnitt der letzten zwölf Monatsrenditen haben wir nun einen Erwartungswert für die monatliche Brutto-Rendite des Signals. Um auf Nummer sicher zu gehen, empfehle ich, diesen Wert zu kürzen. Je nachdem, wie viel Risikopuffer Sie einbauen möchten, stutzen Sie den Wert um 10 oder 20% oder halbieren ihn gar.

Wenn wir im obigen Beispiel 50% Sicherheitsmarge einkalkulieren möchten, verbleiben uns pro Monat 4,95% geteilt durch 2, also ca. 2,48%, mit denen wir zu rechnen hoffnen.

Schritt 4: Durch Beachtung der Kostenquote die Mindestanlage berechnen

Jetzt kommt der Preis des Signals ins Spiel. Unser Erwartungswert in Währung ausgedrückt muss mindestens die Kosten des Signal-Abos verdienen, um unterm Strich trotz eines generell profitablen Signals nichts zu verlieren. Kleiner Dreisatz aus der Algebra: wenn die erwartete Rendite also den Kosten des Signal-Abos entricht, welcher Wert ist dann das Kapital, also die 100%, die angelegt werden?

Wenn

Rendite % x Kapital = Ertrag

dann heißt das umgeformt

Kapital = Ertrag / Rendite %

Für unser Beispiel von oben setzten wir die Zahlen ein:

Kapital = 30 USD / 2,48% = 1.210 USD.

Das Ergebnis bedeutet nun folgendes: Wenn Sie weniger als 1.210 USD in dieses Signal einsetzen, sollten Sie 30 USD am Ende eines jeden Monats haben. Damit verdienen Sie zumindest die Kosten des Signals.

Nun stellt sich die Frage, ob es Sinn macht, nur die Kosten verdienen zu wollen. Natürlich nicht, weil Sie ja auch etwas davon haben möchten.

Überlegen Sie sich daher nun im nächsten Schritt, welchen Kosten-Prozentsatz Sie maximal bezahlen möchten. Möchten Sie maximal 10% Ihres erwarteten Ertrags als Kosten mit dem Signalanbieter und Schaffer des erfolgreichen EA’s teilen, müssen Sie 300 USD Ertrag erwirtschaften. Denn dann entsprechen die 30 USD fixe Signal-Abo-Kosten 10% des Signal-Gewinns.

(weitere Beispiele für die Kosten in Prozent und den damit zusammenhängenden Ertrag bei 30 USD Kosten: bei 20% akzeptierter Kostenquote wären 150 USD Ertrag zu erzielen, bei 5% hingegen 600 USD.)

Statt 30 USD Zielertrag müssen Sie nun also 300 USD (oder eben den je nach gewünschter Kostenquote ermittelten Ertrag) in die obige Formel einfügen:

eingesetztes Kapital = 300 USD / 2,48% = 12.097 USD.

Diese ca. 11 TEUR (12.097 USD mit 1,14 USD pro EUR umgerechnet und dann auf die nächsten vollen Tausend EUR aufgerundet) sind nun das Equity, das Sie in Ihrem MT4-Konto dem über mql5.com zu abonnierenden EA-Signals mindestens zuweisen müssen, um die Kostenquote von 10% mit gutem Sicherheitspuffer in der erwarteten Monatsrendite nicht zu überschreiten.

Schritt 5: Rechnen, nachdenken und vorsichtig Entscheiden

Das mag für viele dieser Leser zu viel sein, um “einfach mal so” ein profitabel aussehendes EA-Signal zu kopieren. Das ist durchaus beabsichtigt. Denn seien Sie unheimlich vorsichtig beim Kopieren von Signalen. Mit einem Signal-Abo, das automatisch alle Deals des Signalanbieters kopiert, geben Sie viel Kontrolle über Ihr hart verdientes Geld auf. Legen Sie daher nur Geld an, auf das Sie hundertprozentig verzichten können.

Gier frisst bekannterweise Hirn - machen Sie daher Ihre Hausaufgaben, indem Sie die Berechnungen wie in diesem Kapitel beschrieben akribisch für Ihre eigene Situation durchführen. Schlafen Sie danach eine, am besten aber mehrere Nächte darüber bevor Sie eine solche Investmententscheidung treffen.

Beste Trading- und Anlageerfolge wünscht
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Wie man die Wachstumszahlen eines Trading-Signals auf mql5.com richtig deutet

Wer ein Trading-Signal für sein MT4- oder MT5-Konto abonnieren möchte, um am Handel mit erfolgreichen EAs teilhaben zu können, muss zunächst seine Hausaufgaben machen. Eines der wichtigen Elemente der Signalanalyse ist es, die Wachstums-Zahlen (lies: Renditen) der in Frage kommenden Signale zu verstehen.

Wie sind die z.B. ca. 67% zu deuten, die bei unserem Signal Select7D Stand 22.12.2018, siehe auch Screenshot rechts, zu Buche stehen?

Dazu müssen wir zuallererst die Ertragshistorie aufrufen. Klicken Sie rechts auf den Screenshot, um die Signal-Website mit allen Statistiken mitverfolgen zu können.

Scrollen wir auf dieser Webseite nach unten, erhalten wir das Wachstums-Chart sowie eine Tabelle mit den monatlichen und jährlichen Renditen sowie dem Gesamtergebnis seit Handelsstart:

Profitable EAs im Signal Select7D - Wachstumschart Stand 22.12.2018.PNG

Das Wachstumschart gibt uns einen schnellen Überblick, ob das Signal tendenziell profitabel ist und somit erfolgreiche EAs bzw. erfolgreich durch den Signalanbieter eingesetzte EAs beinhaltet. Während das als erster Schritt wichtig ist, müssen wir uns im zweiten Schritt darum kümmern, die Zahlen im Detail zu verstehen.

Nehmen wir uns also die Tabelle unter dem Wachstumschart vor. Zu allererst fällt folgendes auf. Wenn wir die einzelnen monatlichen Wachstums-Prozente aufsummieren, kommt ein deutlich von der Jahreszahl abweichendes Ergebnis heraus:

0,48 + 1,47 + 1,70 + 3,13 + 1,73 - 0,57 + 9,79 + 13,77 + 9,56 + 12,59 = 53,65% vs. 66,70%!

Wie kann das denn bitteschön sein? Hat sich mql5.com verrechnet?

Hier handelt es sich um einen schönen Fall des Zinseszinseffekts. Wenn wir 100 EUR anlegen und dann 0,48% Zinsen erhalten, haben wir am Ende 100,48 EUR. Diese legen wir nun zu 1,47% an und haben am Ende 101,96 EUR. Diese gesamte Summe investieren wir als nächstes zu 1,70%, was uns 103,69 EUR beschert. Nach diesen drei Anlageperioden haben wir nun 3,69% Rendite aufs Anfangskapital erwirtschaftet, obwohl die Summe der nominalen Zinssätze nur 0,48% + 1,47% + 1,70% = 3,65% ausmachte.

Zu Beginn dieser Anlageserie ist der Unterschied mit 0,04%-Punkten sehr gering. Das liegt daran, dass die Renditen niedrig ausfallen. Rechnen wir das selbe Spiel mit den letzten drei “Zinssätzen” aus, sieht die Sache schon deutlich anders aus.

100 EUR mit 13,77% angelegt beschert uns am Ende 113,77 EUR. 113,77 EUR zu 9,56% investiert, erhöht unser Kapital auf 124,65 EUR. Diese Summe mit 12,59% verzinst bringt uns zum Endergebnis von 140,34 EUR, also 40,34%, während die Summe der drei Zinssätze “nur” 35,92% beträgt: nun beträgt der Unterschied 4,42%-Punkte.

Wenn wir nun die Wiederanlage der Erträge für die gesamte verfügbare Zahlenreihe des obigen Beispiels rechnen, kommt eben 66,70% vs. 53,65% heraus. Der Unterschied zwischen Wiederanlage und Abzug der monatlichen Renditen macht somit stolze 13,05%-Punkte aus!

Kurz zusammengefasst: Je höher die Zinssätze und je häufiger die Zinsauszahlung aufs Kapital mit Wiederanlage dieser Zinsen, desto höher fällt der Zinseszinseffekt aus.

Das zu wissen, ist ein wichtiger Schlüssel, um die Wachstumszahlen eines mql5.com-Signals zu interpätieren. Jeder einzelne in der Tabelle aufgeführte Prozentsatz bezieht sich also auf die Rendite, die vom Anfangskapitalstand der jeweiligen Periode (Monat, Jahr oder Gesamtergebnis) erzielt wurde.

Beste Anlageergebnisse wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Für meine Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Wenn ich ein Signal von der mql5.com-Plattform auf mein Konto kopiere, kann ich dann trotzdem selbst auf meinem Konto weiter handeln?

Dieser Tage blogge ich viel über den Signal-Kopier-Service auf mql5.com. Dort kann man etliche Strategien anderer Trader 1:1 kopieren, um von der Handels-Erfahrung des Signalanbieters zu profitieren. Auf einen dieser Artikel erhielt ich folgende wichtige Frage:

Wenn ich ein Signal von der mql5.com-Plattform auf mein Konto kopieren lasse, kann ich dann manuell [oder per eigenem EA] trotzdem weiter auf meinem Konto handeln?
— Wolf B., mindful FX Kunde

Die Antwort darauf findet sich im Regelwerk zur Nutzung des Signal-Services von mql5.com. Im Abschnitt I. unter den Ziffern 14 und 15 ist erwähnt - in meinen eigenen Worten zusammengefasst - dass

  1. der Signal-Abonnent jederzeit auf seinem Tradingkonto, das die kopierten Trades erhält, selbst frei handeln kann,

  2. pro Tradingkonto ein einziges Signal abonniert werden kann und

  3. mehrere Signalabos durch Nutzung mehrerer Tradingkonten dargestellt werden können.

Auf https://www.mql5.com/de/signals/rules sind alle Regeln des Copy-Trading Services von mql5.com aufgelistet. Hier der Wortlaut dieser zwei zur Beantwortung der obigen Frage relevanten Regelwerks-Ziffern (laut meinem Abruf der Website am 3.1.2019 um ca. 23:30 Uhr):

14. Abonnent ist ein Nutzer, der ein Handelssignal über den Signal-Service abonniert hat. Jeder Nutzer kann mehrere Signale abonnieren. Für jedes Handelskonto kann nur ein Signal abonniert werden.

15. Mit dem Abonnieren stimmt der Abonnent zu, dass er alle involvierten Risiken verstanden hat und die volle Verantwortung für das Kopieren von Trades auf sein eigenes Trading-Konto übernimmt. Zusätzlich stimmt der Abonnent zu, dass er das Recht hat, Handelsoperationen in seinem Handelskonto durchzuführen, das für das Abonnement von Handelssignalen genutzt werden soll.

Beste Trading-Erfolge wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

UNSERE WÖCHENTLICHEN INFOMAILS ZU DEN THEMEN TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG ERHALTEN:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Brexit und die Brokerwahl fürs Forex-Trading

Einige von Ihnen traden bei MT4- und MT5-Brokern, die in Großbritannien angesiedelt sind. Sie mögen sich daher wundern, welche Folgen der Ende März anstehende Austritt des Vereinigten Königreichs aus der Europäischen Union (Brexit) auf die Forex-Broker haben wird. Der offizielle Zeitpunkt ist der 29.3.2019 um 23 Uhr Londoner Zeit, aber die Austritts-Verhandlungen sind noch lange nicht abgeschlossen. Daher ist noch so einiges in der Schwebe.

Nichts genaues weiß man nicht

Meine eigene Meinung ist, dass alles voraussichtlich sehr glimpflich ausgehen und sich mit der Zeit regeln wird. Aber weil hier große Befindlichkeiten und menschliche Wesen politisch am Werk sind, besteht ein gewisses Risiko, dass es zu unerwarteten und derzeit unvorstellbaren Verwerfungen kommt.

Wir wollen aber doch ungehindert weiter traden können, mit oder ohne der brititschen Krone in der EU, oder etwas nicht?

Auf dieser Absicht und mit weitsichtigem Risikomanagement im Sinn basiert auch die kürzliche Bitte um Broker-Empfehlung einer meiner Kunden:

Ich habe mit dem Brexit und somit mit Admiral Markets und der Bank in England so meine Bauchschmerzen. Können Sie mir einen oder mehrere Broker für Forex empfehlen? Ich würde gerne wechseln.
— Bernd Winter, mindful FX Kunde

Danke für Ihre Bitte um Hilfe bei der Brokerwahl. Wir haben seit 2017 eine Partnerschaft mit JFD Brokers. Ich bin von deren Ausführungs-Qualität und Swap-Konditionen sehr beeindruckt und kann JFD daher besten Gewissens weiterempfehlen. Dazu kommen super enge Spreads und niedrige Kommissionen - eine Gewinn bringende Kombination für Sie als Kunden.

Außerdem bietet JFD eine komplette Non-Dealing-Desk-Lösung mit außergewöhnlicher Transparenz an, so dass keine Interessenskonflikte mit den Kunden bestehen. Ich finde das klasse.

Hier geht's zur kostenlosen Demo-Kontoeröffnung mit meinem Partnerlink, so dass Sie JFD testen können und JFD weiß, dass ich Sie dorthin geschickt habe.

Auf Weltfrieden und gute Beziehungen mit Großbritannien auch nach dem Brexit
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Für meine Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Wie man ein MT4-Signal von mql5.com abonniert und somit erfolgreiche EA Trades automatisch kopiert

Auf dem offiziellen MetaTrader Forum mql5.com, welches übrigens alle Interessen für MT4 und MT5 abdeckt, finden sich Signale verschiedener Anbieter. Signale sind ganz einfach die Trades, die ein Trader, in diesem Zusammenhang auch Signalgeber genannt, entweder manuell oder per erfolgreichem EA (Expert Advisor) voll automatisiert in seinem eigenen Konto handelt.

Einige von Ihnen möchten nun gerne wissen, wie genau man nun die gewinnbringenden Signale, also hoffentlich langfristig profitable Portfolios an Forex- oder CFD-Deals, von mql5.com direkt auf Ihr eigenes Konto kopiert. Möglichst voll automatisiert, damit Sie nicht ständig vor dem Rechner sitzen müssen!

Im folgenden Video erkläre ich Ihnen dies am Beispiel unseres eigenen, bislang sehr erfolgreichen und per MT4-EA auf einem Portfolio aus Major- und Minor-Forex-Paaren voll automatisiert handelnden Signals ProvideLiquidityDaily. Mit einem Klick auf den Screenshot rechts gelangen Sie direkt zur Website dieses Signals, um die Videoanleitung eigens nachvollziehen zu können.

Beste Erfolge beim Trading und Kopieren von Signalen und einen schwungvollen Start ins neue Jahr 2019
Cristof Ensslin von mindful FX, Ihr EA Programmierer

PS: eine Übersicht aller unserer hauseigenen Echtgeld-Trading-Signale finden Sie hier unter diesem Link.

UNSERE WÖCHENTLICHEN INFOMAILS ZU DEN THEMEN TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG ERHALTEN:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Günstige Alternative zum Einbau von Teilschließungen in einen EA

Oft soll in Trading-Robots die Mitnahme von Teilgewinnen eingebaut werden, um im Gewinnfall schon vor Erreichen des eigentlichen Gewinnziels das Risiko der Position zu senken. Denn der Kurs könnte ja (und tut es auch oft) kurz vor Erreichen des Gewinnziels drehen und somit alle zwischenzeitlich vorhanden gewesenen, schwebenden Gewinne zunichte machen - ein äußerst schmerzhafter Sachverhalt des Trading-Alltags.

Im September veröffentlichte ich dazu den Blog-Artikel Wie man in MQL4 einen Teilverkauf mit Breakeven für die Restposition programmiert, der dem geneigten Leser aufzeigt, was im Code eines Expert Advisors (EA) für MetaTrader 4 (MT4) programmiert werden muss, um einen solchen Teilverkauf sauber zu automatisieren. Einen einzigen Teilverkauf zu programmieren, ist somit vergleichsweise leicht und schnell getan. Wenn ein EA aber mehrere Teilverkäufe gestaffelt durchführen soll, wird der Programmieraufwand schon ein bisschen aufwändiger.

Mehr Aufwand = höhere Kosten, daher will ich Ihnen hier und heute eine günstige Alternative zum Einbau von mehreren Teilschließungen in einen EA vorstellen.

Mit “günstig” meine ich sogar kostenfrei!

Alles, was Sie dazu tun müssen, ist, den EA auf mehrere Charts des gleichen Symbols gleichzeitig, aber mit leicht unterschiedlichen Einstellungen zu installieren. Die Dealeröffnungsregeln müssen dabei auf alle Fälle identisch eingestellt sein. Wenn Sie beispielsweise zwei Teilschließungen haben möchten, gehen Sie dabei folgendermaßen vor:

  1. Öffnen Sie drei Charts im gleichen Timeframe (z.B. M5) des gleichen Symbols (z.B. EURUSD).

  2. Ziehen Sie den EA auf alle drei Charts, eins nach dem anderen.

  3. Stellen Sie in den EA Einstellungen unbedingt sicher, dass Sie drei unterschiedliche MagicNumbers / IDs vergeben, damit jeder der drei EAs auch wirklich seine eigenen Deals wiedererkennen kann.

  4. Wählen Sie die TP-Abstände der drei EAs nun so aus, dass Sie den angestrebten Teilclose-Levels entsprechen: z.B. 10 Pips Teilclose 1 für den ersten EA, 25 Pips Teilclose 2 für den zweiten und 50 Pips eigentliches Gewinnziel im dritten Trading-Robot.

  5. Teilen Sie in den drei EAs die Handelslotsizes so auf, dass sie den geplanten Teilclose-Prozentsätzen gleichkommen. Bei einfacher Drittelung wäre dann in den drei Experts jeweils die gleiche Lotsize einzugeben. Achtung: die drei Lotsizes aufaddiert muss der ansonsten in einem EA verwendeten Lotsize entsprechen. Wenn Sie also normalerweise mit 0.10 Lots handeln, geben Sie ein EA 1 und 2 z.B. 0.03 Lots und in EA 3 0.04 Lots ein.

Im Ergebnis haben Sie nun das gleiche Setup wie wenn Sie im EA die Teilverkäufe eingebaut haben. Größter Vorteil sind die gesparten Programmierkosten. Zwei wichtig zu erwähndene Nachteile sind, dass

  • Sie nun drei statt nur ein Chart offen und somit mehr Verwaltungsaufwand haben

  • der MT4 bei der Dealeröffnung und im Close-All-Fall (z.B. bei Gegensignal ohne dass vorher eines der TP-Levels erreicht wurde) nun drei statt nur einer Position managen muss. Das dauert länger und kann somit, je nach Marktlage zu erhöhter Slippage führen.

Wenn Sie mit diesen Nachteilen leben können, können Sie mit der hier im Artikel vorgestellten Vorgehensweise schnell und einfach und vor allem ohne Programmieraufwand im Handumdrehen Teilschließungen simulieren.

Beste Tradingerfolge wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Für meine Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Schriftgröße im MetaEditor verändern

Wer im MetaEditor einen Expert Advisor (EA) oder Indikator programmiert, hat sich vielleicht schon mal gewundert, warum die angezeigte Schriftgröße nicht mit der 2-Finger-Technik auf dem Touchpad veränderbar ist, wie z.B. in Microsoft Word oder einem Browser wie Google Chrome. Ich selbst habe daraus lange Zeit die (falsche) Schlussfolgerung gezogen, dass die Schriftanzeige im MetaEditor einfach fix ist, ich sie also nicht verändern kann.

Kürzlich bin ich darauf gestoßen, dass ich aber auf andere (schon fast alt-herkömmliche) Art und Weise die Anzeige vergrößern kann. Insbesondere ist das wertvoll, wenn ich Webinare oder Videokonferenzen halte, in denen ich den EA Code erkläre.

So verändern Sie die Schriftgröße im MetaEditor

Drei einfache Schritt führen Sie zum Ziel.

Schritt 1: öffnen Sie eine Code-Datei (.mq4 oder .mq5) im MetaEditor.

Ich öffne eine mq4-Datei, z.B. die Code-Datei unseres Moving-Average-Crossover EA’s mFX-MAXingPro im MetaEditor.

Schritt 2: wählen Sie im Menü Werkzeuge den Punkt Optionen aus.

Im Menü Werkzeuge des MetaEditors wähle ich nun also den Unterpunkt Optionen aus.

Dadurch öffnet sich ein Fenster zu Einstellung verschiedener Programm-Eigenschaften.

Schritt 3: im Reiter Schriftart legen Sie die gewünschte Schriftgröße fest.

Nun klicke ich auf den Reiter Schriftart. Dort kann ich Schriftart und Größe ändern. Die Schriftart belasse ich hier auf Courier New, während ich bei Größe 16 einstelle. Nun klicke ich auf OK.

Zum Abschluss sehe ich den gleichen EA Code wie vorher, aber in geänderter Schriftgröße. Die größere Anzeige dient mir zum Beispiel zur besseren Leserlichkeit für mich selbst oder aber meinen Zuschauern in YouTube-Videos, Webinaren oder Videokonferenzen mit Bildschirmübertraung.

Ihnen viel Erfolg beim EA Programmieren und Traden
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Für meine Freitags-Mails rund um die Themen TRADING, EXPERT ADVISORS UND EA-PROGRAMMIERUNG anmelden:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Expert Advisor mFX-EquityWatch so einstellen, dass zuerst alle Deals geschlossen werden und dann erst alle anderen EAs deaktiviert werden

Unser Risiko-Management-EA mFX-EquityWatch, ein Expert Advisor für MT4, ist bislang so ausgelegt, dass bei Erreichen des Equity-Stops-Levels zuerst alle anderen EAs in der laufenden MT4-Instanz entweder blockiert oder gelöscht werden. Erst danach aktiviert sich die Alles-Schließen-Routine, die alle offenen Orders schließt oder löscht.

Das verfolgt das Ziel sicherzustellen, dass die anderen Charts, auf denen eventuell andere EAs arbeiten, nicht sofort wieder neue Deals eröffnen können. Es soll ja bei Erreichen des Equity-Stop-Levels erst mal über die Strategie-Fortsetzung nachgedacht werden. Nur so lässt sich bewusst handeln.

Was aber, wenn Sie auf Ihrem MetaTrader einen Deal-Kopierer-EA laufen haben, der diese Dealschließungen automatisch an andere, abhängige Konten weitergeben muss?

Dann hätten Sie mit obiger Vorgehensweise das Problem, dass der Deal-Kopier-EA deaktiviert ist, bevor er die Dealschließungen kommunizieren kann. In den Worten eines Käufers des EA's mFX-EquityWatch ausgedrückt:

Ich brauche [den EA mFX-] EquityWatch, um alle anderen EAs zu schließen, aber es darf erst nach [Schließung aller offenen Deals] erfolgen. Ich verwende folgendes System: Trades, die vom Quellkonto (Demo) zum Zwischenkonto (Demo) und von dort zum Empfängerkonto (echt) übertragen werden. Das bedeutet, dass auf dem intermediate Account sowohl Receiver-EA als auch Sender-EA [des Deal-Kopierers] bei der Arbeit sind. EquityWatch ist auch auf dem Zwischenkonto. Bei Zwischengeschäften werden einige Trades invertiert, manche Trades werden so weiter übertragen wie sie sind. Die EquityWatch-Aufgabe besteht darin, alle Geschäfte zu schließen, wenn das Eigenkapital des Zwischenkontos ein vordefiniertes Niveau erreicht; sehr wichtig ist, dass die Aktien-Überwachung auch Empfänger- und Sender-EA [deaktiviert], aber eben erst, nachdem alle Geschäfte geschlossen wurden. Ansonsten bleiben auf dem (realen) Konto Handelsgeschäfte offen. Darüber hinaus gibt es einen Alert-Absender-EA auf dem Intermediate-Konto, der ebenfalls geschlossen wird, bevor er eine Warnung zum Abschluss von Geschäften senden könnte.
— Vladimir S., Käufer des EA's mFX-EquityWatch
Zwei neue Eingabevariablen für Risikomanagement EA mFX-EquityWatch

Zwei neue Eingabevariablen für Risikomanagement EA mFX-EquityWatch

Um den EA mFX-EquityWatch auf diese Anforderung zuzuschneidern, gibt es ab sofort eine neue Version dieses unseres Risikomanagement-EA's. Durch dieses Update können Sie den mFX-EquityWatch EA so einstellen, dass zuerst alle Deals geschlossen werden und dann erst (z.B. 3 Sekunden später, selbstverständlich einstellbar) alle anderen EAs deaktiviert werden. Rechts im Bild sehen Sie einen Screenshot der neuen Eingabevariablen zur Steuerung des EA’s.

Hier gibt’s die neue Version im Sofortdownload zu kaufen: https://www.mindfulfx.de/equitywatch-ea/

Falls Sie den EA in den letzten 6 (Variante EX4) bzw. 12 Monaten (Variante MQ4) gekauft haben, finden Sie die neue Programm- bzw. Code-Version unter Ihrem persönlichen Downloadlink wieder, den Sie beim Kauf erhalten haben. Geben Sie mir bitte Bescheid, falls Sie beim Finden des Links oder Herunterladen der Dateien Hilfe benötigen.

Beste Trading-Erfolge und solides Risikomanagement wünscht
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

EA Programmieren anfangen mit MQL4 oder MQL5?

Bei meinem letzten JFD-Webinar am 2.10.2018 wurde ich nach einer Empfehlung gefragt, ob man besser auf MT4 oder gleich auf MT5 das Programmieren von Expert Advisors lernen sollte. Hier meine Antwort.

Die Programmiersprache MQL4 für den MetaTrader 4 ist sehr viel einfacher als die Programmiersprache MQL5 für den MetaTrader 5. Damit eignet sie sich schlicht und ergreifend besser für Programmier-Einsteiger.

Die beiden Sprachen sind weiter voneinander entfernt als es deren Namensgebung erwarten lässt. EAs für MT5 zu programmieren kann man dan als zweiten Schritt lernen, wenn man den Einstieg ins Programmieren durch MT4 EAs geschafft hat.

Ich vergleiche das gerne mit Spanisch und Portugiesisch. Beide Sprachen sind eng miteinander verwandt. Spanisch ist aber viel leichter zu lernen, unter anderem weil die Aussprache sehr nah am geschriebenen Wort liegt. Das kommt dem deutschen Muttersprachler sehr entgegen. Portugiesisch hingegen hat zusätzlich ganz andere Ausspracheregeln, so dass dies zu einem höheren Schwierigkeitsgrad für das Erlernen dieser schönen Sprache führt.

Wenn Sie sich die einfachere Sprache zuerst aneignen, erhalten Sie zunächst das Verständnis für Vokabular und Grammatik. Noch wichtiger: Sie generieren in sich selbst die Fähigkeit, eine Sprache zu lernen. Das erleichtert den nächsten Schritt, eine weitere Sprache zu lernen.

Weil das EA-programmieren in MT5 deutlich schwieriger ist, halte ich es für Programmierneulinge für die überlegene Strategie, zunächst mit MQL4 zu beginnen.

“Wird nicht MT5 den MT4 irgendwann komplett ersetzen?” höre ich als Einwurf immer wieder. Das kann gut sein, wird aber sicherlich sich noch über Jahre hinziehen. Die Firma MetaQuotes, die beide Versionen des MetaTraders entwickelt, hat meines Erachtens sogar ein großes Interesse daran, entweder MT4 langfristig beizubehalten oder aber die Masse an MT4-Programmen für MT5 kompatibel zu machen. Warum?

Über deren Website mql5.com, die deren offizielle Plattform für MT4 und MT5 ist, gibt es tausende von EAs, Indikatoren und Signale für MT4 zu kaufen oder mieten. Die Anzahl der für MT5 verfügbaren Programme ist deutlich niedriger. An jedem Kauf, an jeder Miete und an jedem Abonnement verdient MetaQuotes mit ca. 20% mit.

Würden Sie eine solche Einkommensquelle einfach so abschalten? Wahrscheinlich nicht. Daher werden EAs und Co für MT4 in meiner idealen Welt voll kompatibel werden für MT5. Hinweise dafür gibt es schon:

Im Juni 2018 wurde seitens MetaQuotes bekannt gegeben, dass die in MQL4 verfügbaren Funktionen zum Kursdetail-Abruf (z.B. iTime, iOpen, iHigh, iLow, iClose, iVolume etc.) nun auch in MQL5 verwendet werden können. Das erleichtert das “Übersetzen” von MT4 EAs in MT5 EAs ungemein.

Außerdem seien laut Christian Kämmerer von JFD Brokers noch immer sieben mal mehr Lizenzen für MT4 im Umlauf als für MT5, wie er während unseres gemeinsamen Webinars vom 2.10.2018 erwähnte. Das bedeutet, dass der Umstellungsprozess noch eine ganze Weile dauern wird.

Daher ist es meines Erachtens weiterhin sehr sinnvoll, die Programmiersprache MQL4 für MT4 zu lernen und somit die Chance wahrzunehmen, den einfacheren Weg in die Welt des EA-programmierens zu nehmen.

Heute ist Anmeldeschluss für Oktober-Kurs

Heute ist Anmeldeschluss für Oktober-Kurs

Übrigens: heute ist Anmeldeschluss für die nächste Ausgabe für unseren MQL4-Intensivkurs - EA-programmieren lernen. Noch ein paar Plätze sind verfügbar, so dass Schnellentschlossene am 29. und 30. Oktober 2018 direkt von mir das EA-Programmieren für MT4 lernen können. Klicken Sie rechts auf die Grafik oder oben auf den Link, um sich vollständig zu informieren und anzumelden.

Ich würde mich freuen, Sie Ende Oktober in Stuttgart zu sehen.

Herzliche Grüße
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

MQL4-Intensivkurs - EA-programmieren lernen

infomiert bleiben:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

MQL5-Intensivkurs - EA-programmieren lernen

infomiert bleiben:

Datenschutz nach DSGVO. Sie können sich jederzeit aus unserem Email-Verteiler austragen. Powered by ConvertKit

Einen (ersten) EA selbst programmieren in 60 Minuten​

Wie programmiert man einen (ersten) Expert Advisor (EA) in nur 60 Minuten?

EA programmieren ist kein Hexenwerk. Sonst wäre ich ja eine Hexe...

In einem zusammen mit JFD Brokers veranstalteten Live-Webinar am kommenden Dienstag, 2.10., um 16 Uhr deutscher Zeit, zeige ich Ihnen die wichtigsten Elemente für ein flexibles Grundgerüst eines Expert Advisors für MT4 - Schritt für Schritt, verständlich und interaktiv erklärt.

Haben Sie Lust darauf?

Es wird auch eine Fragen-und-Antworten-Session im letzten Drittel des Webinars geben. Dadurch können Sie mir alle möglichen Fragen stellen.

Nach dem Webinar werden Sie sogar die Möglichkeit bekommen, den gemeinsam entwickelten MQL4-Code des Expert Advisors kostenfrei von mir zugesendet zu bekommen.

Alles was Sie zur Teilnahme benötigen, ist ein MT4 Demokonto (z.B. von JFD Brokers: absolut kostenlos und zeitlich unbegrenzt) sowie die kostenlose Anmeldung und Teilnahme am Webinar. Weitere Infos dazu hier:

Melden Sie sich fürs Webinar gleich an, um sich einen der begrenzten Plätze zu sichern und einen exklusiven Einstieg in die spannende Welt des EA-Programmierens zu schaffen:

klicken Sie auf diesen Screenshot, um zur JFD-Anmeldeseite zu gelangen. Dort dann auf ANMELDEN klicken und sich kostenlos und unverbindlich für das Webinar registrieren.

klicken Sie auf diesen Screenshot, um zur JFD-Anmeldeseite zu gelangen. Dort dann auf ANMELDEN klicken und sich kostenlos und unverbindlich für das Webinar registrieren.

Bis Dienstag im Webinar
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

PS: Am Ende des Webinars werde ich ein spezielles Angebot für Sie haben, wenn Sie das EA programmieren vertiefen möchten. Registrieren Sie sich daher gleich hier und jetzt.

Wie man in MQL4 einen Teilverkauf mit Breakeven für die Restposition programmiert

Ein beliebter Ansatz des Positionsmanagements im Forex-Trading ist es, für einen Deal nicht nur ein, sondern zwei Take-Profit-Levels zu definieren. Bei Erreichen des ersten Gewinnziels wird ein Teil der Position, z.B. 50% der ursprünglichen Lotsize, glattgestellt und somit ein Mindestgewinn gesichert. Damit dieser nicht mehr verloren werden kann, wird für die verbleibende, 50-prozentige Restposition der Stop-Loss auf Einstandskurs nachgezogen.

Das kann man selbstverständlich manuell durchführen. Diese Vorgehensweise lässt sich aber ebenso in einem Expert Advisor (EA) für MetaTrader (MT4/MT5) automatisieren. In diesem Wissen erreichte mich neulich die folgende Frage eines Kunden.

Ich interessiere mich für den MAXingPro EA, hätte aber dazu jetzt eine Frage zu einer möglichen Änderung bzw. Anpassung des Codes. Wäre es möglich, eine Funktion in den Code einzubauen, wo man z.B. nach Erreichen von angegeben Pips einen Teilverkauf macht (diesen könnte man in % angeben) und dann die noch offene Position auf Break Even zieht und mit Trailing Stop einfach laufen lässt?
— Philipp L., Trader und mindful FX Kunde

Ich war mit Herrn L. so verblieben, dass diese Funktion in einer der nächsten EA-Versionen eingeführt wird. Heute ist es so weit.

Ich zeige all denjenigen, die selbst am Programmieren interessiert sind, zudem bei dieser Gegelenheit, wie ein solcher Teilverkauf in MQL4 programmiert werden kann. Los geht's, am Beispiel unseres Trendfolge-EA's mFX-MAXingPro!

Wichtiger Hinweis: in den folgenden Code-Beispielen sind die Änderungen bzw. Hinzufügungen in Fettschrift aufgeführt, während gleich bleibender Code in normaler Schrift geschrieben ist.

Schritt 1: EA-Datei unter neuem Namen abspeichern und neue Versionsnummer eintragen

Hier im ersten Schritt öffnen wir zunächst die mq4-Datei des EA's mFX-MAXingPro, der Kreuzungen von zwei Moving Averages (Gleitenden Durchschnitten) als Signalgeber verwendet. Wir speichern sie sofort unter einem neuen Namen (mFX-MAXingPro_v1.50) ab. Damit stellen wir sicher, dass wir jederzeit zur Ausgangs-Version v1.40 zurück kehren können, von der wir wissen, dass sie einwandfrei funktioniert.

Dann ändern wir im Code die Versionsnummer und das Erstellungsdatum ab, um unsere Arbeit im EA später nachvollziehen zu können. Die Code-Zeile lautet nun:

#property version "1.50" // 31.08.2018

Entsprechend unserer neuen Eingaben wird die neue Versionsnummer ab sofort bei Verwendung im MT4-Terminal unter "Allgemein" in den EA-Eigenschaften angezeigt.

Schritt 2: Teilverkaufs-Eingabeariable definieren

Eine Break-Even-Funktionalität haben wir in diesem EA schon. Diese wird gesteuert durch die folgenden Eingabevariablen:

input bool BreakEven_verwenden=true;
input double BreakEven_Trigger=30;
input double BreakEven_Profit=0;

Mit der ersten Variable BreakEven_verwenden kann der EA-Nutzer nachher die Break-Even-Funktionalität ein- und ausschalten. Bei BreakEven_Trigger kann er oder sie in Pips eingeben, bei welchem Dealgewinn der SL auf Einstandskurs nachgezogen werden soll. Mit BreakEven_Profit kann die Traderin schlussendlich eine Vertikalverschiebung in Pips eingeben, so dass der SL-Nachzug auf z.B. 1 Pip im Gewinn vollzogen wird.

Nun fügen wir zu diesem Codeblock die Eingabe-Variable hinzu, mit der wir später bei der EA Verwendung den gleichzeitigen Teilverkauf steuern können. Sinnvoll ist hier, den Prozentsatz der originalen Lotsize eingeben zu können, der teilgeschlossen werden soll:

input double BreakEven_Teilverkauf=50;

Wir werden das so programmieren, dass die Eingabge von 0 den Teilverkauf ausschaltet. Bei Eingabe der voreingestellten 50 würde der EA bei Erreichen der unter BreakEven_Trigger definierten Gewinn-Pips 50% der Ursprungsposition (Beispiel: 50% von 1.00 Lots = 0.50 Lots), also die Hälfte der bestehenden Lotsize teilschließen.

Schritt 3: Teilverkauf in Break-Even-Funktionalität zunächst für Buy-Deals einfügen

Nun bewegen wir uns hinein in die OnTick-Funktion, also die Funktion, die ein EA bei Empfang eines jeden Chartkursticks durchläuft. Dort haben wir eine schon eine Schleife programmiert, die alle bestehenden Deals auf MagicNumber und Chartsymbol filtert. Das macht den EA multi-Deal-fähig, denn somit kann er jederzeit seine eigenen Deals wiedererkennen.

Im bestehenden Code fragen wir für BUY- und SELL-Deals getrennt schon ab, ob einerseits die Break-Even-Funktionalität überhaupt aktiviert ist und ob andererseits der Kurs-Trigger erreicht ist, der zum Nachziehen des Stop-Loss-Kurses auf Einstandskurs +/- Mindestgewinn-Pips eingestellt wurde. Hier fügen wir nun Code ein, der den Teilverkauf effektiv durchführt.

Zuerst führen wir eine Serie von Bedingungs-Abfragen durch. Sie stellt fest, ob eine Teilschließung überhaupt zugelassen ist in diesem Moment. Am Ende, wenn also alle Bedingungen wahr sind, kommt das Closing selbst in den geschweiften Klammern.

Ich kommentiere dabei die jeweilige Zeile zum besseren Verständnis:

if ( BreakEven_Teilverkauf > 0 && BreakEven_Teilverkauf <= 100)
Diese Bedingung fragt ab, ob der Teilverkauf durch den EA-Nutzer gewünscht ist. Die Abfrage ist genau dann wahr, wenn die Eingabe-Variable BreakEven_Teilverkauf größer als null und gleichzeitig maximal 100 ist. Alle anderen Eingaben schalten also die Teilverkauf-Funktionalität effektiv aus.

if ( OrderSelect ( Count, SELECT_BY_POS ) )
In den folgenden Bedingungen benötigen wir Zugriff auf das bestehende Orderkommentar, die Orderlotsize, die Orderticketnummer sowie den aktuell verfügbaren Closingpreis für die Order. Damit der EA auf jeden Fall all diese Orderattribute zur Verfügung hat, selektieren wir die Order nocheinmal. Denn im Fall der OrderModify-Durchführung der Breakeven-Funktionalität kann es sein, dass die bisherige Orderselektion aufgehoben wird. OrderSelect(...) gibt dann wahr zurück, wenn die Order anhand des Schleifen-Zählers Count im Dealpool (SELECT_BY_POS) erfolgreich gefunden werden konnte.

if ( StringFind ( OrderComment(), "from #" ) < 0 )
Nun schauen wir im Orderkommentar OrderComment() nach, ob diese Order schon einmal teilgeschlossen wurde. Alle Teilschließungen werden im MT4 automatisch mit from #1234567 anstelle eines eventuell schon bestehenden Orderkommentars kommentiert, damit man erkennen kann, von welcher ursprünglichen Order her diese Restposition stammt. Das ist hilfreich, weil Restpositionen zwar den gleichen Einstiegskurs und die selbe Einstigeszeit, jedoch eine neue Ticketnummer erhalten. Mit der in MQL4 eingebauten StringFind-Funktion durchsucht der Expert Advisor nun das OrderComment() daraufhin, ob der Text from # schon darin zu finden ist. Wenn nein, gibt uns die StringFind-Funktion einen negativen Wert zurück. Unsere if-Bedingung ist also immer dann wahr, wenn die Order noch nicht teilgeschlossen wurde.

if ( BreakEven_Teilverkauf / 100 * OrderLots() >= MarketInfo ( Symbol(), MODE_MINLOT ) )
Um Fehlermeldungen im EA-Ablauf der eigentlichen Teilverkäufe zu vermeiden, fragen wir hier ab, ob der Prozentsatz BreakEven_Teilverkauf / 100 der bestehenden Orderlotsize OrderLots() mindestens so groß ist wir die Mindestlotsize des Brokers. Letztere wird über die MarketInfo-Funktion für das aktuelle Chartsymbol Symbol() mit dem Bezeichner MODE_MINLOT abgefragt.

Sind nun alle vier Bedingungen wahr, kann der EA in die geschweiften Klammern eintreten und den folgenden Code durchlaufen:
   {
   double clsLots = NormalizeDouble ( BreakEven_Teilverkauf / 100 * OrderLots() ,                                              LotsRundung ) ;

Hier wird die Berechnung der teilschließenden Lotsize der neuen double-Variable clsLots zugewiesen. Der Wert wird dabei durch die NormalizeDouble-Funktion auf die richtige Anzahl an Nachkommastellen gerundet, welche wir in der OnInit-Funktion ermittelt und der Integer-Variable LotsRundung zugewiesen haben.

   while ( IsTradeContextBusy() ) Sleep ( 10 ) ;
Wir lassen den Experten über die Sleep-Funktion ein in Millisekunden (hier: 10) definiertes Nickerchen machen, solange (while...) die Tradingleitung zum Broker belegt ist, was wir über IsTradeContextBusy() erfahren.

   bool oc = OrderClose ( OrderTicket(), clsLots, OrderClosePrice(), UseSlippage,                                    clrCornflowerBlue ) ;
   }

Zu guter letzt wird der Teilverkauf an sich durchgeführt. Die OrderClose-Funktion bestücken wir entsprechend mit den notwendigen Parametern Ordernummer OrderTicket(), Lotanzahl clsLots, aktueller Schließpreis (Bid oder Ask) OrderClosePrice(), maximal akzeptierte Kursabweichung (Slippage) UseSlippage (schon in OnInit-Funktion mit dem gewünschten Maximalwert belegt) sowie die Farbe clrCornflowerBlue des Pfeils, der vom EA bei Teilschließung in den Chart eingezeichnet wird.

Schritt 4: Teilverkauf für SELL-Deals ergänzen

Der Code, um Sell-Deals teilzuclosen ähnelt dem im letzten Schritt geschriebenen Code sehr stark. Wir können ihn daher per Copy & Paste in die Sell-Deal-Abfrage einfügen. Wir müssen dann nur noch eine kleine Änderung ergänzen:

if ( BreakEven_Teilverkauf > 0 && BreakEven_Teilverkauf <= 100 )
if ( OrderSelect ( Count, SELECT_BY_POS ) )
if ( StringFind ( OrderComment(), "from #" ) < 0 )
if ( BreakEven_Teilverkauf / 100 * OrderLots() >= MarketInfo ( Symbol(), MODE_MINLOT ) ) 
   {
   clsLots = NormalizeDouble ( BreakEven_Teilverkauf / 100 * OrderLots() ,                                              LotsRundung ) ;
   while ( IsTradeContextBusy() ) Sleep ( 10 ) ;
   oc = OrderClose ( OrderTicket(), clsLots, OrderClosePrice(), UseSlippage,                                    clrCornflowerBlue ) ;
   }

Vor den Variablen clsLots und oc musste ich lediglich die Variablendefinition entfernen, da wir diese schon bei der Behandlung der Buy-Orders definiert haben und wir uns nicht im strikten Kompiliermodus befinden. Alles andere konnte eins zu eins von der Buy-Seite übernommen werden. (Im strikten Kompiliermodus #property strict hätten wir den kompletten Code inklusive der Variablendefinitionen übernehmen können.)

Hinweis: um Copy&Paste zu vermeiden, hätten wir auch eine eigene Funktion schreiben können, die dann jeweils bei BUY und SELL abgefragt wird. Das bewirkt das exakt gleiche Ergebnis in der letztendlichen EA Verwendung, spart aber Platz im Code.

Schritt 5: testen, ob der EA mit dem neuen MQL4-Code funktioniert

Abschließend testen wir die neue EA-Version des mFX-MAXingPro noch, um sicherzustellen, dass die neuen Code-Module auch wirklich das bewirken, was wir mit ihnen beabsichtigt haben. Dazu rufen wir den Strategietester im MetaTrader 4 auf.

Bei solchen Funktionalitätstests ist das Modell "Kontrollpunkte" ausreichend. Im folgenden Screenshot sehen Sie wunderbar, wie die Teilclosings nun in der Chart-Grafik aussehen, sowohl für Buy als auch für Sell. Wir beobachten in diesen Fällen zwei gestrichelte Linien vom Einstiegsmoment nach rechts. Die erste hin zum Moment des Breakeven-SL-Nachzugs und Teilverkaufs, die zweite hin zum Zeitpunkt des Schließens der Restposition.

Funktioniert also alles wie gewünscht! Insbesondere im Fall des Buy-Teilverkaufs am 9. August um ca. 13 Uhr sieht man, wie positiv sich ein solcher Teilclose auf das Ergebnis auswirken kann. Die zwischenzeitlichen Kursgewinne konnten hier zumindest zur Hälfte (Teilverkauf von 50%) mitgenommen werden, während für die Restposition bei Gegensignal immerhin noch ein kleiner Gewinn verblieb.

Wollen Sie noch mehr MQL4 und EA-programmieren lernen? Vielleicht sogar von Grund auf?

MQL4-Intensivkurs in Stuttgart

Wollen Sie von Grund auf lernen, eigene EA's zu programmieren? Möchten Sie mit mir und Gleichgesinnten gemeinsam ein Grundgerüst für einen MT4 Expert Advisor erstellen, auf dem aufbauend Sie weiter entwickeln und lernen können? 

Dann kommen Sie Ende Oktober zum nächsten MQL4-Intensivkurs - EA-programmieren lernen. Alle Details erfahren Sie hier: https://www.mindfulfx.de/mql4intensivkurs/

Ich freue mich auf Sie!

Allerbeste Programmier- und Tradingerfolge wünscht
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Übergeordnete Trendeinschätzung umsetzen im MAXingPro EA

Neulich erreichte mich eine Frage zu den Einstellungsmöglichkeiten des EA's mFX-MAXingPro. Dieser EA für MT4 handelt Signale aus Kreuzungen von zwei frei einstellbaren Moving Averages. Er kann die Kreuzungen je nach Wunsch des Traders trendfolgend, aber auch konträr umsetzen.

Nun die Frage des EA-Käufers:

Folgendes Problem bzw. folgender Wunsch:
was muss ich machen, wenn ich nur Longsignale handeln will und der Deal beim nächsten Shortsignal geschlossen wird?
Ich gehe bei den ganzen Überlegungen von dem von ihnen programmierten mFX-MAXingPro EA aus. Wenn ich einen stabilen Trend habe, kann ich ja festlegen, ob ich beim 1. Signal long oder short gehen will. Bei der nächsten Richtungsänderung soll der Deal geschlossen werden und dann soll der EA wieder beim nächsten Longsignal aktiv werden.
— ein Käufer des mFX-MAXingPro EA's

Danke für Ihre Frage. Den gewünschten Effekt erzielen Sie, indem Sie folgende Einstellungen im EA vornehmen:

Close_bei_Gegensignal = true
Max_offeneBuys = 1
Max_offeneSells = 0
Max_offeneDeals = 1

Im Screenshot nebenan sehen Sie, wie dies dann in den EA Eingaben aussieht.

So erreichen Sie, dass Sie den EA je nach Ihrer übergeordneten Trendeinschätzung z.B. nur Buy-Signale handeln lassen. Sie sind generell bullisch für den EURUSD, Brent oder DE30? Dann können Sie somit den MA-Kreuzungs-EA mFX-MAXingPro für MT4 entsprechend einsetzen und die Aufwärts-Swings mitnehmen.

Herzliche Grüße und beste Handelserfolge
Cristof Ensslin von mindful FX, Ihr EA Programmierer

PS: alle Infos und den Sofortdownload des Expert Advisors für MetaTrader 4 mFX-MAXingPro finden Sie unter folgendem Link: https://www.mindfulfx.de/maxingpro-ea

Wie programmiert man einen EA, damit Range-Ausbrüche nur auf Schlusskursbasis getradet werden?

In diesem Blogpost zeige ich Ihnen, wie Sie einem Expert Advisor (EA) für MetaTrader 4 (MT4) sagen können, dass er Signale nur auf Schlusskursbasis handeln soll. Das bedeutet, dass zum Eröffnungstick einer jeden Kerze der gerade festgestellte Kerzenschluss der Vorperiode analysiert wird. Das geschieht dann anstelle der ständigen Tick-für-Tick-Beobachtung.

Ein Beispiel anhand unseres mFX-HochTiefAusbruch EA's: dieser vergleicht bislang bei jedem Kurstick, ob der aktuelle Bid-Kurs höher oder tiefer als die Handelsspanne der letzten 24 abgeschlossenen Kerzen liegt, wobei die Periodenanzahl '24' einstellbar ist durch den EA-Nutzer. Wenn ein Kursausbruch aus dieser gleitenden Range auf dieser kontinuierlichen Beobachtungsbasis vorliegt, tradet der EA vollautomatisch in Ausbruchsrichtung.

Was aber, wenn Sie als Trader auf den Schlusskurs warten und damit eine eindeutige Signalbestätigung erhalten möchten, um viele voreilige Fehlsignale herauszufiltern? (Eine sehr ähnliche Schlusskurs-orientierte Ausbruchsstrategie hat übrigens die legendären Turtle Trader aus Chicago berühmt und reich gemacht.)

Um ein Chart-Beispiel für Ausbruch auf Schlusskursbasis und Fehlausbruch auf kontinuierlicher Beobachtungsbasis zu betrachten, sehen Sie sich bitte obiges Video von Minute 0:27 bis Minute 1:24 an. Dann sehen Sie sofort, was ich meine.

Jetzt zeige ich Ihnen die Elemente im MQL4-Code des EA's, die notwendig sind, um dieses Ziel zu erreichen. Geänderte oder neue Codebestandteile werde ich dabei in Fettschrift darstellen.

Schritt 1: EA-Datei unter neuem Namen abspeichern und Versionsnummer und Datum ändern

Zunächst öffnen wir die mq4-Datei des EA's mFX-HochTiefAusbruch, die wir schon haben, und speichern sie unter einem neuen Namen (mFX-HochTiefAusbruch_v1.50) ab. Damit stellen wir sicher, dass wir jederzeit zur Ausgangs-Version v1.40 zurück kehren können, von der wir wissen, dass sie einwandfrei funktioniert.

Nun ändern wir die Versionsnummer und das Erstellungsdatum ab, um unsere Arbeit im EA jederzeit identifizieren können. Die geänderte Code-Zeile lautet:

#property version "1.50" // 14.08.2018

Die neue Versionsnummer in Anführungszeichen wird nun im Reiter "Allgemein" des EA-Eigenschaften-Fensters ohne Anführungszeichen angezeigt.

Schritt 2: Neue Eingabevariable definieren

Wir fügen nun im Code-Block der Eingabevariablen eine neue durch den EA-Nutzer in den EA-Eingaben einstellbare boolesche Variable ein, also ein True/False- bzw. An/Aus-Schalter. Damit können wir später in der Nutzung des fertigen EA's zwischen alter und neuer Version hin und her springen, z.B. um in Tests festzustellen, in welcher Marktphase die ständige Ausbruchsbeobachtung besser ist und wann wir lieber die Schlusskursbetrachtung bevorzugen sollten.

Die neue, eingefügte Code-Zeile lautet:

extern bool AusbruchNurAufSchlusskursBasis = true ;

Schritt 3: Eröffnungstick einer neuen Kerze erkennen

Als nächstes benötigen wir einen Mechanismus, der feststellt, wann eine neue Kerze eröffnet wurde. Denn im Moment der neuen Kerzeneröffnung liegt uns effektiv ein gerade abgeschlossener Kerzenschlusskurs vor, den der EA auf Range-Ausbruch hin untersuchen soll.

Dazu brauchen wir zunächst eine neue Datum-und-Zeit-Variable (Variablentyp "datetime" in MQL4) auf globaler Basis, also außerhalb aller Funktionen definiert. Diese Variable kann somit in der OnInit-Funktion einen ersten Wert erhalten, der dann einfach in der OnTick-Funktion verwertet werden kann.

Wir nennen sie "CurrentTimeStamp", also der Zeitstempel der aktuellen Kerze, und fügen diese Variable im relevanten Code-Block zu schon bestehenden, global verfügbaren datetime-Variablen des EA's hinzu:

datetime SignalTime, Waitzeit, WaitzeitTP, CurrentTimeStamp ;    

Schritt 4: neue Variable mit erstem Wert belegen  

In der OnInit-Funktion, die einmalig bei jedem Start des EA's durchlaufen wird, lassen wir den EA nun die neue Variable CurrentTimeStamp mit dem ersten Wert belegen. Das nennt sich auch "initialisieren".

Innerhalb der geschweiften Klammern der OnInit-Funktion fügen wir folgende Code-Zeile ein:

CurrentTimeStamp = Time[0] ;

Time[0] fragt den Zeitstempel (Time) der aktuellen Kerze ([0]) ab. Time[1] wäre der Zeitstempel der zuletzt abgeschlossenen Kerze, Time[2] der davor etc.

Schritt 5: Tick für Tick den Chart auf neue Kerze hin überprüfen

Nun bewegen wir uns zur OnTick-Funktion. Das ist der Code-Bestandteil, in dem Sie definieren, was der EA bei jedem Empfang eines Kursticks des gewählten Chartsymbols berechnen und ausführen soll.

Hier überprüfen wir nun jeden Tick, ob der Zeitstempel der aktuellen Kerze noch dem in der Variable CurrentTimeStamp festgehaltenen Wert entspricht. Wenn ja, befinden wir uns offensichtlich noch in der selben Kerze wie zum vorherigen Tick. Wenn nein, was in MQL4 durch die Zeichenkombination != geprüft wird, dann ist soeben eine neue Kerze eröffnet worden.

In diesem letzteren Fall müssen wir eine zuvor neu definierte Wahr-Falsch-Variable NewBar (englisch für neuer Balken, neue Kerze) für diesen einen Kurstick auf WAHR (true) stellen sowie die CurrentTimeStamp-Variable auf den jetzt vorhandenen Zeitstempel anpassen.

Das alles geht folgendermaßen:

bool NewBar = false ;
if (Time[0]  != CurrentTimeStamp)
   {
   NewBar = true ;
   CurrentTimeStamp = Time[0] ;
   }

Für den Rest des OnTick-Codes, also alles, was unterhalb dieses eben eingefügten Code-Blocks geschrieben ist, kann nun die Variable NewBar, die nun exakt einen Tick lang auf True steht, als Hinweis auf die Kerzeneröffnungs-Situation verwertet werden.

Schritt 6: Handelssignal auf beide Ausbruchsmethoden anpassen

Den bestehenden Code, der ein Ausbruchs-Handelssignal in der kontinuierlichen Betrachtungsmethode auslöst, müssen wir nun daraufhin anpassen, dass er nur noch dann durchlaufen wird, wenn eben diese Ausbruchsmethode ausgewählt ist. Wir erinnern uns an Schritt 3: das wird dadurch durch den EA-Nutzer gesteuert, dass die Eingabevariable AusbruchNurAufSchlusskursBasis auf False gesetzt wird.

Das fragen wir nun so ab:

if ( !AusbruchNurAufSchlusskursBasis && Bid > LongLevel && HandelsRichtung >= 0 ) LongSignal = true ;
if( !AusbruchNurAufSchlusskursBasis && Bid < ShortLevel && HandelsRichtung <= 0 ) ShortSignal = true ;

Hinweise: LongLevel und ShortLevel sind Variablen, die aus Range-Untergrenze bzw. Range-Obergrenze ermittelt werden, siehe weiter unten. HandelsRichtung ist eine Eingabevariable des EA's, die die erlaubte Handels-Richtung definiert, also Long (1), Short (-1), oder Long&Short (0).

Nun ergänzen wir Code für den Fall, dass AusbruchNurAufSchlusskursBasis auf True eingestellt ist:

if ( AusbruchNurAufSchlusskursBasis && NewBar && Close[1] > LongLevel && HandelsRichtung >= 0 ) LongSignal = true ;
if ( AusbruchNurAufSchlusskursBasis && NewBar && Close[1] < ShortLevel && HandelsRichtung <=0 ) ShortSignal = true ;

Damit fragen wir nun diese Ausbruchslogik nur einmal pro Kerze ab (NewBar, also zum ersten Tick einer Kerze) und vergleichen dann den gerade festgestellten Schlusskurs (Close[1]) mit der Range.

Schritt 7: Range aus den richtigen Kerzen ermitteln

Kommen wir nun zur Range-Ermittlung, also zur Berechnung der Variablen LongLevel und ShortLevel. Diese müssen wir nun noch so anpassen, dass sie bei der Schlusskurs-basierten Verwendung unseres Ausbruch-EA's die Range aus den richtigen Kerzen ermittelt.

Wir befinden uns ja im Moment der Kerzeneröffnung schon in einer neuen Kerze, wollen aber nun die Vorkerze mit den vor dieser Vorkerze liegenden Extremkursen vergleichen. Daher müssen wir die Höchst- und Tiefstkursabfrage um eine Kerze nach links verschieben, den Abfrage-Shift also um eins erhöhen.

Das machen wir so:

int barshift = 0 ;
if ( AusbruchNurAufSchlusskursBasis ) barshift = 1 ;
double RangeUp = High [ iHighest ( NULL, 0, MODE_HIGH, HochTief_Perioden, 1+barshift ) ] ;
double RangeLo = Low [ iLowest ( NULL, 0, MODE_LOW, HochTief_Perioden, 1+barshift ) ] ;
double LongLevel = RangeUp + ( Puffer_Pips * UsePoint ) ;
double ShortLevel = RangeLo - ( Puffer_Pips * UsePoint ) ;

LongLevel und ShortLevel werden in dieser Programmierweise durch einen Zwischenschritt berechnet. Zunächst berechnen wir die Variablen RangeUp und RangeLo, die den höchsten Höchstkurs bzw. den tiefsten Tiefstkurs innerhalb der durch die Eingabevariable HochTief_Perioden in Anzahl Kerzen definierten Rangedauer zugewiesen bekommen. Danach adjustieren wir die Range noch um einen manuellen Puffer, der durch die Eingabevariable Puffer_Pips in Pips vom EA-Nutzer definiert wird. UsePoint enthält dann unsere Pip-Definition: 1 Pip = 0,0001 Kursbewegung, wenn 4- oder 5-stellig quotiert wird; 1 Pip = 0,01 Kursbewegung, wenn 3-stellig quotiert wird; 1 Pip = 1,00 Kursbewegung, wenn 0-, 1- oder 2-stellig quotiert wird.

Diese sieben Schritte sind nun im MQL4-Code für den EA mFX-HochTiefAusbruch eingefügt, wodurch Sie nun ab sofort in Deals einsteigen können, so wie die Turtle Traders aus Chicago es getan hätten - nur mit dem klitzekleinen Unterschied, dass Sie es mit einem EA voll automatisch haben können anstatt manuell die Märkte überwachen zu müssen.

Wollen Sie mehr EA-programmieren lernen? Kommen Sie einfach zu meinem Präsenz-Workshop MQL4-Intensivkurs - EA-programmieren lernen in Stuttgart im Oktober. Klicken Sie hier oder auf das Bild, um sich zu informieren und dann anzumelden.

Herzliche Grüße und beste Wünsche für Ihr eigenes Trading
Ihr Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Multi-Asset-Management mit Gewinnziel-EA

Kürzlich erreichten mich zwei Fragen eines Kunden bezüglich des Risiko- und Gewinnzielmanagements von Deals in mehreren Assets, die gleichzeitig auf einem MetaTrader 4-Konto laufen.

Ich interessiere mich für Ihren EA mFX-GewinnZiel. Dazu eine Frage: kann ich ihn so einstellen, dass alle offenen Positionen bei einem bestimmten Gewinn/Verlust geschlossen werden? Also kann ich z.B. eingeben: alles schließen bei Gewinn von 10 EUR? Oder alles schließen bei Verlust von 10 EUR. Wenn ja, kann ich das auch in Prozent eingeben?
— Kundenfrage vom Juli 2018

Meine Antwort darauf ist kurz und knapp:

Der EA mFX-GewinnZiel schließt alle Positionen bei Gewinn von x EUR oder Prozent, je nachdem, welche Einstellung Sie wählen. Das gleiche gilt für die Verlustseite, separat vom Gewinn einstellbar.

Daraus ergab sich dann eine Folgefrage:

Ich habe Ihren EA gekauft. Wie stelle ich ihn ein, wenn ich offene Positionen verschiedener Underlyings bei einem bestimmten Gesamtgewinn schließen möchte, wie z.B. EUR/USD + DAX + DJ?
— mFX-GewinnZiel EA Käufer

Auch das ist leicht geklärt:

Wenn bei einem Gesamtgewinn aller schwebenden Positionen von z.B. 10 EUR alles realisiert werden soll, nutzen Sie folgende Eingaben:

  1. Klicken Sie unten rechts im Eingabefenster auf "Standard"
  2. Dann geben Sie bei GewinnZiel_inKtoWhrg 10 ein
  3. Filter_ChartSymbol muss auf false eingestellt werden.

Dann wird der EA mFX-GewinnZiel bei 10 EUR Gesamtgewinn aller offenen Positionen in Ihrem MT4-Konto, quer über alle Assets hinweg, alle Deals schließen. Das fertige Eingabefenster sehen Sie rechts.

Viel Erfolg beim Trading wünscht
Ihr Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Drawdown: zwei Definitionen zum Messen von Expert Advisors

Im letzten Blog Drawdown, Profitfaktor, Rendite und Gewinn: Trading-Ergebnisse unter der Lupe hatten wir feststellen können, dass der Drawdown das meist beachtetste Risikomaß ist, um einen Expert Advisor (EA), also einen Trading Robot für MetaTrader 4 (MT4) und 5 (MT5) einschätzen zu können. Der Drawdown misst, allgemein gesprochen, den maximalen Rücklauf des Kontokapitals, auch Equity genannt. Man kann ihn entweder in Kontowährung oder als Prozentsatz ausdrücken.

Parallel zu diesen beiden Möglichkeiten der Ausdrucksweise gibt es – und das ist meines Erachtens viel wichtiger zu wissen – zwei unterschiedliche Definitionen für den Drawdown eines Kontos oder einer Handelsstrategie. Sie haben beide ihren Stellenwert. Wir als Trader müssen wissen, wann welche Definition verwendet wird:

  1. Drawdown = der maximale Verlust von Equity vom Equity-Höchststand aus gemessen.

  2. Drawdown = der maximale Verlust von Equity vom jeweils aktuellen Kontostand aus gemessen.

Nehmen wir nun beide Ermittlungsvarianten unter die Lupe. Welche Messlatte ist für welchen Zweck geeignet?

Drawdown = der maximale Verlust von Equity vom Equity-Höchststand

Mein bisheriges Verständnis für die Messung des Risikos einer Strategie anhand des maximalen Rücklaufs war dieses: um einen Drawdown zu ermitteln, muss ein EA zu jedem Zeitpunkt oder Kurstick folgende Messung anstellen.

Startkapital
+Summe der realisierten Gewinne
- Summe der realisierten Verluste
+Summe der schwebenden Gewinne
- Summe der schwebenden Verluste
= aktuelles Equity der Strategie bzw. des Kontos.

Aus dieser – sagen wir sekündlichen – Messung merkt sich ein EA den höchsten gemessenen Stand. Sobald in einem Tick ein niedrigeres Equity ermittelt wird, ist ein Drawdown vorhanden. Diesen können wir entweder in Prozent vom Höchststand oder absolut in Kontowährung, also z.B. EUR, ausdrücken. Ein Beispiel:

  1. Wir starten mit 10.000 EUR Kapital auf dem Konto und eröffnen ein EURUSD Buy Geschäft – bzw. ein Expert Advisor tut dies für uns aufgrund eines Handelssignals.

  2. EURUSD tickt nach oben, zum Kontostand von 10.000 EUR kommen nun sagen wir 10 EUR schwebende Gewinne. Unser Equity steht also bei 10.010 EUR. Dies ist der bisherige Höchststand, also merken wir uns diesen Stand als Hochwassermarke.

  3. EURUSD tickt wieder nach unten auf unseren ursprünglichen Einstiegskurs. Der EURUSD Buy Deal ist also 0 EUR Wert. Zuzüglich der 10.000 EUR auf dem Konto beträgt unser Equity also wieder 10.000 EUR.

  4. 10 EUR Drawdown sind seit dem Equity-Maximum entstanden, was ca. 0,0999% von eben dieser Spitze entspricht.

Dieser Ansatz der Drawdown-Messung wird übrigens im Strategietester Ihres MetaTraders verwendet. Wenn Sie im Testbericht nach dem Maß "Drawdown" oder, in deutsch-sprachigen Programmversionen, "Rücklauf" Ausschau halten, werden die Zahlen, die Sie dort finden, nach dieser Messmethode ermittelt worden sein. Ein Beispiel dazu sehen Sie für einen low-risk Backtest unseres MT4-EA's mFX-MAXingPro im folgenden Screenshot.

Der Rücklauf vom maximal erreichten Equitystand ist sehr effektiv, um zum Beispiel einen Trailing Stop auf Kontoebene zu praktizieren. Dabei ziehen Sie – wie bei einem Trailing Stop auf Dealebene – immer dann die Reißleine, wenn der Rücklauf vom besten erreichten Equitystand einen festgelegten Wert erreicht oder überschreitet. Dieser Wert kann, wie schon erwähnt, in Prozent vom Kontokapital-Höchststand oder aber als absoluter Wert in Kontowährung ausgedrückt werden.

Damit stellen Sie jederzeit fest, ob Ihr EA-Setup in der aktuellen Marktphase noch funktioniert oder nicht. Diese Logik habe ich übrigens im Überwachungs-EA mFX-EquityWatch automatisiert und für Sie preisgünstig zum Sofort-Download zur Verfügung gestellt: https://www.mindfulfx.de/equitywatch-ea/.

Der Nachteil dieser Methode zur Messung des Drawdowns ist, dass Kapitaleinzahlungen oder -Abbuchungen keine Berücksichtigung finden, zumindest nicht voll automatisch. Warum?

Dazu setzen wir unser Beispiel von oben fort:

  1. Wir entnehmen dem Konto 1.000 EUR, aus welchem Grund auch immer. Der Kontostand steht nun bei 9.000 EUR.
  2. Sind nun 10 EUR oder 1.010 EUR Drawdown vorhanden? Falls 10 EUR, weil um Kapitalbewegungen bereinigt, sind dies nun 0,0999% von 10.010 EUR oder 0,1111% von 9.000 EUR? Oder sollten wir nach Ein- oder Auszahlungen doch lieber alles zurücksetzen und von Neuem starten, also den gemessenen Equity-Höchststand dem aktuellen Equity gleichsetzen?

Sie sehen schnell, dass hier viele Möglichkeiten und Freiheitsgrade gegeben sind. Dabei ist keine der Vorgehensweisen nach Kapitalbewegungen per se gut oder schlecht. Sie muss nur festgelegt und konsistent sein und zu Ihren Rahmenbedingungen passen.

Wenn Sie regelmäßig Ein- oder Auszahlungen tätigen, ist der zweite Ansatz zur Drawdown-Berechnung in Betracht zu ziehen.

Drawdown = der maximale Verlust von Equity vom jeweils aktuellen Kontostand aus gemessen.

Vor knapp einem Jahr bin ich auf diese zweite Art der Messung eines Drawdowns gestoßen: Drawdown = aktuelles Equity – aktueller Kontostand. Wenn das Ergebnis dieser Formel positiv ist, wird der Wert auf 0 gesetzt. Denn das Equity ist dann größer als der Kontostand, was so viel bedeutet, dass die laufenden Deals in Summe im Gewinn liegen. Also ist kein Drawdown vorhanden.

Merke: Diese Art und Weise der Rücklauf-Ermittlung blendet die realisierten Gewinne und Verluste komplett aus. Sie bewertet immer nur die laufenden Geschäfte, also die Summe der unrealisierten Gewinne und Verluste, im Verhältnis zum Kontostand.

Wieder ein Beispiel, um die Systematik klarer darzustellen:

  1. Wir starten mit 10.000 EUR Kapital auf dem Konto und eröffnen ein EURUSD Buy Geschäft – bzw. ein Expert Advisor tut dies für uns aufgrund eines Handelssignals.

  2. EURUSD tickt nach oben, zum Kontostand von 10.000 EUR kommen nun sagen wir 10 EUR schwebende Gewinne. Unser Equity steht also bei 10.010 EUR. Nach obiger Formel berechnen wir Drawdown = 10.010 EUR – 10.000 EUR = 10 EUR. Da das Ergebnis positiv ist, setzen wir den Wert auf 0 EUR. Der aktuelle Rücklauf beträgt also 0 EUR.

  3. EURUSD tickt wieder nach unten auf unseren ursprünglichen Einstiegskurs. Der EURUSD Buy Deal liegt also weder im Gewinn noch im Verlust. Unser Equity steht also wieder bei 10.000 EUR. Nach obiger Formel berechnen wir erneut den Drawdown = 10.000 EUR – 10.000 EUR = 0 EUR. Der aktuelle Rücklauf beträgt noch immer 0 EUR.

  4. Hier sehen Sie schon den großen Unterschied zwischen beiden Methoden. Schritt 3 der ersten Methode produzierte einen Drawdown von 10 EUR, während diese zweite Methode noch keinerlei Drawdown anzeigt.

  5. Erst wenn der EURUSD weiter fällt und unser Geschäft sagen wir -10 EUR Wert ist, fällt unser Equity auf 9.990 EUR, was dann einem Drawdown von -10 EUR oder -0,1% vom Kontostand entspricht. Anders ausgedrückt ist der Drawdown laut dieser Ermittlungsmethode immer die Verlustsumme aller offenen Deals inklusive Swap und Kommission.

Wie bin ich überhaupt auf diese Drawdown-Definition gekommen? Ich arbeite seit letztem Herbst vermehrt mit dem EA-Forum mql5.com, auf dem MT4- und MT5-Nutzer unter anderem Signale Ihrer eigenen Strategien veröffentlichen oder die Signale anderer Trader abonnieren, Code-Tips, EAs und Indikatoren erhalten oder Trading-Ideen diskutieren können.

Für die dort veröffentlichten Signale wird der Drawdown nach eben dieser zweiten Methode berechnet. Ein Beispiel-Screenshot von der mql5.com-generierten Grafik, wie die Verlustsumme der offenen Deals in Prozent des Kontostands unseres eigenen Echtgeld-Signals ProvideLiquidity oszilliert, sehen Sie hier:

Das ist deutlich einfacher, da die Trader somit frei nach Lust und Laune (oder Mach-Trading-zu-Einkommen-Strategie, siehe auch Blog Wie man Trading zu Einkommen macht) Ein- und Auszahlungen durchführen können.

Alles hat zwei Seiten, somit hat auch diese Methode der EA-Drawdown-Ermittlung Nachteile. Wenn Sie zum Beispiel viele Scalping-Deals generieren und kurzfristig zahlreiche kleine Gewinne oder Verluste realisieren, wird Ihre offene GuV-Summe niemals einen großen Wert erreichen. Es kann schlimmstenfalls passieren, dass Ihr Kontowert 10-EUR-weise von z.B. den besagten 10.000 EUR auf 0 EUR, also um komplette 100% zurückgeht und ein Totalverlust verbleibt, obwohl Ihr maximaler Drawdown laut dieser zweiten Messmethode nie größer war als 10 EUR.

Wenn Ihre EAs tendenziell längerfristige und zahlreiche parallele Deals generieren oder Sie regelmäßig Ein- und Auszahlungen von Ihrem MT4-Konto tätigen, ist diese zweite Methode der Drawdown-Ermittlung und Risikokontrolle sehr stabil und konsistent. Ich habe sie ebenfalls als Expert Advisor programmiert und für Sie erhältlich gemacht:

Sie können die Kontoüberwachung per schwebender Gewinn- und Verlustsumme in Kontowährung oder Prozent vom Kontostand mit dem EA mFX-GewinnZiel auf Ihrem MT4-Konto automatisieren: https://www.mindfulfx.de/gewinnziel-ea/.

Denken Sie bitte darüber nach, welche der beiden Methoden zur Ermittlung des maximalen Rückgangs für welche Ihrer Tradingstrategien und -konten die passende ist. Vielleicht sind es auch beide, um einen vollständigen Überblick zu erhalten. Am Ende haben Sie ein effektives Instrument zur Risikomessung und -steuerung Ihres Tradings.

Um ein umfassendes Bild der Erfolgs- und Risikomessung eines Expert Advisors zu erhalten, müssen wir nun noch zusätzlich zum Drawdown den Profitfaktor sowie Gewinn und Rendite unter die Lupe nehmen. Das folgt in weiteren Blog-Artikeln.

Bis dahin herzliche Grüße und beste Wünsche für Ihr eigenes Trading
Ihr Cristof Ensslin von mindful FX, Ihr EA-Programmierer