MT4- / EA-Videos

Webinaraufzeichnung: EA programmieren in 60 Minuten (oder ein paar Minuten mehr…)

Letzte Woche Dienstag, 2.10.2018, hatte ich die Ehre, bei JFD Brokers in ihrem Oktober 2018 - JFD Live Event - Regelbasierte Trading Strategien und Algos im Einsatz zu Gast sein zu dürfen. Im Webinar habe ich live zum Zuschauen und Mitmachen die Zuschauerschaft ins EA-programmieren für MT4 eingeführt.

Wir haben eine Ausbruchsstrategie nach meiner Wert-gebenden Trading-Philosophie aufgesetzt. Fertig wurden wir dabei auf der Buy-Seite. Gerne noch dazu programmiert hätte ich die Sell-Seite sowie eine Schleife, die die Range-Begrenzungen von nicht nur der Vorkerze, sondern mehreren Vorkerzen ermittelt. Dazu hatte die Zeit aber am Ende nicht ausgereicht, vielleicht können wir’s beim nächsten Mal nachholen.

Wie einfach Sie das EA-Programmieren lernen können, sehen Sie hier selbst in der Aufzeichnung des Webinars, kostenfrei in voller Länge:

Den gemeinsam programmierten Expert Advisor MQL4-Code gibt’s ab sofort hier und heute kostenfrei zum Download, unter dem wichtigen HAFTUNGSAUSSCHLUSS UND RISIKOHINWEIS, dass dieser EA keine Handelsempfehlung darstellt, sondern lediglich zur Veranschaulichung des MQL4-Programmierens und somit nur für Lernzwecke des EA-Programmierens dient. Nutzen Sie ihn ausschließlich auf Demo-Konten!

Webinar-EA per Email bestellen

Bitte senden Sie mir den gemeinsam im Webinar vom 2.10.2018 entwickelten MQL4-Code für den MT4-EA an folgende Email-Adresse:

    Freitagsmails mit wichtigen und spannenden Themen rund ums EA-Programmieren und Trading gewünscht (kostenlos und jederzeit abbestellbar):

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

    Powered By ConvertKit

    Danke für Ihr Interesse!

    Viel Spaß und Erfolg beim selbst Programmieren und Traden
    Cristof Ensslin von mindful FX, Ihr EA Programmierer

    PS: wenn Sie das EA Programmieren von Grund auf lernen möchten, lege ich Ihnen unseren MQL4-Intensivkurs - EA-programmieren lernen vom 29.-30. Oktober 2018 in Stuttgart wärmstens ans Herz. Alle Infos hier: https://www.mindfulfx.de/mql4intensivkurs/

    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

    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

    Meine Einschätzung zu den passenden Marktphasen für das Recovery Zone System

    In den letzten beiden Blogposts ging es um das so genannte Recovery Zone Prinzip, auch Zone Recovery oder Hedge Zone genannt, im Trading mit oder ohne Expert Advisor (EA). Es verspricht, jeden Deal mit Gewinn schließen zu können.

    Zunächst zeigte ich Ihnen die Vorgehensweise selbst (Recovery Zone verspricht jeden Deal mit Gewinn zu schließen). Darauf folgte die letztwöchige Vorstellung eines Spreadsheets, mit Hilfe dessen Sie Chancen und Risiken (ja, die gibt es - die Recovery Zone ist kein heiliger Gral!) sowie die einzelnen Lotsizes der Deal-Serie schnell und zuverlässig berechnen können (Recovery Zone Spreadsheet: Lotsize- und Risiko-Berechnungen schnell durchführen).

    So weit, so gut. Wie bei allen EAs bzw. Tradingmechanismen der Fall, ist auch das Recovery Zone Prinzip kein Selbstläufer. Es muss gezielt in bestimmten Marktphasen eingesetzt werden, um Erfolg zu bringen. 

    Wir erinnern uns: durch den Richtungswechsel am jeweils gegenüber liegenden Ende der Recovery Zone sind wir quasi unabhängig davon, in welche Richtung die Reise des Kurses im Endeffekt geht. Ob hoch oder runter, wir können in beiden Szenarien unser Gewinnziel erreichen. Dafür darf das Asset (z.B. EURUSD, Dax-CFD, Gold etc.) aber nicht innerhalb der Recovery Zone gefangen sein, weil wir sonst durch den ständigen Richtungswechsel Verluste ansammeln, die Lotsize erhöhen müssen und irgendwann das gesetzte Maximalrisiko erreichen.

    Um also die Wegstrecke in den Take-Profit-Abstand zurücklegen zu können, ohne vorher zu oft die Recovery Zone durchkreuzt zu haben, benötigt der Kurs ein Mindestmaß an Volatilität. Sehen wir uns fünf verschiedene Marktphasen an:

    Marktphasencheck für Recovery Zone EA

    #1: Kurs seitwärts bei niedriger, fallender Vola

    #2: Kurs seitwärts bei niedriger, nur leicht fallender Vola

    #3: Kurs tendiert aufwärts bei stark ansteigender Vola

    #4: Kurs seitwärts mit Swings, bei hoher, aber fallender Vola

    #5: Kurs tendiert abwärts bei leicht ansteigender Vola

    Fazit

    Das Recovery Zone Prinzip ist in einer ruhigen oder ruhiger werdenden, seitwärts laufenden Marktsituationen auf alle Fälle zu vermeiden. Wie volatil die Marktphase ist, haben wir dabei anhand der Average True Range (ATR) gemessen, die als Standard-Indikator im MetaTrader 4 und 5 mitgeliefert wird.

    Profit-versprechend ist das Trading mit einer Recovery Zone Dealserie in der Regel dann, wenn:

    • für die gewählten SL- und TP-Einstellungen der Systematik bzw. des EA's eine genügend hohe Volatiltät vorliegt
    • die Volatilität tendenziell ansteigt
    • ein klarer Abwärts- oder Aufwärtstrend mit stabiler oder steigender Volatilität vorliegt.

    Es folgt nächste Woche ein weiterer Artikel zum Thema Recovery Zone. Darin stelle ich Ihnen vor, wie dieser Handelsalgorithmus mittels EA für MT4 automatisiert werden kann. Ich zeige Ihnen unseren Recovery Zone-EA mFX-RecoveryZone, der übrigens all die Risikoberechnungen aus dem kostenlosen Spreadsheet von letzter Woche schon eingebaut hat und den Nutzer in eleganter Art und Weise vor dem ersten Trade entsprechend informiert. Seien Sie gespannt und klicken zum Lesen auf diesen Link!

    Alles Gute, bis nächste Woche
    Ihr Cristof Ensslin von mindful FX, Ihr 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

    DELUXE Version von DealTimer-EA öffnet und schließt täglich

    Neuer Katzenbesuch vor unserer Haustür

    Seit heute früh (ich schreibe diesen Artikel am Mittwoch, 29.11.) sitzt eine kleine Katze auf den Stufen unserer Haustür. Unsere eigenen Katzen haben sie schon interessiert beschnuppert. Sie selbst verhält sich sehr zutraulich und lässt sich lieb haben. Ein Wink des Himmels?

    So etwas lässt sich nicht planen. Was sich aber planen lässt, sind Deals.

    Handeln Sie nach einer Strategie, deren Erfolg davon abhängt, dass um eine bestimmte Uhrzeit ein Deal eröffnet wird und dann nach einer geplanten Haltedauer (oder SL, TP, Trailing Stop oder Break-Even-Funktion) wieder geschlossen wird? Und das am besten täglich, ohne den Expert Advisor (EA) jeden Tag neu in Ihrem MetaTrader 4-Konto einstellen zu müssen?

    Zum Beispiel sagen Sie sich:

    Ich benötige einen EA, welcher nur zu bestimmten Zeiten in den Dax einsteigt. Beispielsweise 08:00 Uhr long oder short inkl. einstellbarer Lotgröße mit SL und TP setzbar, und das jeden handelbaren Tag, ohne dass man den EA neu einstellen muss.

    Dann darf ich Ihnen heute die Lösung, die DELUXE-Version unseres mFX-DealTimer-EA's vorstellen:

    Alle automatischen Funktionen der Basis-Version des mFX-DealTimer EA's sind vorhanden, plus zusätzlich:

    • täglich wiederholbare Dealeröffnung, optional mit Wochentagfilter
    • optionale Schließung der Orders zu einer bestimmten Uhrzeit (täglich, zu bestimmten Wochentagen oder einmalig)
    • Pending-Orders (Limit- und Stop-Orders) sind zusätzlich zu Buy oder Sell möglich
    • ein Trailing Stop kann eingerichtet werden
    • eine Break-Even-Funktionalität für den SL-Nachzug auf Einstandskurs kann individuell eingeschaltet werden.
    Also der EA ist sehr gut, genau das, was wir für die vier Setups suchen, bei denen wir aktuell auf 97% Trefferquote im DAX kommen.
    — Pre-Launch Käufer des EA's mFX-DealTimerDELUXE

    Vielleicht haben Sie ja ein ähnliches System, das Sie gerne punktgenau umgesetzt haben möchten, obwohl Sie sich auf dem Weg zur Arbeit, im Kundengespräch oder bei einer notwendigen Erledigung befinden.

    Wir haben uns ins Zeug gelegt den MT4-EA mFX-DealTimerDELUXE für Sie erschwinglich zu machen - für einen Bruchteil des Betrags, der für die individuelle Programmierung notwendig wäre, erhalten Sie unter folgendem Link detaillierte Informationen zum EA sowie Zugang zum Sofortdownload:

    mFX-DealTimerDELUXE

    Zwischenzeitlich ist das neue Kätzchen vor unserer Haustür wieder verschwunden - ist sie entgültig weiter gezogen oder wird sie uns wieder besuchen kommen? Wer weiß...

    Ihnen viel Erfolg bei Ihren Trading-Vorhaben
    Cristof Ensslin von mindful FX, Ihrem EA Programmierer

     

    Der Nutzen eines Deal-Timer EA's

    Sie haben eine Strategie im Sinn, die auf Tagesschlusskursen basiert. Diese Strategie möchten Sie nicht automatisieren, da es einige Faktoren im Entscheidungskatalog gibt, die entweder auf Ihrer Erfahrung und Ihrem Gefühl für die zukünftige Kursentwicklung basieren, oder die nicht oder nur sehr schwierig zu automatisieren sind – aus welchem Grund auch immer.

    Vielleicht kommt noch hinzu, dass Sie lange Arbeitszeiten haben. Zum Dax-Schluss um 17:30 Uhr sind Sie noch nicht in der Lage, eine Trading-Entscheidung zu treffen, vielleicht weil Sie noch mitten in der Arbeit stecken, beim Sportverein aktiv sind oder die Familie priorisieren. Alles ehrenwerte Gründe.

    Dann, zum Handelsstart um 9 Uhr – also zum echten Xetra-Handelsstart, nicht zum Start der Dax-CFD-Quotierungen – sind Sie wieder beschäftigt, durch Fahrt zu Kunden, Termine mit dem Chef oder ähnlichem. Auch hier liegen starke Gründe vor.

    Alles Gründe, aber keine Entschuldigung!

    Denn für eine solche Situation gibt es Lösungen. Eine davon möchte ich Ihnen heute vorstellen. Auf Anregung eines Kunden hin haben wir einen simplen, leicht zu bedienenden Expert Advisor (EA) für MetaTrader 4 (MT4) erstellt, der als Zeitgeber für Ihre Orderplatzierung dient. Nichts voll automatisiertes also, sondern lediglich ein Deal-Timer, mit dessen Hilfe Sie einen geplanten Deal zur gewünschten Uhrzeit Ihrem Broker übermitteln.

    Ein Beispiel: Nachts vor dem Schlafen gehen, sagen wir um 21 Uhr, sagt Ihnen Ihre Strategie, dass Sie zum Handelsstart um 9 Uhr deutscher Zeit den Dax long gehen sollten. Der Markt für den Dax-CFD-Kontrakt Ihres MT4-Brokers ist derzeit aber geschlossen oder illiquide. Sie wollen zur Sicherheit und der besseren Nachvollziehbarkeit halber nur während geöffnetem Referenzmarkt handeln – was meiner Meinung nach zu einem seriösen Tradingansatz beiträgt.

    Um 9 Uhr werden Sie aber an einem Meeting teilnehmen, im Flugzeug sitzen oder können schlichtweg vom Arbeitsplatz aus nicht traden.

    Kein Problem, Sie haben ja ab sofort Ihren EA mFX-DealTimer zur Hand.

    Entweder nach Ihrer obigen Handelsentscheidung um 21 Uhr oder aber sagen wir um kurz vor 7, wenn Sie morgens das Haus verlassen, aktivieren Sie den EA mFX-DealTimer in Ihrem MT4 auf ein Dax-Chart (z.B. DE30, GER30 o.ä.), indem Sie den EA aus dem Navigator-Fenster per Drag&Drop auf das gewünschte Chart ziehen. Dann stellen Sie ihn im Eigenschaften-Fenster im Reiter „Eingaben“ folgendermaßen ein:

    1. Bei Eröffnung ab (MT4-Zeitzone s. Marktübersicht) tragen Sie (sekundengenau) Datum und Uhrzeit ein, ab der der Deal an den Broker übermittelt werden soll. Achtung, es ist die Zeitzone der MT4-Zeit zu verwenden; es gilt also die Uhrzeit, die Sie im Fenster „Marktübersicht“ sehen.

    2. Im nächsten Feld Lotsize legen Sie die Anzahl der CFD-Kontrakte fest. Stellen Sie sicher, dass Sie eine Ihrem gewünschten Risiko entsprechende Lotsize verwenden und nicht übertraden. Wie viel Euro ein Kurs-Tick wert ist, ist je nach Anbieter unterschiedlich. Sie sehen dies in den Kontraktspezifikationen oder erfahren es direkt bei Ihrem Broker.

    3. Dann wählen Sie bei Buy oder Sell aus, ob Sie Long (Buy) oder Short (Sell) gehen möchten. Buy heißt, Sie setzen auf steigende Kurse. Eine Sell-Position gewinnt, wenn der Kurs bergab geht.

    4. In den Feldern SL in Punkten (0=aus) und TP in Punkten (0=aus) tragen Sie ein, mit welchem Abstand vom angefragten Kurs gerechnet die Stop-Loss- (SL) und Take-Profit- (TP) Kurse gesetzt werden sollen. Die Eingabe von 0 legt fest, dass kein SL oder TP vergeben wird.

      Ein Punkt ist übrigens im MT4-Jargon immer als letzte Nachkommastelle definiert. Sprich, wenn Ihr Broker den Dax-CFD mit einer Nachkommstelle quotiert, ist ein Punkt 0,1 Indexpunkte – also der Kursunterschied zwischen 13.000,0 und 13.000,1. Wenn Sie in diesem Beispiel 100 Indexpunkte SL vergeben möchten, müssten Sie bei SL in Punkten (0=aus) den Wert 1000 eingeben.

    5. Bei Maximale Slippage in Punkten geben Sie vor, welche Ausführungsabweichung vom angefragten Kurs Sie akzeptieren würden. Wenn Sie in unserem Beispiel also eine Buy-Order öffnen möchten und der auslösende Kurstick einen Ask-Kurs von z.B. 12.901,2 beinhaltet und Sie maximale 10 Punkte Slippage eingestellt haben, dann muss Ihr Broker Ihnen 12.902,2 oder tiefer als Ausführungskurs geben.

    6. Es kann vorkommen, dass die Order nicht übermittelt werden kann. Beispielsweise könnte der Broker kurzfristig nicht verfügbar sein, z.B. weil sein Tradeserver überlastet ist. Für einen solchen Fall dient Anzahl Dealeröffnungsversuche dazu, dass Sie einstellen können, wie viele Versuche unternommen werden sollen, um mit dem Broker die Order einzugehen. Pro Kurstick wird ein Versuch unternommen. Ein Zähler im EA hält fest, wie viele Übermittlungsversuche es schon gab und löscht den Expert Advisor vom Chart, sobald entweder die Buy- oder Sell-Position erfolgreich eröffnen werden konnte oder aber die durch Sie eingestellte maximale Anzahl der Dealeröffnungsversuche erreicht wurde.

    7. Im Feld Deal Kommentar können Sie die Order des DealTimer-EA's mit einem Kommentar versehen lassen. Dadurch können Sie im Terminal erkennen, welcher Deal von Ihrem Expert Advisor eröffnet wurde. Sie können das Feld auch leer lassen, ohne Auswirkungen auf die Dealausführung.

    8. Zum Schluss können Sie optional eine ID (Magic Number) vergeben. Die Magic Number ist eine EA-interne Identifikationsnummer. Sie ist nur dann relevant, wenn Sie einen anderen EA im gleichen MT4-Konto verwenden, der bestimmte, nach der Magic Number identifizierte Trades managt - z.B. einen Dealmanagement-EA, der Trailing-Stop-Loss, Break-Even-Funktion oder sonstige Closing-Regeln vorhält. Falls Sie nur den EA mFX-DealTimer verwenden, können Sie die voreingestellte Magic Number unverändert lassen. Oder Sie tragen hier als Glücksbringer Ihre Lieblingszahl ein!

    Nach Bestätigung der EA Eingaben durch Klicken von OK erscheint der EA Name rechts oben im Chart, gefolgt von einem kleinen Smiley-Symbol. Falls der Smiley nicht lacht, sondern die Mundwinkel nach unten gezogen hat, muss der Button AutoTrading im MT4 noch gedrückt, in den EA Eigenschaften (nochmal F7 drücken) im Reiter "Allgemein" das Häkchen vor "Life Trading zulassen" gesetzt werden, oder beides. Nur dann kann der EA handeln.

    Zu guter letzt stellen Sie sicher, dass der MT4, auf dem der EA nun aufgeschaltet ist, auf Ihrem Rechner dauerhaft läuft und Ihr PC mit dem Internet und somit dem Tradeserver des Brokers ständig verbunden ist. Sie lassen also entweder Ihren Computer laufen (ggfls. Bildschirm ausschalten, um Strom zu sparen und die Umwelt zu schonen) oder nutzen eine VPS-Installation des MetaTraders.

    Der mFX-DealTimer EA löscht sich automatisch vom Chart, wenn die Dealzeit gekommen ist und Ihre gewünschte Position erfolgreich eröffnet werden konnte. Der Experte stellt ebenso die Arbeit ein, wenn nach der eingestellten Maximalanzahl der Dealeröffnungsversuche (siehe Punkt 6) alle Orderübermittlungen mit Fehlermeldung abgebrochen wurden.

    Der echte Nutzen eines solchen Deal-Timer EA's liegt also darin, dass er Sie als hilfreiches Tool unterstützt. Insbesondere, wenn Ihre Tradingstrategie von manuellen Handelsentscheidungen und Eingriffen zu bestimmten Uhrzeiten abhängt, steht ein Zeitgeber-Expert Advisor wie dieser Ihnen als Heinzelmännchen während Ihrer Abwesenheit zur Seite.

    Kann auch Ihnen das als nützliches Werkzeug dienen? Wenn ja, klicken Sie hier, um zur Verkaufsseite des MT4-EA's mFX-DealTimer mit allen Infos zu den verschiedenen Produktvarianten zu gelangen.

    Viel Erfolg bei Ihren Trades wünscht Ihnen
    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.

    Warum ist nach EA-Optimierung im MT4 Strategietester das Ergebnisfenster leer?

    Im folgenden MetaTrader 4 (MT4) Tutorial Video erhalten Antwort auf die Frage:

    Beim Optimierungsmodul habe ich auch noch ein Problem. Ich habe mal eine Komponete des MACD (die SMA Linie) optimieren lassen. Die Sache lief gut 20 Minuten, aber das Optimierungsdiagramm und das Auswertungsfenster waren leer. Vielleicht haben Sie eine Idee?

    Beste Erfolge für Ihr Trading wünscht Ihnen
    Cristof Ensslin und das mindful FX-Team

    Wie Sie einen einzelnen Expert Advisor (EA) ausschalten bzw. stoppen können.

    Im folgenden MetaTrader 4 (MT4) Tutorial Video erhalten Antwort auf die Frage:

    Ich habe immer zahlreiche Charts offen und lasse den EA bei verschiedenen Symbolen laufen. Wie kann ich einen einzelnen EA wieder ausschalten bzw. stoppen?

    Beste Erfolge für Ihr Trading
    Ihr Cristof Ensslin und das mindful FX-Team

    Installations-Anleitung für Skripte in MetaTrader 4 (MT4)

    Um ein Skript in MetaTrader 4 (MT4) zu installieren, folgen Sie den folgenden Schritten oder lassen Sie sich vom Video unten anleiten:

    1. Speichern Sie die Skript-Datei (mq4 oder ex4) auf dem Desktop Ihres Computers. Sie können die Datei beliebig umbenennen.
    2. Gehen Sie zum Desktop, wählen die Datei aus und kopieren sie in den Zwischenspeicher (z.B. mit Tastenkombination Strg + c).
    3. Öffnen Sie nun den MetaTrader, in dem Sie das Skript installieren wollen.
    4. Wählen Sie im Menü „Datei“ den Punkt „Dateiordner öffnen“ aus.
    5. Dort wählen Sie den zunächst den Unterordner „MQL4“, dann den Unterordner „Scripts“ und fügen die zwischengespeicherte Datei ein (z.B. mit Tastenkombination Strg + v).
    6. Schließen Sie nun den MetaTrader und öffnen ihn neu.
    7. Im Navigator-Fenster ist das Skript nun unter „Skripte“ zu finden.
    8. Wählen Sie das gewünschte Konto aus. Zum Testen und Erlernen, wie das Skript funktioniert und aktiviert wird, nutzen Sie unbedingt ein Demo-Konto. Wenn das Skript Deals eröffnen, ändern oder schließen soll, muss „AutoTrading“ (Schaltfläche in der oberen Symbolleiste) eingeschaltet sein.
    9. Es gibt (mindestens) drei verschiedene Wege wie Sie das Skript ausführen können. Das sehen Sie im Video des Blog-Artikels Mit einem Klick alle Deals schließen in MT4.

    Hier nun die Installations-Anleitung per Video:

    Beste Erfolge für Ihr Trading
    Ihr Cristof Ensslin und das mindful FX-Team

    Mit einem Klick alle Deals schließen in MT4

    Hier und heute wieder eine Antwort auf eine uns zugemailte Frage zu MetaTrader 4 und zur EA-Programmierung. Sie lautet in leicht anderen Worten ausgedrückt:

    Wie kann ich alle Trades in einem Moment closen?

    Wenn Sie alle offenen Deals in einem Konto auf einmal schließen möchten, bietet sich am besten an, ein Skript anzuwenden. Ein Skript in MT4 ist eine Sammlung von Anweisungen in der Programmiersprache MQL, so wie auch ein Expert Advisor (EA). Skripte werden im Gegensatz zu EAs jedoch nicht bei jedem Preistick durchlaufen, sondern lediglich ein einziges Mal zu genau dem Zeitpunkt, zu dem es manuell gestartet wird.

    Wir haben Ihnen ein solches Skript zur Verwendung im MT4 erstellt. Es wird Ihnen besonders dann dienlich sein, wenn Sie viele Deals auf einmal fahren, egal ob mit einem Hochfrequenz-EA oder im manuellen Handel. Weiter unten können Sie es kostenfrei herunterladen!

    Das Skript ist so programmiert, dass es alle Deals schließt, die im Moment der Ausführung geöffnet sind, und zwar ganz ohne Filterung: Marktorders (Buys und Sells) werden zum aktuellen Bid bzw. Ask geschlossen (unter Beachtung von Slippage = Ausführungsrisiko), Stop- und Limitorders werden gelöscht.

    Im folgenden Video sehen Sie, wie Sie das Skript, das wir mFX-AllesSchliessen getauft haben und das Sie unter dem Video kostenfrei downloaden können, im MT4 anwenden:

    Sie sehen, dass per Skript das Closen von vielen Deals auf einmal extrem schnell geht. Das macht Sie zu einem schlagkräftigeren MT4-Trader und kann Ihnen in hektischen Marktphasen sehr wertvoll werden - vielleicht ja schon morgen/übermorgen zwecks US-Präsidentschaftswahl?

    Hier nun für Sie der kostenfreie Download des MT4-Skripts mFX-AllesSchliessen, inkl. Lizenzvertrag und Dokumentation (mit Installationsanleitung), zusammen in einem ZIP-File.

    Auf beste Handelserfolge für Sie
    Ihr Cristof Ensslin von mindful FX

    StopLoss-Levels in MT4 bei unterschiedlichen Brokern

    Neulich bekam ich von einem unserer sehr geschätzten Skript- und Expert Advisor-Kunden eine immer wieder aktuelle Frage zum Thema Stop Loss übermitteln. Sie ist relevant für den automatisierten Handel mit EAs, für die Verwendung von Skripten sowie den manuellen Handel:

    Aus irgendeinem Grund kann ich den Stop-loss erst auf Break-even + 1 ziehen, wenn mein Trade bereits 7-8 Pips positiv ist. Dieses Problem habe ich erst seitdem ich ein neues Brokerkonto habe.

    Des Rätsels Lösung ist, dass verschiedene Broker unterschiedlich große SL-Mindest-Abstände zum aktuellen Marktkurs zum Zeitpunkt der Übermittlung des Stopp-Kurses verlangen. Der neue Broker unseres Kunden gibt ein höheres StopLoss-Level vor als sein vorheriger Broker.

    Damit Sie im MetaTrader 4 selbst herausfinden können, wie hoch dieses StopLoss-Level bei Ihrem MT4-Broker ist, habe ich Ihnen ein kurzes Anleitungs-Video aufgezeichnet; bitte den Play-Button klicken und ansehen:

    Viel Trading-Erfolg wünscht
    Cristof Ensslin und das ganze mindful FX-Team

    Neuer Backtest vorhanden für EA mFX-HochTiefAusbruch

    Am heutigen Samstag, 20.2.2016, haben wir für Sie den EURUSD-Backtest des EA's mFX-HochTiefAusbruch aktualisiert.

    Über die letzten 5 Monate haben wir diesen Expert Advisor im H1-Chart in einem MetaTrader 4-Demokonto des Brokers QTrade mit 10 Punkten (=1 Pip) Spread über drei Parameter optimiert. Die Einstellungen, die von den Standardeinstellungen abweichen sind:

    1. HochTief_Perioden 18 (statt 24)
    2. Puffer_Pips 1.0 (statt 0)
    3. Gegensignal_schliesst_Deal True (statt False)

    Danach folgte ein Backtest des EA's mit eben diesen Eingaben im visuellen Modus des Strategietesters des MT4. Hier das Ergebnis:

    Unter http://www.mindfulfx.de/HochTiefAusbruch erhalten Sie alle Infos sowie Download-Konditionen zum diesem Expert Advisor (EA) für MetaTrader 4 (MT4).

    Wie man einen Expert Advisor (EA) testet, der DLL-Import benötigt

    Einer unserer Kunden stand kürzlich vor der Herausforderung, dass sein Expert Advisor (EA) im Backtesting des MetaTrader 4 (MT4) keine Deals machte. Gleichzeitig lief er einwandfrei und wie gewünscht im Forward-Testing. Stehen Sie vor dem gleichen Problem?

    In folgendem Video erklären wir Ihnen, wie Sie den DLL-Import zulassen können, um im Prüfer-Modul einen EA zu testen, der auf einen Custom-Indikator (hier: Doda-Donchian) zurück greift, der den DLL-Import benötigt.

    Während das im Live-Trading und Forward-Testing sehr offensichtlich einzustellen ist, muss für den Prüfer eine kleine MT4-Grund-Einstellung verändert werden.

    Sehen Sie sich das Video für die Antwort zu dieser Frage an:

    Wir hoffen, wir konnten Ihnen Ihr Trading damit erleichtern und verbessern!

    Video-Serie jetzt vollständig verfügbar: EA selbst programmieren lernen

    Guten Morgen!

    Die auf vielfache Nachfrage und in diesem Jahr bis einschließlich September immer donnerstags veröffentlichten Videos des Schritt-für-Schritt Video-Tutorials EA Selbst Programmieren sind nun vollständig online. 

    Sie können all 36 Schritte als Playlist kostenfrei auf unserem YouTube-Kanal ansehen: http://www.youtube.com/playlist?list=PLDXVeQUwk-5AmzzRtjYghzenyeOw_Y68T

    Vielen Dank und beste Grüße
    Ihr Cristof Ensslin
    -Geschäftsführer der mindful FX UG (haftungsbeschränkt)

    PS: Wir freuen uns auf Ihr Feedback. Teilen Sie uns gerne Ihre Wünsche mit, wie wir das Video-Tutorial für Sie erweitern können.

    Wo ist das Preisfeld des Stochastic Oscillator in MT4?

    Dieses Video beantwortet die Forums-Frage:

    "Hallo liebe Trader, kennt jemand einen Stochastic Oscillator Indikator mit Preisfeld?

    Hintergrung meiner Frage ist: auf meinem iphone habe ich MT4 mit einem Stochastic Oscillator bei dem ich das Preisfeld (close/close oder low/high) auswählen kann, der [Windows-] MT4 hat nur einen SO ohne Preisfeld."