Indikator

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

Launch: EA für MA-Kreuzungen ab heute im Sofortdownload erhältlich

Ab heute gibt es einen neuen Expert Advisor (EA) für MetaTrader 4 (MT4) bei uns im Shop: den mFX-MAXingPro.

Es handelt sich dabei um eine professionelle, funktional sehr weit entwickelte und flexible Version des mFX-MAXing, den Sie vielleicht schon von unserer Video-Serie EA Selbst Programmieren kennen. Allerdings ist die Pro-Version deutlich stabiler programmiert und auch Multi-Deal-fähig.

Außerdem verfügt der ab 95 EUR im Sofort-Download erhältliche Trading-Roboter über viele Einstellungsmöglichkeiten, unter anderem:

  • einschränkbare Handelszeiten,
  • optionale Signalumkehr (Short-Einstieg bei bullischer und Long-Einstieg bei bärischer MA-Kreuzung),
  • Sie entscheiden, ob auf Schlusskurs-Bestätigung gewartet werden soll oder ein Kreuzungs-Signal schon innerhalb der laufenden Kerze gültig ist.

Zudem sind (schon fast übliche) Dealmanagement-Funktionen wie Stop Loss (SL), Take Profit (TP), Trailing-Stop (TS) und Break-Even-Funktionalität (BE) eingebaut. Sie können eine feste Lot-Anzahl eingeben oder die Lotsize nach Kontostand/Equity und Risiko pro Deal automatisch ermitteln lassen.

Es stehen Signal-Benachrichtigungsmöglichkeiten wie Push-Nachricht aufs Handy, Email und Pop-Up-Fenster oder Sound zur Verfügung. Auch kann der EA auf Wunsch die ermittelten Signale als Pfeile ins gewählte Chart einzeichnen.

Dieser Expert Advisor ist nicht für Sie geeignet, wenn Sie ein System suchen, das immer und ganz von alleine Gewinne macht. Handel nach MA-Kreuzungen funktioniert je nach Einstellung des EA's in manchen Marktphasen sehr gut und in anderen weniger gut.

Sie müssen sich immer bewusst bleiben: es ist und bleibt Aufgabe des Traders, die richtige Marktphase und die richtigen Parameter-Einstellungen für dieses Modell zu finden. Daher gibt es in den EA Eingaben vielfältige Möglichkeiten; darunter auch die oben schon erwähnte Option, zwischen trendfolgender und konträrer Umsetzung der Signale hin und her wechseln zu können.

Wenn Sie also einen EA als Werzeug zur schnellen, präzisen und emotionsfreien Umsetzung Ihrer MA-Kreuzungs-Strategie sehen und realistische Renditeerwartungen wahren, kann der MT4-EA mFX-MAXingPro Sie auf die Erfolgsspur bringen.

Ihnen alles Gute, welche Strategie Sie auch immer verwenden
Ihr Cristof Ensslin von mindful FX, Ihrem EA Programmierer

Wo ist Rate of Change Indikator im MetaTrader?

Bis vor kurzem suchte ich vergeblich im MetaTrader 4 den Indikator "Rate of Change" oder auch "RoC" genannt. Dieser soll einfach die prozentuale Abweichung des aktuellen Kurses von vor x Perioden darstellen. 

Die mathematische Formel lautet:

RoC = ( aktueller Kurs / Referenzkurs - 1 ) * 100

Beispiel EURUSD, Tages-Chart (D1 in MT4), 14 Perioden: wenn EURUSD vor 14 Tagen bei 1,19090 stand und jetzt aktuell bei 1,19953 liegt, wird für die RoC ganz einfach gerechnet:

Also für unser Beispiel: 

RoC = ( 1,19953 / 1,19090 - 1 ) * 100 = 0,7247 (gerundet auf 4 Nachkommastellen).

Heißt zu gut deutsch, dass der EURUSD jetzt gerade 0,7247% höher steht als der Schlusskurs vor 14 Tagen.

Das ist ein schöner, einfacher, um den 0-Wert oszillierender Indikator, um einen Hinweis auf die Trendrichtung zu bekommen. Ich benutze ihn gerne im gleichen Chart mehrfach, z.B. einmal mit 10, einmal mit 38 und einmal mit 52 Perioden. 

Mit der mehrfachen Betrachtung kann ich Zufälligkeiten reduzieren und erhalte einen besseren Überblick, ob es sich wirklich um einen soliden Aufwärts- oder Abwärtstrend handelt. Dazu müssten alle drei RoCs auf der selben Seite der 0-Linie sein.

Wo ist nun aber der Indikator Rate of Change oder RoC im MetaTrader?

Zwar bin ich auf Foren fündig geworden und könnte diesen Indikator auch selbst programmieren in MQL4, aber dann handelt es sich ja immer um einen so genannten Custom-Indikator, dessen Abruf in einem Expert Advisor (EA) länger dauert als die eingebauten Indikatoren.

Ich konnte es einfach nicht fassen, dass ein solch einfacher, auch durchaus üblicher Indikator, nicht im MT4 vorhanden ist. Also bin ich auf die Suche durch die Code-Files der im MetaTrader eingebauten Indikatoren gegangen - und siehe da: wer suchet, der findet!

Darf ich vorstellen: Momentum.

Der Momentum-Indikator ist im MetaTrader untern den Oszillatoren zu finden. Wenn wir ihn öffnen, sehen wir schnell, dass das Momentum um die 100-Linie hin und her schwankt.

RoC ist um die 0-Linie zentriert, Momentum um die 100-Linie. Offensichtlich ein Unterschied, oder?

Ja und nein. Die Berechnung des Momentum ist ganz ähnlich wie die des RoC und geht wie folgt:

Momentum = ( aktueller Kurs / Referenzkurs ) * 100

Also für unser Beispiel: 

( 1,19953 / 1,19090 ) * 100 = 100,7247 (gerundet auf 4 Nachkommastellen), siehe auch der Chart-Screenshot rechts, den Sie durch Klicken vergrößern können.

Mathematisch wird einfach die Konstante '-1' weggelassen. Das führt rechnerisch dazu, dass Momentum um die 100, während RoC um die 0 oszilliert.

100,7247 im Momentum heißt dann ebenfalls wie oben im RoC, dass der derzeitige Kurs 0,7247% höher liegt als der Schlusskurs vor 14 Tagen.

Ansonsten ist Momentum aber exakt das gleiche wie die Rate of Change - und umgekehrt!

Nun kann ich also auch im MetaTrader meine EAs mit einem eingebauten, schneller und einfacher abrufbaren Indikator versehen. Dazu nutze ich einfach die iMomentum-Funktion.

Für unser 14-Tage-Momentum im aktuellen Chart wäre im MQL4-Code eines Expert Advisors also folgender Abruf zu erfolgen:

double aktuellerMomentum = iMomentum ( Symbol() , PERIOD_D1 , 14 , 0 , 0 ) ;

Feine Sache. Glauben Sie mir: als ich die Gleichheit von Momentum zum Rate-of-Change entdeckte, habe ich fast einen Luftsprung gemacht. Daher wollte ich dies unbedingt mit Ihnen teilen.

Ihnen die allerbesten Wünsche und erfolgreiche Trades
Cristof Ensslin von mindful FX, Ihrem EA Programmierer

Warum Sie programmieren lernen sollten

Das Informationszeitalter hat Einzug gehalten.

Eine Flut von Daten und Informationen ist heutzutage verfügbar, wie es sie noch nie gegeben hat.

Wie sortieren Sie all diese Daten, um nützliche Informationen zu erhalten, um diese zu Wissen, Können und Weisheit umzuwandeln?

Das Zeitalter der Roboter macht es notwendig, Maschinen effektiv mitteilen zu können, was sie zu tun haben. Angefangen mit digitalen Anzeigen und digitaler Steuerung an Tankstellen und Zapfsäulen, über elektronische Steuerung des Zugverkehrs oder der Straßenführung, bis hin zum eigenen Computer zu Hause, zur Brot-Backmaschine in der Küche und Staubsaug-Roboter auf dem Fußboden – Daten werden erfasst, verarbeitet und zu höchst möglichem Nutzen verwandelt.

Die elektronische Vielfalt breitet sich in mehr und mehr Bereiche des Lebens aus. So wie vor 200 Jahren die Industrialisierung nicht aufzuhalten war, ist heute die Digitalisierung nicht mehr zu bremsen. Das ist eine Tatsache, der wir uns stellen müssen, ob wir sie mögen oder nicht.

Wie wir damit umgehen, können wir aber selbst beeinflussen. Wir können darüber schimpfen oder sie in den Himmel hoch loben, wir werden aber irgendwie darauf reagieren müssen.

Wollen wir nun entweder auf der Seite sein, die alles als gegeben akzeptiert, was andere damit produzieren? Oder wollen wir selbst ein Teil der Chancen beeinflussen, den das Informationszeitalter mit sich bringt?

Wie klein auch immer mein eigener Einfluss auf die Gesamtentwicklung sein mag, ich möchte lieber Mit-Gestalter als Nur-Verbraucher sein.

Auf welcher Seite wollen Sie stehen?

Mitgestalten kann ich aber nur, wenn ich mich in die digitale Welt hineindenke und entsprechende Fähigkeiten lerne.

Als Kind musste ich laufen lernen, danach Fahrrad fahren und dann ein Auto steuern. Für meinen Beruf (Bankkaufmann) lernte ich zunächst die Grundrechenarten, dann Multiplikation und Division, danach dann Algebra, Geometrie und Kurvendiskussion, und danach Finanzmathematik. Alles Schritt für Schritt.

Wenn ich ein konstruktiver Teil der Digitalisierung sein möchte, muss ich Programmieren lernen.

Programmieren bedeutet, einem Computer mitteilen zu können, was dieser für mich erledigen soll.

Auch hier gibt es für Einsteiger mehr oder weniger geeignete Mittel und Wege anzufangen.

Ich bin selbst Trader. Ich kannte mich also schon mit der Markt-Terminologie und vielen Fachbegriffen und Besonderheiten der Börsenwelt aus. Daher war der Einstieg ins Programmieren im Bereich Trading leichter als wie wenn ich einen Tempomat in der Autoelektronik oder ein Schachcomputer hätte programmieren sollen.

Dazu kommt, dass es eben im Tradingbereich eine Programmier-Sprache gibt, die es Programmier-Anfängern vergleichsweise einfach macht, bewährte Trading-Regeln in einen „Handels-Roboter“ umzuwandeln.

Diese Programmiersprache ist MQL4. Sie wird dazu verwendet, und nur dazu verwendet, auf der sehr weit verbreiteten Trading-Plattform MetaTrader 4 (MT4) Trading-Vorgänge zu automatisieren. 

Wenn ein Vorgang nur ein einziges Mal bei manuellem Abruf ausgeführt werden soll, nennt sich das im MT4 ein „Skript“. Soll der gleiche Vorgang bei jedem Kurstick durchlaufen werden, entsteht durch die Programmierung ein „Expert Advisor“, kurz „EA“ genannt. Mit „Indikatoren“ können Kursdaten mathematisch umgewandelt und in Signalgeber verwandelt werden.

Mit Hilfe von MQL4 kann jeder, also auch Sie, solche Programme für die Verwendung in MT4 schreiben. 

Sind Sie selbst Trader? Kennen Sie sich mit Bid und Ask sowie Buy und Sell und Stop- und Limit-Orders aus? Und wollen Sie sich den (Lern-) Herausforderungen unserer heutigen Zeit stellen und „up-to-date“ bleiben, sprich mit der Gesellschaftsentwicklung wachsen und entsprechend nützlich bleiben für Kunden, Arbeitgeber und vor allem sich selbst?

Dann liegt das Erlernen von MQL4 und schreiben erster, kleiner Programme für MT4 am nächsten. Der Einstieg ins Programmieren ist dann geschafft. Weitere Programmiersprachen zu lernen und andere Verwendungsmöglichkeiten für das Programmieren zu finden wird dann in der Zukunft viel leichter sein.

Ich habe dafür einen Workshop kreiert, der speziell Tradern dabei hilft, das Programmieren zu lernen. Auf dieser in der heutigen Zeit schon fast unverzichtbaren Fähigkeit können Sie dann weiter aufbauen. 

Neben dem erfolgreichen Einstieg ins Programmieren haben Sie weitere, offensichtliche Vorteile: Sie sparen sich potenziell viel Geld, das Sie ansonsten für käufliche EAs oder einen EA-Programmierservice aufwenden würden. Geld, das Sie dann lieber im Trading vermehren oder für Ihr liebstes Hobby einsetzen können.

Bill Gates sagt über das Programmieren:

"Lernen, Programme zu schreiben, dehnt Ihren Verstand aus und hilft Ihnen, besser zu denken, schafft eine Möglichkeit, über Dinge nachzudenken, was meiner Meinung nach in allen Bereichen des Lebens hilfreich ist."

Ich lade Sie dazu ein, sich hier über den MQL4-Intensivkurs - EA-programmieren lernen ausführlich zu informieren.

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