MT4 Fragen und Antworten

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

Welchen Virtual Private Server (VPS) soll ich für meinen EA Dauerlauf verwenden?

Expert Advisors (EAs) für MetaTrader 4 (MT4) oder MetaTrader 5 (MT5) müssen ständig mit dem Tradeserver des Brokers verbunden sein, damit sie als Trading-Robot ihr Werk verrichten können. Sobald Sie den MT4 schließen oder das Profil wechseln, auf dem der EA läuft, kann der EA nicht mehr arbeiten.

Eine Lösung für dieses Problem ist, einen so genannten Virtual Private Server (VPS) zu mieten. Dort sollte Windows als Betriebssystem installiert sein, damit MT4- und MT5-Instanzen leicht eingerichtet werden können. Ich werde immer wieder danach gefragt, welcher VPS-Anbieter zu wählen ist.

Welchen VPS soll ich für meinen EA mieten?
— häufige Kundenfrage

Ich sage Ihnen in diesem Blogpost zunächst, welchen Server ich verwende. Danach stelle ich Ihnen zwei beliebte Alternativen vor.

Welchen VPS ich selbst verwende

Ich selbst nutze einen VPS von 1&1. Dort wählte ich einen Server, dem garantiert 2 Prozessoren zugeordnet werden. Hauptspeicher RAM ist 2 GB, für den Festplattenspeicher sind 80 GB verfügbar. Das ganze ist für ca. 20 EUR im Monat zu haben und läuft stabil und bislang ohne einen einzigen Absturz.

Bis Mitte 2017 war ich bei FXColo, einem auf Forex-Trading spezialisierten Server-Anbieter. Das Problem war hier aber, dass exakt zu den Stoßzeiten - ich denke dabei an Zentralbank-Zinsentscheide, Non-Farm-Payrolls etc. - der Server überlastet war und ich nicht auf ihn zugreifen konnte. Wenn's also darauf ankam, war der VPS nur mit - für hektische Marktphasen viel zu langen - Wartezeiten für mich verfügbar.

Beim Remote-Desktop-Zugriff (so nennt sich die Verbindung, die Sie von Ihrem PC oder Laptop zum VPS aufbauen) auf meinen 1&1-Server habe ich noch nie warten müssen. Vielleicht liegt es daran, dass die dahinter stehende Hardware nicht (oder zumindest nicht nur) mit anderen FX-Tradern und Börsenhändlern geteilt wird, sondern mit Hinz und Kunz, welche andere Stoßzeiten als wir Daytrader haben.

Zwischenzeitlich laufen auf meinem VPS zehn MT4-Instanzen. Die meisten davon sind mit Echtgeld-Konten an den Broker angebunden, während ein paar wenige Demokonten sind. Auf allen sind verschiedentliche EAs am Werk, wobei zwei der MT4-Instanzen jeweils mit zwischen 80 und 90 Charts mit aktivem EA bestückt sind. Die Rechenkapazität wird also gut ausgenutzt, dennoch kann ich immer stabil und schnell auf die Programme zugreifen.

Hier zu weiteren Infos des in Deutschland ansässigen Anbieters 1&1: https://hosting.1und1.de/vserver -> Virtual Server Cloud L mit Windows.

VPS-Alternative Strato

Ein paar meiner Kunden bevorzugen den ebenso in Deutschland beheimateten Anbieter Strato. Dort gibt es ähnliche Angebote wie bei 1&1, sowohl aus preislicher wie auch aus leistungstechnischer Sicht.

Ich habe bisher von diesen Kunden nur gute Nachrichten gehört über Performance und Zugriffsgeschwindigkeit. Wenn Sie ebenso Strato einen Versuch gönnen möchten, achten Sie darauf, dass Sie den Windows-Server mit mindestens 2 Prozessoren, 2 GB oder mehr RAM und 50 GB oder mehr Festplatte buchen. 

Hier zur Infoseite: https://www.strato.de/server/windows-vserver/. Wie ich dort gerade sehe, wird sogar eine 30-Tage-Geld-zurück-Garantie angeboten, damit Sie alles ausprobieren können.

Preisgünstigster VPS für unter 9 EUR

Wenn Sie ein Sparfuchs sind und es noch kostengünstiger haben möchten, werden Sie am besten Trading-Kunde bei JFD Brokers. Dort profitieren Sie als Echtgeld-Kunde mit einem VPS für monatlich nur 8,75 EUR (17,50 EUR für den Server des VPS-Betreibers FOZZY, abzüglich 50% Rabatt für JFD Brokers-Kunden).

Ich habe diesen Server selbst noch nicht ausprobiert, kann also nicht aus Erfahrung sprechen. Er erfüllt aber die oben genannten technischen Mindeststandards (Windows, 2 Prozessoren, 2 GB RAM, 50 GB Festplatte).

Weitere Infos hier über unseren Partnerlink: https://www.jfdbrokers.com/de/trading/technologie?ib=ensslin (ein bisschen Runterscrollen auf der Zielwebsite ist notwendig, um zu den VPS-Angeboten zu gelangen).

Andere Broker, aber nicht alle, bieten ihren Echtgeldkunden ebenso VPS Rabatte an, teils bis zu 100%. Sprechen Sie also einfach mal Ihren eigenen Broker direkt an, ob er so ein Angebot im Programm hat.

Viel Erfolg bei der Server-Wahl und Ihrem AutoTrading
Ihr Cristof Ensslin von mindful FX, Ihr EA-Programmierer

 

Wie viele Charts kann man maximal gleichzeitig in einer MT4 Instanz laufen lassen?

Neulich erreichte mich wieder ein gute Frage zum Thema Expert Advisors (EA) und MetaTrader 4 (MT4), die ich hier und heute gerne beantworten möchte. Denn Sie hatten sie vielleicht auch schon:

Ich habe einen [...] EA entwickelt, den ich im Tageschart auf verschiedenen Einzel-Aktien handeln möchte.
Wie viele Charts kann man maximal gleichzeitig in einer MT4 Station laufen lassen?

Laut MQL4-Dokumentation ist die maximale Anzahl offener Charts pro MT4-Instanz auf den konstanten Wert von 100 festgelegt. Dies ist quer durch die Bank bei allen Brokern gleich.

Info nur für MQL4-Programmier-Geeks:
die Anzahl der maximal erlaubten Charts
kann im EA-/Skript-Code durch die Konstante
CHARTS_MAX abgerufen werden, z.B.

int limit = CHARTS_MAX;
 

Eine logische Konsequenz daraus ist, dass Sie auch "nur" maximal 100 EAs parallel laufen lassen können. Denn pro Chart kann immer nur ein EA installiert werden.

Wie viele Charts habe ich derzeit geöffnet?

Wer viele Charts gleichzeitig offen hat, verliert oft den Überblick, wie viele denn nun aktuell wirklich im MT4 geladen sind.

Um schnell feststellen zu können, wie viele Charts schon geöffnet sind und wie viele Sie noch aufmachen können, habe ich für Sie ein Skript geschrieben.

Bei Ausführung zählt es alle offenen Charts im MetaTrader. Es ermittelt außerdem die Anzahl der noch erlaubten zu öffnenden Chartfenster und gibt mir alle Werte bequem und übersichtlich in einem Nachrichten-Fenster aus, siehe Screenshot rechts oben und auch das Video ganz oben.

Ich möchte es gerne mit Ihnen teilen. Klicken Sie hier, um es sich kostenlos herunterzuladen. Den MQL4-Code für das MT4-Skript mFX-ChartZähler erhalten Sie auf dieser Infoseite käuflich per Sofortdownload.

Was aber tun, wenn ich mehr als 100 Charts öffnen möchte?

Wenn Sie mehr Handelssymbole als diese 100 gleichzeitig durch einen EA handeln lassen möchten, können Sie weitere MT4-Instanzen installieren, mit denen Sie aufs gleiche Konto zugreifen. Dort können Sie dann die weiteren Charts öffnen und ihren gewünschten Expert Advisor darauf installieren.

Wie man mehrere MT4-Instanzen auf ein und demselben PC oder VPS installiert?

Das geht ganz einfach, indem Sie diesen Schritten folgen:

  1. Installationsdatei für den MT4 Ihres Brokers ausführen (z.B. durch Doppelklick; brauchen Sie noch einen guten und zuverlässigen Broker und dessen MT4-Installationsdatei? Probieren Sie mal ein Demokonto bei JFD Brokers aus, komplett kostenfrei und unverbindlich).
  2. Gegebenenfalls der Windows-Dialogbox zustimmen, so dass das Programm auf Ihrem Rechner installiert werden darf.
  3. Es öffnet sich ein neues Fenster. Hier setzen Sie das Häkchen bei "Lizenzvertrag zustimmen" setzen (natürlich nur, sofern Sie dem Lizenzvertrag zustimmen), ABER KLICKEN SIE NOCH NICHT AUF WEITER!
  4. Stattdessen klicken Sie auf den Button "Einstellungen".
  5. Ändern Sie nun den standardmäßig vorgegebenen Namen des Installationsordners. Wählen Sie einen noch nicht bestehenden Ordnernamen, z.B. \meinBroker MT4 Instanz-2.
  6. Ändern Sie nun ebenfalls den Namen der Programmgruppe. Am besten nutzen Sie den gleichen Namen, den Sie auch oben für den Installationsordner vergeben haben.
  7. Optional: löschen Sie das Häkchen bei "MQL5.community Website Öffnen", damit Sie schneller ans Ziel gelangen.
  8. Auf "Weiter" klicken und die restliche Installationsautomatik abwarten.
  9. Auf "Fertig stellen klicken", geschafft!

Im Start- bzw. Programm-Menü finden Sie nun die alte und die neue(n) MT4-Installationen. Diese zusätzlichen Installationen nennen sich "Instanzen". Sie befinden sich in jeweils separaten Programmgruppen, damit Sie sie separat öffnen können. Nun müssen Sie sich nur noch auf den neuen MetaTrader 4-Instanzen mit Ihrem (gleichen oder unterschiedlichen) Konto einloggen.

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

PS: Wenn Sie den Code für das Skript haben möchten, um z.B. es selbst nach Ihren Vorstellungen weiter zu entwickeln oder zu ändern oder um leicht und einfach per copy&paste die Funktionalitäten beispielsweise in einen bestehenden EA zu integrieren, können Sie den Code als mq4-Datei unter dem folgenden Link kaufen und sofort downloaden: http://www.mindfulfx.de/chartzaehler-skript

Wie ich aus M1-Daten M5-Daten in der Histroriendatenbank im MT4 machen kann

Neulich erreichte mich eine Frage zum Thema hochqualitative Backtest-Daten. Sie lautet:

Ich habe mir für die Backtests Historydaten in M1 besorgt. Meine EAs laufen aber fast alle in der M5-Zeiteinheit. Haben Sie eine Idee, wie ich die M1-Daten in M5-Daten in der Histroriendatenbank im MT4 umwandeln kann?
— Christian S., mindful FX-Kunde

Die Antwort darauf ist ganz einfach:

Nutzen Sie einfach das im MT4 mit eingebaute Skript PeriodConverter.

Wie das geht, Schritt für Schritt?

  1. M1-Chart des gewünschten Symbols öffnen.
  2. Im Navigator-Fenster unter Skripte das Skript PeriodConverter doppelklicken.
  3. Multiplier / Period multiplier factor 5 (oder die gewünschte Timeframe-Minutenzahl) eingeben.
  4. OK klicken.
  5. Fertig.

Nun können Sie die hochwertigen M1-Daten auch auf dem M5-Timeframe nutzen.

Qualitativ hochwertige Daten sind notwendig, um eine höhere Backtest-Qualität zu erreichen. Am präzisesten dafür sind Tick-Daten. Diese können Sie zum Beispiel von Tickstory hier über unseren Partnerlink beziehen. Tickstory aggregiert Trade-Server-Daten von zahlreichen Brokern und aggregiert diese zu einer solideren, objektivierten Tick-für-Tick-Betrachtung der Kurshistorie.

Die Sicherstellung einer hochwertigen Datenqualität bringt Sie auf bessere Verlässlichkeit in der Vergangenheitsbetrachtung. Das ist zwar noch keine Garantie für die zukünftige Entwicklung. Es ist aber das beste Werkzeug, das uns vorliegt, um ein erstes gutes Gefühl für eine per EA automatisierte Trading-Strategie zu entwickeln.
— Cristof Ensslin in "Warum MT4-Backtests vom realen EA-Handel abweichen", 6.10.2017

Herzliche Grüße und ein erholsames langes Wochenende wünscht Ihnen
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Zusammenschalten von zwei EAs auf einem Chart

Grundsätzlich kann im MetaTrader 4 (MT4) pro Chart ein einziger Expert Advisor (EA) geladen werden. Daher lautet die vorläufige Antwort auf die Frage

Ist es möglich, den DealTimer EA und den GewinnZiel EA in einem Chartfenster zu kombinieren?

Es ist immer nur ein EA pro Chart möglich.

(Diese Frage eines Kunden bezog sich auf unsere beiden per Sofort-Download erhältlichen EAs mFX-DealTimer und mFX-GewinnZiel. Für weitere Infos über diese EAs einfach auf den jeweiligen verlinkten EA-Namen klicken.)

ABER: Im MT4 lassen sich ja mehrere Charts des gleichen Symbols gleichzeitig öffnen. Daher gibt es eine Lösung, so dass zwei oder mehr Experts gleichzeitig laufen und miteinander arbeiten können.

... und so geht's...

Sie können die beiden EAs also zusammenschalten, indem Sie die Experten auf zwei Charts mit gleichem Symbol laden und dann die gleiche MagicNumber vergeben. Im Deal-öffnenden EA (hier: mFX-DealTimer) setzen Sie z.B. MagicNumber 12345 ein. Im zusätzlichen Deal-managenden Programm (hier: der GewinnZiel-EA mFX-GewinnZiel) können Sie den Symbol-Filter und den MagicNumber-Filter aktivieren und entsprechend mit der gleichen MagicNumber (in diesem Beispiel 12345) einstellen.

Das gilt generell gesprochen auch für andere Expert Advisors. Denn bei den allermeisten EAs können Sie die MagicNumber (manchmal auch „ID“, englisch für Identifikationsnummer, genannt) einstellen, mit der Deals geöffnet werden.

Die MagicNumber ist eine Identifikationsnummer, die Deals bei deren Eröffnung durch Skripte und EAs mitgegeben wird. Wird sie nicht bestimmt, wird die MagicNumber 0 (null) vergeben. Auch manuell eröffnete Deals haben die 0 als ID. Eine MagicNumber kann nur bei Dealeröffnung vergeben und nie wieder verändert werden.

In diesem Video zeige ich es Ihnen live an meinem Bildschirm

Aber aufgepasst: nicht alle EAs können sauber zusammenarbeiten.

Wenn beide EAs über Dealeröffnungsfunktionen verfügen oder Dealmanagementaktionen ausführen, kann es zu einem munteren hin und her führen. Z.B., dass der Stop-Loss bei jedem Tick hin und her springt oder dass Positionen geöffnet, geschlossen und danach sofort wieder eröffnet werden.

Testen Sie daher unbedingt ausführlich die Zusammenarbeit von zwei EAs im gleichzeitigen Live-Betrieb auf Demokonten (z.B. bei unserem MT4-Broker-Partner JFD Brokers), bevor Sie damit echtes Geld managen.

Viel Erfolg bei all Ihren Trading-Aktivitäten
Ihr Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Kann man mit EAs dauerhaft Geld verdienen?

Als EA-Programmierer und langjähriger Trader werde ich immer wieder gefragt, ob man mit Trading-Robots wie Expert Advisors (EA) für MetaTrader 4 (MT4) dauerhaft Geld verdienen kann. Also nach dem Motto: EA „Plug & Play“ anschalten – und ein Jahr später ist das Konto verdoppelt, verzehnfacht oder verhundertfacht.

Die Antwort darauf ist ganz klar: es kommt darauf an.

Warum? Weil die Frage nicht genau genug gestellt ist. Die Frage muss beinhalten, wieviel Geld man im EA Trading verdienen möchte. Nehmen wir uns also ein paar Varianten dieser sehr berechtigten Fragestellung vor.

Kann man mit EAs dauerhaft sein Kapital jährlich verdoppeln?

Meiner Meinung nach lautet die Antwort hierauf ganz klar nein. Es wird Marktphasen geben, in denen ein EA mit viel Hebel und somit hohem Risiko leicht eine Kapitalvervielfachung schaffen kann. Da Sie aber in einer solchen Einstellung regelmäßig Ihr gesamtes Kapital riskieren, ist dies eher der Kategorie Spielkasino zuzuordnen. Kann also Spaß machen, unterhaltsam sein, aber nicht als ernsthaftes investieren verstanden werden.

Denn ob Sie die richtige Phase des Markts erwischen ist Glückssache. Sie können zwar Systematiken wie Equity Trailing Stop (siehe Blog Wie ein Equity Trailing Stop funktioniert) oder Rollende-Backtest-Methode (siehe Blog Den richtigen EA für aktuelle Marktphase finden: rollende Backtests) anwenden. Bei solch hohen Verlustrisiken ist aber der Erfolgsfall dennoch eher dem Glück zuzuordnen und tendenziell mit zahlreichen verlustbehafteten Anschalt-Versuchen verbunden.

Kann man mit EAs dauerhaft 10% oder 20% p.a. auf sein Kapital verdienen?

Hier lautet meine Meinung ganz klar ja. Sie können entweder ein Portfolio an Expert Advisors und somit Handelsstrategien auf ein Portfolio von Assets anwenden, gegebenenfalls unter Marktphasenfilter-Ansätzen wie den oben schon erwähnten Equity Trailing Stop oder Rollende-Backtest-Methode. Damit erzielen Sie durch gestreutes Risiko sehr effektives Verlustrisikomanagement und können dennoch eine im Vergleich zu langristigen Aktieninvestments attraktive Rendite erwirtschaften.

Oder aber Sie verwenden EAs, die systematisch algorithmisch arbeiten und mit effektivem Risikomanagement ausgestattet sind. Zu diesem zähle ich unter anderem unseren Martingale-EA mFX-MartingaleKlassisch mit all seinen Risiko-Schutzmechanismen. Wir setzen ihn selbst mit unserem eigenen Geld ein, in der Erwartung auf 10-20% Rendite pro Jahr. Er wird also keine Wunder verbringen. Zwecks übergeordnetem Risikomanagement setzen wir hier nur einen im Verlustfall verkraftbaren Bruchteil unseres investierbaren Kapitals ein. Denn es verbleibt auch hier ein, wenn auch extrem geringes, Totalverlustrisiko.

Mit meinen nun über 30 Jahren Börsen- und gut 6 Jahren EA-Trading-Erfahrung kann ich guten Gewissens sagen:

  1. Für den passiven Investor sind EAs ein prima Mittel, um dem diversifizierten Portfolio als kleine, geringe Beimischung zu dienen.
  2. Einem aktiven Vollzeittrader dienen Expert Advisors hingegen als unerlässliches Werkzeug, um emotionslos die eigenen Strategien umsetzen zu können.

Letzterer wird immer auch einen Blick darauf haben müssen, ob die zu Grunde liegende Handelsstrategie zur aktuellen Marktphase im gewählten Symbol bzw. Asset passt.

Generell gilt: Je mehr Zeit Sie ins EA-Trading investieren, desto mehr Rendite können Sie generell erwarten. Wenn Ihnen irgendjemand erzählt, er habe einen Wunder-EA, der Ihnen risikofrei Ihr Geld vervielfacht, sollten bei Ihnen blitzartig alle roten Karten und Flaggen vor Ihrem geistigen Auge heftig wedelnd erscheinen.

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

Nur Signale, kein AutoTrading

Wie Sie den EA mFX-MAXingPro verwenden, um sich bei MA-Kreuzungen lediglich benachrichtigen zu lassen und manuell über das Signal zu entscheiden.

Wussten Sie schon? Mit dem EA mFX-MaxingPro können Sie wählen, ob Sie die Kreuzungen der im EA eingestellten gleitenden Durchschnitte automatisch vom EA handeln lassen wollen oder nicht. Sie haben auch die Möglichkeit, dass Sie einfach bei Signal informiert werden – per Email, Push-Benachrichtigung aus Handy oder Pop-Up-Alarm auf dem laufenden Rechner. Was Sie dann mit dem Signal tun, bleibt Ihre diskretionäre Wahl.

Hier eine kurze Anleitung (ab EA Version v1.33 gültig), wie das konkret geht. Es gibt mehrere Möglichkeiten:

Screenshot 1: Benachrichtigungs-management und "KeinTrading"

Screenshot 2: Live Trading nicht zulassen

  1. In den EA-Eigenschaften wählen Sie unter Eingaben → Moneymanagement → Lotsizeermittlung die Option „KeinTrading“ aus. Gleichzeitig muss weiter oben im Benachrichtigungsmanagement der oder die Benachrichtigungsweg(e) Ihrer Wahl aktiviert sein. Im Screenshot 1 nebenan sehen Sie, dass Pushbenachrichtigung aufs Handy sowie die Signaleinzeichnung als Pfeil im Chart aktiviert ist. (Deal-Schließungen über Gegensignale können aber noch weiterhin geschehen, so dass Sie auf diese Art
    den EA "auslaufen lassen" können).

  2. Sie können in den EA-Eigenschaften unter Allgemein → Positionen das Häckchen bei „Live Trading zulassen“ entfernen, siehe Screenshot 2. Für das Benachrichtigungsmanagement gilt das gleiche wie unter 1. beschrieben.

  3. Sie können ganz einfach den AutoTrading-Button deaktivieren. Auch hier ist das Benachrichtigungsmanagement wir unter 1. aufgezeigt einzustellen.

In allen drei Wegen erscheint im Chart links oben der Status „EA aktiv im nur-Signal Modus (KeinTrading)“. Damit können Sie sicher sein, dass der EA Ihnen nur die Signale liefert. Sie entscheiden dann selbst, wie Sie diese verwerten.

Falls Sie den EA mFX-MAXingPro schon haben, stellen Sie bitte sicher, dass Sie die aktuelle Version v1.33 verwenden. Die aktuelle Version steht Ihnen unter Ihrem persönlichen Download-Link aus der Kaufbestätigungsmail (von unserem Partner Digistore24) zur Verfügung, sofern Ihr Kaufdatum nicht mehr als 6 Monate (Variante EX4) bzw. 12 Monate (Variante MQ4) zurück liegt.

Wenn Sie den MT4-Expert Advisor mFX-MAXingPro erwerben möchten, klicken Sie einfach den folgenden Button:

Ihnen den allerbesten Tradingerfolg
Ihr Cristof Ensslin von mindful FX, Ihrem EA Programmier.

Launch: EA für Portfolio-Gewinnziele

Ein wichtiger Grundsatz im Trading ist die Diversifizierung. Ein über mehrere Assets gestreutes Portfolio verteilt das Risiko auf mehr als eine Position. Wenn die Deals untereinander nicht oder nur wenig korrelieren, senkt das das Risiko mehr als es Gewinnchancen nimmt. Ein Beispiel.

Am Morgen eines Handelstages werfen Sie einen Blick auf den Wirtschaftskalender und sehen, dass ein Zinsentscheid der EZB ansteht. Sie wissen zudem, dass der Markt sich von der darauf folgenden Pressekonferenz Hinweise zur weiteren Zinsentwicklung und Liquiditätsversorgung (Stichwort Quantitative Easing) verspricht. Daher besteht großes Potenzial für kräftige Marktausschläge.

Sie könnten nun alles auf EURUSD setzen, um Ihre Markteinschätzung dort hoffentlich in Gewinn umzumünzen. Was aber, wenn die profitablen Moves im DAX, IBEX, Deutsche Bank, Gold, EURCHF oder Bund-Future geschehen?

Sie erkennen, dass Sie immer erst im Nachhinein genau wissen, welche Reaktion eine Nachricht bei den verschiedenen Handelswerten ausgelöst hat. Daher streuen Sie Ihre Einsätze auf all diese sieben Assets, z.B. bei den von uns seit Januar empfohlenen JFD Brokers – bei dem Ihnen all diese Handelssymbole unter besten Konditionen und herausragender Ausführungsqualität zur Verfügung stehen.

Sie haben nun also Ihr MT4-Konto mit Deals in EURUSD, EURCHF, .DE30Cash (DAX 30), .SPAINCash (IBEX 35), DBK.D (Dt. Bank Aktie), XAUUSD (Gold) und .BUND_M8 (Juni 2018 Bund-Future) wie gewünscht positioniert. Mit dem anstehenden Marktevent möchten Sie in Summe 100 EUR gewinnen, aber maximal 50 EUR verlieren.

Die Pressekonferenz von Mario Draghi beginnt, der Markt kommt in Bewegung. Sie können nun die Entwicklung Ihres Portfolios Tick für Tick, Sekunde für Sekunde beobachten und alle Positionen manuell schließen, wenn die Gewinnsumme Ihren Zielwert im Plus oder Minus erreicht hat.

Oder aber, Sie lassen sich durch einen emsigen Helfer unterstützen, der zuverlässig und schnell arbeitet, ohne dass Sie eckige Augen bekommen. Dieser Helfer ist unser neuer MT4-EA mFX-GewinnZiel, den wir zusammen mit unserem Kunden Holger B. für Sie entwickelt haben.

Sie können darin eine Gewinn- und Verlustsumme oder auch einen Prozentsatz des Kontostands als Zielwert für Ihr Dealportfolio vorgeben. Außerdem erhalten Sie im Chart einen Alles-Schließen-Button, bei dessen Betätigung der EA mFX-GewinnZiel vorzeitig alle offenen Geschäfte im Konto zu aktuellen Marktpreisen schließt.

Der Expert Advisor ist einfach zu verstehen, zu installieren und anzuwenden. Und: wir haben ihn so erschwinglich wie möglich für Sie gemacht. Sehen Sie selbst durch Klick auf das Bild links oder unter http://www.mindfulfx.de/gewinnziel-ea.

Gibt es also einen EA, der alle Positionen schließt, sobald ein bestimmter Betrag X in der offenen Gewinnsumme erreicht ist? Ja, es gibt ihn ab heute! Hoffentlich hilft er auch Ihnen, einen bewegungsfrohen Markt mit Hilfe eines Risiko-diversifizierten Portfolios in stattliche Gewinne zu verwandeln.

Beste Wünsche für Ihren Trading-Erfolg
Cristof Ensslin von mindful FX, Ihr EA-Programmierer

Wie finde ich heraus, ob ein Indikator nachzeichnet, re-paintet oder sonstwie nicht konsistent ist?

Es gibt im MetaTrader 4 (und 5) Indikatoren, die nachträglich ihre Werte verändern können, obwohl die Kerzen schon abgeschlossen sind. Bei einigen wenigen macht dies von der Logik her Sinn. Bei den meisten anderen handelt es sich oftmals um die Art und Weise der Programmierung, die eben diese Inkonsistenz hervorruft.

Aber erst mal Schritt für Schritt.

Die große Mehrheit der im MetaTrader eingebauten Indikatoren arbeiten lupenrein und sind daher auch mehr oder weniger eins zu eins dazu geeignet, nachvollziehbare Signale zum Trading zu liefern – ob im manuellen Trading oder im automatisierten Algo-Handel mittels Expert Advisor (EA).

Alle Standard-Indikatoren fallen in diese Kategorie, sei es gleitender Durchschnitt (Moving Average oder MA), Stochastic, Relative Strength Index (RSI) oder Parabolic Stop-and-Reverse (PSAR). Auch „exotischere“ Hinweisgeber wie Heikin Ashi oder die Ichimoku-Wolke gehören hier dazu. Auf diese sind allesamt Verlass.

Ein paar der in der MT4-Installation mitgelieferten Indikatoren können im Nachhinein noch ihre Werte schon abgeschlossener Perioden verändern. Das ist aber schon in deren Logik eingebaut und somit in sich konsistent. Zum Beispiel der ZigZag und die Fractals gehören dazu. Wenn man die Logik dahinter kennt und versteht, lassen sich aber auch hierauf nachvollziehbare Signale basieren.

Kommen wir zur eventuell problematischen Kategorie.

Es handelt sich hierbei um so genante „Custom Indikatoren“, also nicht im MT4 eingebaute, individuell kreierte Indikatoren.

Sie haben alle gemeinsam, dass sie im MQL4 Code eines EA's mit der iCustom-Funktion abgerufen werden, sofern Sie über einen Ausgabe-Buffer verfügen, der im Detailfenster angezeigt wird. (Es gibt auch Indikatoren, die ausschließlich über Chart-Objekte ihre Werte darstellen. Diese müssen von EA's anders behandelt werden. Dazu aber ein ander Mal mehr.)

Entweder wurden sie von Ihnen selbst programmiert, sie haben sie programmieren lassen oder aber im Internet kostenlos oder kostenpflichtig heruntergeladen. Auch Indikatoren im „Market“ (siehe MT4 Terminal oder mql5.com) fallen allesamt in diese Kategorie.

Nun sage ich nicht, dass diese Indikatoren schlecht sind. Ganz und gar nicht. Im Gegenteil: einige meiner Kunden traden mit Hilfe solcher Werkzeuge extrem erfolgreich.

Ich möchte nur aussagen, dass der Verwender eines solchen Wegweisers sich bewusst sein muss, dass im Live-Betrieb und im Rückblick oft andere Signale ausgegeben und im Chart angezeigt werden. Wenn Sie sich dieser Eigenheiten bewusst sind, können Sie Schwachstellen vermeiden und die Stärken des Indiaktors besser nutzen.

An erster Stelle steht daher herauszufinden, ob der Indikator seine schon festliegenden Werte im Nachhinein verändert oder nicht. Dieses Phänomen nennt sich „nachzeichnen“ oder „re-painting“. Innerhalb dieser "Nachzeichner" gibt es konsistente und inkonsistente Indikatoren, wie oben schon erwähnt.

Konsistente und inkonsistente Indikatoren erkennen

Anhand zweier Beispiele zeige ich Ihnen nun, wie Sie beide voneinander unterscheiden können.

  1. Konsistenter Re-Painter: ZigZag

  2. Inkonsistenter Re-Painter: SuperTrooper (Name geändert)

Sie können diese Indikatoren folgendermaßen auf Konsistenz prüfen.

Schritt 1:

Öffnen Sie zunächst den Strategietester des MT4. Das geht mit der Tastenkombination Strg + r oder über Menü → Ansicht → Strategietester.

Links oben im Strategietester-Fenster wählen sie dann „Indikator“ statt der Standardeinstellung „Expertenprogramm“ aus. Wir beginnen mit dem ZigZag, siehe Screenshot 1.

Screenshot 1: Indikator-Modus und Indikator selbst im Strategietester des MetaTrader 4 auswählen

Schritt 2:

Danach geben wir einen Test-Zeitraum ein, z.B. eine Woche. Der Zeitraum sollte im Verhältnis zur Periode (wir wählen für unseren Test den M15-Chart) nicht zu lange sein, um die Ladezeit für die Datenhistorie kurz zu halten. Gleichzeitig auch nicht zu kurz, um genügend Datenpunkte testen zu können. Als Modell genügt uns hier „Kontrollpunkte“, damit der Backtest schneller durchläuft. Diese Einstellungs-Punkte sehen Sie im Screenshot 2 markiert.

Screenshot 2: Periode, Modell und Zeitraum auswählen

Schritt 3:

Nun starten wir den Test, indem wir auf „Test starten“ klicken, siehe Screenshot 3.

 Screenshot 3: Indikator-Test starten

Screenshot 3: Indikator-Test starten

Schritt 4:

Jetzt können wir die Testgeschwindigkeit erhöhen. Dazu bewegen wir den Geschwindigkeits-Schieber ganz nach rechts, siehe Screenshot 4. Sofort läuft der Test blitzfix durch, bis zum Ende des eingestellten Test-Zeitraums.

Screenshot 4: Test schneller machen

Schritt 5:

Wenn der Test beendet ist, laden wir den getesteten Indikator (hier: ZigZag; nachher siehe unten: SuperTrooper) ein zusätzlichen Mal aufs Test-Chart, obwohl er ja schon vom Tester aufs Chart gezeichnet wurde; siehe Screenshot 5. Wichtig: wirklich erst nach Vollendung des Tests den zusätzlichen Indikator auf Chart einfügen!

Screenshot 5: Getesteter Indikator zusätzlich aufs Test-Chart laden, nachdem der Test vollständig durchgelaufen ist.

Nun können wir im Chart nach links scrollen und werden erkennen, dass nur eine einzige Indikator-Linie zu sehen ist. Das bedeutet, dass beide Indikator-Installationen, die vom Strategietester gezeichnete und die von uns nach dem Test zusätzlich geladene, direkt übereinander liegen. Ein solcher vollständig deckungsgleicher Indikator-Verlauf deutet auf einen konsistenten Indikator hin.

Nun gehen wir die gleichen Schritte mit dem SuperTrooper durch.

In Screenshot 6 sehen wir das Ergebnis nach Ausführung des Schritt 5.

Screenshot 6: Test-Ergebnis des SuperTrooper Indikators

Das obere der beiden Indikator-Unterfenster ist der Test-Verlauf, der vom Strategietester ermittelt und eingezeichnet wurde. Das untere ist der im Nachhinein aufs Chart geladene Indikator. Beide haben die exakt gleichen Einstellungen. Finden Sie die Unterschiede?

Die Indikator-Verläufe sind ähnlich, aber lange nicht identisch:

  1. Ganz links sind im oberen der beiden Indikator-Fenster zwei Short-Signale eingezeichnet, während im unteren Fenster nur eines angezeigt wird.

  2. Die Zeitpunkte der restlichen Signale sind ebenfalls nicht an den gleichen Kerzen.

  3. Der live-Verlauf ist zudem viel zackiger als die Rückbetrachtung.

All diese Punkte weisen eindeutig auf einen inkonsistenten, nachzeichnenden Indikator hin. Wenn solche Ergebnisse auftreten, eignet sich der Indikator in der Regel nicht zur Signalgebung für ein Handelssystem und somit einen Expert Advisor.

Je nach Handelsansatz gibt es Ausnahmen für die Eignung solcher Indikatoren. Einer meiner Kunden arbeitet sehr erfolgreich systematisch mit einem inkonsistent re-paintenden Indikator. Das muss aber gelernt sein und benötigt viel Übung.

Beste Erfolge für Ihre eigene Indikator-Wahl
Ihr Cristof Ensslin von mindful FX, Ihrem EA-Programmierer

Soll die EA Programmierung auf Basis von MT4 oder MT5 aufgesetzt werden?

Die Firma MetaQuotes, die Ersteller von MetaTrader 4 (MT4) und MetaTrader 5 (MT5), pusht derzeit sehr stark den MT5 voran. Insbesondere auf deren Website mql5.com, die ein Forum und Marktplatz für beide Versionen darstellt und die für EAs und Indikatoren sowohl für MT4 als auch MT5 dient, sieht man teils sehr aggressive Eigen-Werbung für die neuere der beiden Trading-Plattformen.

Gleichzeitig fragen Sie sich vielleicht, wie auch einer meiner Kunden derletzt:

Soll die EA-Programmierung auf Basis von MT4 oder MT5 aufgesetzt werden? Wie lange wird es die Handelsplattform MT4 überhaupt noch geben?

Das sind sehr berechtigte Fragen, egal ob sie die EA-Programmierung selbst oder das Erlernen der MT4-Programmiersprache MQL4 betreffen. Danke hierfür. Es ist immer wieder wert, sich über diese Fragen ausführliche Gedanken zu machen. Immerhin steht teils viel Zeit- und Geldeinsatz auf dem Spiel.

Hier also meine aktuelle Meinung zur "Lage der Nation der EA-Trader".

Aktuell höre ich von Brokern, dass der MT5 sich nicht wirklich durchsetzt. Er hat zwar deutliche Vorteile (z.B. ist er für den Börsenhandel zugelassen) - wenn die Broker oder Trader ihn aber nicht verwenden wollen, bleibt's beim MT4. Es wird sicherlich noch Jahre dauern bis es den MT4 wirklich nicht mehr geben wird.

Mich erinnert das ein bisschen an einen Kampf der Giganten, den ich während meiner Kindheit mit erleben durfte.

In den 80er Jahren gab es den Kampf zwischen VHS und Beta-Tapes um die Vorherrschaft im Videokassetten-Markt. Beta war technisch um Längen voraus, dennoch hat sich VHS durchgesetzt. Warum? Weil VHS viel schneller viel mehr Nutzer gewinnen konnte. Weil es unter anderem darum ging, aufgezeichnete Videos mit anderen zu teilen, wählten Nutzer die Plattform, die unter Freunden beliebter war.

Ähnliches ist meines Erachtens bei MT4 zu beobachten. Für MT4 gibt es schon so viel mehr Code, EAs, Indikatoren etc. Dieser Netzwerkeffekt ist nicht zu unterschätzen, auch wenn MT5 technisch besser ist.

Dazu kommt, dass MQL5 (Programmiersprache für MT5) komplizierter zu verwenden ist als MQL4 (Sprache für MT4). Das bringt mit sich, dass die Programmierung eines EA's für MT5 ca. doppelt so viel kostet wie für MT4. Denn die Programmierung dauert in etwa doppelt so lange.

Eventuell suchen Sie den MT4 zum Download auf von MetaQuotes betriebenen Web-Seiten derzeit vergeblich. Keine Sorge: den MT4 erhalten Sie bei jedem MT4-Broker zum Download. Er kann dann auch für andere Broker verwendet werden, indem Sie einfach Ihre Kontonummer, Ihr Passwort und den Server des anderen Brokers eingeben.

Wenn Sie also noch auf der Suche nach dem MT4 sind, oder aber den meinen Vergleichen nach günstigsten (zumindest für EURUSD und DAX-Future-CFD) MT4-Broker ausprobieren wollen, testen Sie doch mal die von uns oft empfohlene direktbroker-fx (Partnerlink https://www.direktbroker-fx.de/demo-2/?ref=mindful), falls nicht schon geschehen.

Alternativ empfehlen wir seit diesem Jahr auch JFD Brokers, einen progressiven Broker mit bester Technologie für schnellste und besser als erwartete Deal-Ausführungen. Es gibt engste Spreads und niedrige Commissions in über 800 (!) Assets sowie keine Interessenskonflikte, da kein Handelsbuch vorhanden ist, sondern die Orders direkt 1:1 an Liquiditätsprovider weitergeleitet werden. JFD ist mindful FX Partner seit 2018. Partnerlink zum kostenlosen Demokonto: https://www.jfdbrokers.com/de/trading/konto/kontoeroffnung?ib=ensslin

Wenn alles nach mir ginge, würde meine Vision so aussehen, dass MetaQuotes den MT5 vollständig kompatibel zur Programmiersprache MQL4 macht. Das würde die technischen Vorteile des MetaTrader 5 und die leichtere Handhabbarkeit der MT4-Programmiersprache zu einem Dreamteam kombinieren. Wäre das nicht prima?

Ihnen wünsche ich allerbeste, gewinnbringende Trades
Cristof Ensslin von mindful FX, Ihr EA Programmierer

PS: es gibt neue Termine für unseren MQL4-Intensivkurs - EA-programmieren lernen im Mai 2018 in Stuttgart und Hannover - hier klicken, informieren und gleich anmelden!

EA deaktivieren bei Kontowechsel im MT4

Heute geht's ums Thema Sicherheit beim Wechseln des Kontos. Denn wenn man nicht aufpasst und im MetaTrader 4 (MT4) von Demo- auf Realkonto wechselt, kann es passieren, dass die Expert Advisors (EAs), die man gerade testet, aktiv bleiben und unerwünschte Deals eröffnen.

Mit diesem Hintergrund erreichte mich kürzlich diese Frage eines Kunden:

Wenn ich den EA im Demokonto einschalte, dann ist er auch im Realkonto aktiviert. Gibt es eine Möglichkeit, das zu vermeiden? Ich würde gerne erst den EA im Demo testen bevor ich ins Real-Konto wechsele.

Danke für diese Frage. Sie können dies auf zwei Wegen bewerkstelligen.

  1. Installieren Sie eine zweite MT4-Instanz auf Ihrem Rechner und trennen somit Demo- und Realkonto vollständig. In der einen Instanz loggen Sie sich mit Ihrem Demokonto, in der anderen Installation mit Ihrem Realkonto ein. So geht's: http://www.mindfulfx.de/blog/auf-mehrere-mt4-konten-beim-gleichen-broker-gleichzeitig-zugreifen
  2. Sie stellen den MT4 so ein, dass AutoTrading deaktiviert wird, wenn sie das Konto wechseln. Dazu wählen Sie im Menüpunkt Extras -> Optionen -> Experten -> Häkchen setzen bei "Automatisches Handeln deaktivieren, wenn das Konto gewechselt wurde," wie im folgenden Screenshot zu sehen:

So einfach kann es gehen!

Ich wünsche Ihnen beste Trading-Erfolge, ob mit oder ohne EA
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

Trading-Systeme, die richtig funktionieren

Neulich erhielt ich folgende Email:

Ist es möglich, dass dieses ganze Technischeanalyse-Ding sich sehr schwer tut mit der dauerhaften Rentabilität?
Es hört sich jetzt etwas blöde nach “Undergroud-Trader” an. Aber kann es sein, das Systeme, die richtig funktionieren, nicht einfach per Google zu finden sind?

Dies ist eine fantastische Frage, die sehr berechtigt ist! Vielen Dank dafür. Diese Mail ist tatsächlich stellvertretend für viele ähnliche Fragen, die mir per Email oder über unseren YouTube-Kanal gestellt werden.

Viele Neulinge im Bereich Trading erhalten durch diverseste Eindrücke aus Büchern, von Youtube-Gurus und Websites, dass Trading zu einfachem, schnellen und vor allem risikofreien Reichtum führt - oder zumindest führen kann. Manchmal finde ich sogar heraus, dass auch erfahrenere Trader solchen Verlockungen nur schwer widerstehen können - mich selbst inbegriffen, muss ich ehrlich zugeben.

An all uns Menschen, die von Gier und Angst getrieben werden: Aufgepasst!

Um es kurz und knapp zu sagen: es gibt keine Abkürzung.

Trading ist eine Arbeit wie jede andere. Je mehr Sie darüber lernen und je mehr Zeit Sie darin investieren, desto größer sind Ihre Erfolgschancen. Klar, kann es sein, dass Sie (oder obige Gurus) kurzfristig eine Glücksträhne haben und irrsinnige Profite im Schlaf erwirtschaften. Wer aber auf Dauer erfolgreich sein und das Gewonnene nicht schnell wieder verlieren will, muss viel Geduld mit sich bringen.

Geduld für:

  • all die Lektionen, die man lernen muss; unter anderem durch Verluste, da einfach nicht alles aus Büchern, Magazinen oder von gutmeinenden Lehrern lernbar ist.

  • all die Zeit, die man investieren muss, um Systeme zu entwickeln.

  • all die Erfahrungswerte, die zu sammeln sind, um diese Systeme in den richtigen Märkten und zu den richtigen Zeitpunkten einzusetzen.

  • die langfristige, stetige Entwicklung der Rendite.

Wer langfristig denkt und weiß, dass eher in 10-20% Jahresrendite gedacht werden sollte, statt nach durchaus menschlicher und daher sehr weit verbreiteter Gier-frisst-Hirn-Manier an schnelle, ständig sich wiederholende Kapitalverdoppelungen sich zu sehnen, ist schon halb am Ziel.

Ich bin selbst ein Kind des Bullenmarkts zu Zeiten des Neuen Markts und der High-Tech-Blase der Jahrtausendwende. Ich musste diese Lektionen durch zunächst jubelnde Gewinne und dann schmerzhaft dahinschmelzende Depot-Stände selbst lernen.

Meine wichtigsten vier Lernerfahrungen möchte ich mit Ihnen teilen:

  1. Haben Sie realistische Rendite-Erwartungen! Wo hohe Gewinne locken, verstecken sich immer extrem hohe Risiken.

  2. Denken Sie langfristig! Statt ständig im M1- und M5-Chart nach Mustern zu suchen, entwickeln Sie lieber ein Handels-System im Tages- (D1) oder Wochenchart (W1). Meine besten Erfolge sind in eben diesen Timeframes. Darin entwickelte Systeme haben meiner Erfahrung nach auch eine viel größere Wahrscheinlichkeit, dauerhaft zu funktionieren.

  3. KISS - Keep it simple, stupid! Einfache Systeme funktionieren besser als komplizierte Systeme. Zum Beispiel ein Range-Ausbruchs-Modell à la Donchian-Channel wie im EA mFX-HochTiefAusbruch abgebildet oder ein Trendfolge-Modell mittels zweier Gleitender Durchschnitte wie im EA mFX-MAXingPro automatisiert, jeweils im D1- oder W1-Chart angewendet und mit realistischen Renditeerwartungen, ist auf Dauer vielversprechender als Systeme, die 27 Indikatoren und andere Trigger-Faktoren enthalten.

  4. Trading ist eine Vollzeitbeschäftigung. Klar können Sie durch Trading-Robots wie eben Expert Advisors für MetaTrader 4 sich das Leben erleichtern und Ihre Strategien stringenter und emotionsloser umsetzen. Sie können aber nicht im Ernst erwarten, dass Sie im Schlaf Geld verdienen können, wenn Sie nicht vorher tausende von Stunden Ihrer wertvollen Zeit fürs Lernen, Ausprobieren und Korrigieren aufgewendet haben. Wenn Sie keine Zeit und Hirnkapazität investieren können oder wollen, dann sollten Sie lieber auf langfristige Investitionen in ein Portfolio echter Vermögenswerte (sprich Immobilien, Aktien, Edelmetalle) setzen. Dann können Sie ruhig schlafen.

Ist es also möglich, mit Hilfe technischer Analyse Trading-Systeme zu finden, die funktionieren? Ich denke ja, aber nur sofern realistische Rendite-Erwartungen, Langfristigkeit, Einfachheit des Systems und verfügbare Zeitkapazität seitens eines lernfähigen und -willigen Traders zusammenkommen.

Auf beste Umsetzung dieser Lerneffekte
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

Expert Advisors – immer zuverlässig?

Nun möchte ich auf die möglichen Ausführungsfehler eingehen, die neben

den realen Verlauf eines Expert Advisors (EA) unterscheiden lassen werden von dem, was ein Backtest im Strategietester des MetaTraders (MT4/MT5) machen würde.

Im Backtest werden immer alle Deals komplett korrekt ausgeführt, sofern der EA richtig programmiert ist. Wenn wir nun im laufenden Handel unterwegs sind, dann können verschiedene Fehlermeldungen vorkommen.

Eine der üblichsten Fehlermeldung ist, dass der Trade-Kontext "busy" ist. Die MT4-Fehlermeldung dazu lautet "Trade context is busy" und der Fehlercode ist 146. Das ist wie eine belegte Leitung am Telefon: der Trade Server des Brokers ist einfach schon von einem anderen EA oder vom manuellen Trading in Ihrem Metatrader gerade eine Aktivität empfangen und muss diese erst verarbeiten.

Es ist in diesem Zusammenhang wichtig zu wissen, dass der MT4 nur eine Leitung zum Trade Server Ihres Brokers hat. Wenn Sie ein und denselben EA auf 20 verschiedenen Währungspaaren oder CFDs laufen haben und wir nehmen an, dass Signale alle zu einem Kerzenbeginn (also per Schlusskursbetrachtung) generiert und ausgeführt werden, dann kann es natürlich vorkommen, dass mehrere, eben bis zu 20 verschiedene Orders gleichzeitig eröffnet, geschlossen oder angepasst werden sollen.

Ihr MT4 muss diese Orderanfragen sequentiell, also nacheinander, Stück für Stück, eine nach der anderen abarbeiten. Wenn nun alle 20 Charts einen Dealvorgang übermitteln wollen, kommt nur einer dieser EAs zum Tradeserver des Brokers durch. Die Versuche der anderen sind dann wahrscheinlich eine Millisekunde später dran und bekommen die Fehlermeldung zurückgemeldet, dass der Trader Server "busy" ist, die Leitung also belegt ist.

Wie ein EA mit einer solchen Fehlermeldung umgeht kommt ganz darauf an, wie er programmiert ist. Wenn Sie als Auftraggeber einen EA programmieren lassen, dann müssten sie sich auch am besten überlegen, welche Umgangsweise bei solchen Fehlern für Ihre Strategie die passende ist: z.B. kann man dem EA über entsprechende Gestaltung des Codes sagen, "okay, wenn ein Fehler kommt, dann

  • probiere es einfach so lange erneut bis das Signal wirklich ausgeführt ist; 
  • oder probiere es nur ein einziges Mal, und wenn dieses eine Mal eine Fehlermeldung kommt, oder diese spezielle Fehlermeldung generiert wird, dann lösche das Signal;
  • oder aber etwas in zwischendrin, dass z.B. 60 Sekunden lang oder für 50 Kursticks Neuversuche unternommen werden.

Das ist alles programmierbar und kann für jeden einzelnen der möglichen MT4-Fehlermeldungen auch separat programmiert werden. Damit wird der Umgang mit Ausführungsfehlern wirklich ganz speziell für Sie, Ihre Vorlieben und Ihr Handelssystem speziell abgestimmt.

Die am häufigsten vorkommenden Fehler sind

  • Trade-Kontext is busy, Leitung des MT4 zum Tradeserver des Brokers ist belegt (Fehler Code 146: "Trade context is busy.")
  • Der Preis hat sich zu stark seit Anfrage verändert (Fehler Code 135: "Price changed.")
  • Der Broker macht einen Requote (Fehler Code 138: "Requote.")
  • Es kann sein, dass nicht genügend Geld, nicht genügend Kapital für einen Deal vorhanden ist, insbesondere wenn Sie mit hohem Hebel arbeiten (Fehler Code 134: "Not enough money.")
  • Es kann sein, dass das Symbol für temporär oder dauerhaft vom Broker gesperrt, z.B. nach Fälligkeit eines Futures (Fehler Code 133: "Trade is disabled.")
  • Es kann sein, dass ein falsches Handelsvolumen errechnet oder eingestellt wurde, dass es zu klein oder zu groß ist oder auf zu viele Nachkommastellen gerundet wurde (Fehler Code 131: "Invalid trade volume.")
  • Rundungsfehler können auch für Stop- und Limit-Preise geschehen und eine Fehlermeldung auslösen (Fehler Code 130: "Invalid stops."). Dieser Fehler Code wird auch bei zu engen Stop- oder Limitabständen ausgegeben.

Diese Auflistung benennt nur die häufigsten Fehlerquellen. Weitere sind möglich, siehe diese Auflistung in der MQL4-Dokumentation. Möglichst viele dieser Szenarien müssen bedacht werden. Denn ein EA ist grundsätzlich nur so schlau wie er programmiert ist. Nur wenn er mit solchen Fällen bestückt wird, weiß er, wie er damit speziell umzugehen hat.

Genau diese Szenarien kommen in der Realität ganz einfach vor. Im Strategietester kommen sie dagegen nicht vor. Das führt zu Abweichungen zwischen dem theoretischen Backtest und der wirklich erzielten Performance.

Daher ist es auch so wichtig, in regelmäßigen Abständen die Funktionalitäten und Deals des Expert Advisors zu prüfen und am Rechner zu sein. Es gilt also auch aus dieser Sicht:

Ein EA ersetzt den Trader nicht. Er macht aber einen ernsthaften, guten Trader zu einem noch besseren Trader.

Auf beste Deals
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

Heute ist NFP-Freitag: was Sie vor dem Live-Schalten eines Expert Advisors über Ausführungsqualität und „Slippage“ wissen sollten

Stellen Sie sich vor: es ist der erste Freitag im Monat, 14:29:59 Uhr deutscher Zeit. Der Markt scheint wie eingefroren, erstarrt wie die Kartoffelsuppe im Kühlhaus. Der Sekundenzeiger – langsamer als sonst - springt um und ....

es ist Punkt 14:30 Uhr und der Markt bricht in völlig irrationale Bewegungen aus. Ihr Herz pocht, Blutdruck und Puls angeschwollen. Sie möchten unbedingt auf den Kursausbruch aufspringen, in der Hoffnung auf eine Trendfortsetzung; aber die Ausführung Ihrer Order scheint nicht zu klappen. Ein erstes Mal, ein zweites Mal, ein drittes Mal.

Endlich, als Stunden empfundene 10 Sekunden später gibt Ihr Broker Ihnen endlich Ihren Ausführungskurs – und Ihr Mut sinkt in Ihre Knie, denn er ist ganze 27 Punkte schlechter als erhofft...

Kommt Ihnen das bekannt vor? Waren Sie selbst schon in einer solchen Situation? Dann wissen Sie aus eigener Erfahrung um das Problem der Ausführungsqualität. Sie möchten eigentlich zum aktuellen Kurs handeln, bekommen aber einen ganz anderen, oft schlechteren Kurs für Ihren Dealeinstieg.

Diese Situationen kommen immer wieder vor, teils erwartet (geplante, wichtige Veröffentlichungen von Wirtschaftsdaten wie z.B. die Non-Farm-Payrolls, der monatliche vielbeachtete US-Arbeitsmarktbericht ohne den Agrarsektor - wie oben im Beispielszenario erwähnt), teils unerwartet (überraschende Zentralbank-Entscheide, Wahlausgänge, Weltnachrichten, Flash-Crashes usw.). Insbesondere wenn Sie trendfolgend handeln möchten, wird Ihnen diese Besonderheit des Marktes immer wieder ein Schnippchen schlagen.

Viele Trader verschreiben sich Trendfolge-Strategien. Diese sind oftmals mit ganz kurzfristiger Haltedauer ausgelegt, so genannte Scalping-Techniken. Beispiel: eine Widerstandslinie im Dax läge bei 13.000 Punkten. Der Markt, also im Endeffekt viele Marktteilnehmer, liegen auf der Lauer. Wird die magische Marke nach oben hin durchbrochen, springen Börsenhändler, ob per Mensch oder Maschine, auf den Ausbruch aus.

Das verzerrt den Markt kurzfristig. Dies wirkt sich so aus, dass plötzlich fast keine Verkaufsquoten mehr vorhanden sind. Der Kurs springt nach oben wo er vorher noch fast planbar Tick für Tick, Sprosse für Sprosse langsam aber sicher erklomm.

All dies geschieht in Windeseile, wie ein Blitz.

Selbst wenn wir Expert Advisors (EAs) für solche Marktsituationen verwenden, sind wir dennoch in der Regel um Millisekunden zu spät dran, um wirklich vernünftige Kurse zu erhalten. Hedgefonds und Banken haben sich darauf spezialisiert, in solchen Situationen die schnellsten am Markt zu sein: mit buchstäblich kürzeren und schnelleren Leitungen. Unsere WLAN-Verbindung mag schnell erscheinen, sie ist aber "nur" ein für öffentliche Straßen zugelassener Porsche Carrera statt ein rasanter Formel-1-Flitzer.

Dieses Phänomen nennt sich gemeinhin „Slippage“. Es führt dazu, dass Sie einen Kurs anfragen (z.B. 13.001) aber einen schlechteren Kurs als Ausführung erhalten (z.B. 13.002, 13.005 oder noch höher). Das klingt nach teilweise keinem großen Unterschied, kann sich aber aufsummieren über den Verlauf der Zeit.

Generell gilt: je höher die Tradingfrequenz Ihres Trading-Systems ist, also je öfter sie Deals eröffnen und wieder schließen, desto ungünstiger wirkt sich die Slippage auf Ihre echte Trading-Performance aus – was übrigens in Backtests nicht abgebildet wird und somit nicht ersichtlich ist.

Wenn Sie Trendfolge-EAs backtesten, empfehle ich, den Strategietester im MetaTrader (gilt für MT4 wie MT5) mit einem deutlich höheren Spread einstellen als den, den Sie üblicherweise von Ihrem Broker erhalten.

Traden Sie beispielsweise in normalen Marktverhältnissen mit 0,2 Pips Spread in EURUSD (üblicher Spread z.B. bei direktbroker-fx.de), stellen Sie den Spread im Strategietester auf 1 Pip, 2 Pips oder noch höher ein. Dazu müssen Sie im Strategietester im Feld Spread den Wert 10 bzw. 20 eingeben, da MT4 in Punkten statt Pips denkt. 1 Punkt ist bei 5-stelliger Quotierung der Unterschied zwischen 1,18000 und 1,18001, was in der Forex-Terminologie 0,1 Pips bedeutet.

Aufgepasst: heute ist ein solcher NFP-Freitag. Es ist zwar nicht der erste Freitag im Monat, aber es steht dennoch die Veröffentlung der "Non-Farm-Payroll" Arbeitsmarkt-Schätzung des US-Arbeitsministeriums an.

Denn die Termin-Regel für die NFP-Veröffentlichung lautet: der dritte Freitag nach der Woche, die den 12. Tag des Monats beinhaltet. Der 12. November war ein Sonntag. In USA gilt der Sonntag als erster Tag der Woche, nicht der Montag wie international Standard. Daher ist der 24.11. der erste, der 1.12. der zweite und der 8.12. der dritte Freitag nach Vollendung der Woche, die in USA am 12.11. begann.

Für heute um 14:30 Uhr (MEZ) wünsche ich Ihnen alles Beste für Ihr Trading
Cristof Ensslin von mindful FX, Ihrem EA-Programmierer

MQL4-Intensivkurs – EA-programmieren lernen: neuer Termin

Endlich ist es soweit. Ich freue mich, Ihnen einen neuen Termin für den MQL4-Intensivkurs - EA-programmieren lernen mitteilen zu können:

29.-30.1.2018

Montag, 29.1.2018, von 9:30 Uhr bis 17:30 Uhr und Dienstag, 30.1.2018, von 9:00 Uhr bis 17:00 Uhr werde ich mich intensiv darum kümmern, Ihnen eine praxistaugliche MQL4-Programmier-Anleitung zu bieten. Die Anmeldung ist ab sofort möglich auf der Website www.mindfulfx.de/mql4intensivkurs.

Der Workshop findet in Stuttgart statt und ist für Sie gedacht, wenn Sie das Programmieren von EAs lernen möchten, aber noch keinerlei oder erst wenig Programmierkenntnisse haben.

Vor ca. sechs Jahren habe ich selbst das EA Programmieren in der Programmiersprache MQL4 für MT4 aus Trader-Sicht gelernt. Diese Erfahrung kann ich Ihnen nun weiter geben.

Der Kurs [hat] meine Erwartungen mehr als erfüllt. Die strukturierte Vorgehensweise, der klare Aufbau sowie der Ablauf des Kurses haben mir gefallen. Theorie und Praxis wechselten sich auflockernd und zielführend ab.
Kurz um:
Der Einstieg in die EA-Programmierung ist mit Hilfe dieses Kurses gelungen.
— Workshop-Teilnehmer August 2017

Wir gehen dabei nicht so sehr auf die Theorie des Programmierens ein, denn dies ist kein Informatik-Universitätskurs. Sie sind Trader und wollen einfach Ihre Strategie-Ideen schnell und einfach selbst automatisieren können - für Tests und das Live-Trading.

Dieser Kurs, MQL4-Intensivkurs – EA-programmieren lernen, ist dafür gedacht, um Ihnen die Grundlagen dafür zu vermitteln.

Um die persönliche Intensiv-Betreuung und damit eine steile Lernkurve zu garantieren, ist das Teilnehmer-Kontingent strikt auf 8 Plätze beschränkt. Melden Sie sich hier an, um am Workshop teilnehmen zu können.

Ich freue mich auf Sie
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

BacktestTool: mehrere EA-Backtests aus MT4 verknüpfen und analysieren

Heute muss ich Ihnen mal etwas zeigen, was mich selbst sehr begeistert.

Und zwar geht es ums Backtesting von EAs. Wie Sie aus dem MT4-Strategietester wissen, wird dort in der Equity- bzw. Kontostands-Grafik als X-Achsen-Punkte jeder geschlossene Deal genommen. Das hat Vor- und Nachteile. Was mich daran aber immer gestört hat, ist, dass es schwierig zu fassen war für mich, welche Deals welchem Zeitraum zuzuordnen waren.

Ein weiteres Problem in MT4: ich kann mir immer nur einen Backtest auf einmal ansehen. Es wäre doch aber ungemein hilfreich, die aggregierte Performance mehrerer EA-Strategien (oder auch des gleichen EA's auf mehreren Symbolen) bequem zu ermitteln, oder?

Für beide Probleme habe ich jetzt eine Lösung: das BacktestTool. Ich bin selbst ganz begeistert davon!

Ein Bild sagt mehr als tausend Worte; ein Video sagt mehr als tausend Bilder:

Wie kam es dazu?

Nun, unser guter Kunde Hans-Günter K. fragte, ob es so etwas schon auf dem Markt gibt. Mir war dergleichen nichts bekannt. Unser Programmierer René Balke hatte aber schon mal ein Trading-Journal in Java programmiert, das ähnliche Ziele für das Live-Trading verfolgte. 

1 und 1 zusammengezählt - und schwuppdiwupp war die Idee für das BacktestTool geboren.

Einige Zeit des Programmierens und Testens und Verbesserns später bin ich nun extrem froh über das Ergebnis - wie Sie im obigen Video sicher sehen konnten. Die beiden Probleme sind gelöst:

  1. Zeitlich in Tagen dargestellte Kontostands-Kurve
  2. Möglichkeit, mehrere Backtests zu aggregieren, sprich zu verknüpfen und gemeinsam oder getrennt zu analysieren.

Klasse, oder?

Es kommt aber noch besser: das BacktestTool ist ab sofort zum Kauf erhältlich, auch für Sie.

Klicken Sie einfach auf einen der BacktestTool-Links in diesem Blog-Artikel, um mehr zu erfahren.

Auf noch bessere Erkenntnisse aus dem MT4-Strategietester
Ihr Cristof Ensslin von mindful FX, Ihrem EA Programmierer.