+49 (0)30 52 68 13 96 info@insidetrading.de
Investieren und Traden mit Python lernen – Das Testen einer ersten Handelsstrategie – Backtest Python

Investieren und Traden mit Python lernen – Das Testen einer ersten Handelsstrategie – Backtest Python

Analysetechniken

BITTE BEACHTEN SIE – DER API VON YAHOO FINANCE WURDE DAUERHAFT GESCHLOSSEN – ALS KOSTENFREIE ALTERNATIVE KÖNNEN SIE ALPHAVANTAGE ALS DATENQUELLE VERWENDEN – DIE DOKUMENTATION FINDEN SIE AUF DEREN SEITE

Unter Annahme der Grundsätze der technischen Analyse ändert sich das Verhalten von Marktteilnehmern nicht innerhalb kürzester Zeit. Daher können wir aus dem Verhalten in der Vergangenheit auf das in der Zukunft schließen. Genau diese Idee liegt den sogenannten Backtests zugrunde.

In Backtests überprüft man, wie eine bestimmte Handelsstrategie in der Vergangenheit abgeschnitten hätte. Ein Backtest ist keine Garantie dafür, dass sich ein Markt in Zukunft weiter genauso entwickelt, wie er es in der Vergangenheit getan hat. Er erlaubt einem lediglich zu verstehen, ob ein Ansatz erfolgreich sein kann und man in Folge mit Aktien Geld machen können. Wenn dies nicht der Fall ist, sollte man die Idee am besten nicht weiterverfolgen, da sie tendenziell nicht gewinnbringend sein wird.

Um den Prozess eines Backtests einmal beispielhaft zu präsentieren, wird im nachfolgenden Artikel der Moving-Average Crossover als Signal in Python erstellt. Zudem soll eine Klasse Portfolio ergänzend die Ergebnisse visualisieren.

Backtest einer Handelsstrategie in Python lernen – der Moving Average Crossover (Golden Cross)

Der Moving-Average-Crossover ist wahrscheinlich eine der bekanntesten Trading-/ Investitionsansätze der technischen-Analyse. Dabei wird versucht, die Verluste zu beschränken und die Gewinne weit laufen zu lassen und so einen positiven Erwartungswert zu erzeugen. Mehr zur Intuition und der Funktionsweise des Signals können Sie in unserem Artikel zu Gleitenden Durchschnitten erfahren.

Ab hier wird angenommen, dass Sie sich mit der Idee des Signals vertraut gemacht haben, sodass wir uns nur noch auf den Code konzentrieren können. 

Beziehen der Kursdaten für einen Backtest – Python data access

Zunächst benötigen wir Kursdaten für die nachfolgende Datenanalyse bzw. Backtest. Diese beziehen wir wie in diesem Artikel beschrieben. Wir legen allerdings dieses Mal in unserem neuen Projekt eine entsprechende neue Klasse an, die aber im Prinzip den selben Inhalt hat, sodass man diese Features theoretisch auch vererben könnte. Wer sich für dieses Konzept interessiert, kann hier mehr dazu nachlesen. Dafür importieren wir zum Beginn des Programms wie üblich alle notwendigen Pakete:

from pandas_datareader import data as pdr

import fix_yahoo_finance # must pip install first

import numpy as np

import pandas as pd

import datetime

from conda.common import signals

from matplotlib import pyplot as plt

Daraufhin beginnen wir die Klasse zu erstellen, die uns dazu dienen soll die Daten zu beziehen und entsprechende Prozessschritte zu durchlaufen, die Ihnen die Evaluation Ihrer Strategie erlauben. Die Klasse, die dazu erstellt werden, soll ist die Klasse Quantitative Strategy. Diese bezieht im ersten Schritt die Kursdaten mithilfe des Pandas-Datareader. Die dafür notwendigen Parameter werden in der __init__ Methode übergeben und in Folge an das Objekt übergeben.

class QuantitativeStrategy():
    def __init__(self,stock_ticker,start_date,schnell,langsam):
        self.aktie = pdr.get_data_yahoo(stock_ticker,start_date).copy()
        self.schneller_ma = schnell
        self.langsamer_ma = langsam

Nachdem all diese notwendigen Informationen dem Objekt zugeordnet wurden, liegt der nächste Schritt in der Definition der Handelsstrategie zu definieren und auf der Anwendung der Kursdaten auf die gewählten Aktien.

Erstellen der Indikatoren und der Handelssignale mit Python

Dafür erstellen wir eine Methode, welche Sie später mit dem erstellten Objekt verwenden können. Als Ergebnis liefert die Methode einen Dataframe, der alle notwendigen Informationen zum Signal der Strategie, sowie den jeweiligen Returns der Periode enthält, um die Entwicklung eines Kontos zu simulieren.

        #Wenn heute das Signal entsteht, darf erst morgen eine Position daraufhin eingegangen werden.
        #Wenn dies nicht beachtet wird, wird jede Strategie automatisch zum Powerhouse, da die bekannte
        #Zukunft in die Entscheidungen mit einfließt
        #Dazu shiften wir die Signalspalte um eine Periode in die Zukunft - sodass das Signal am Folgetag

        #für die Handelsentscheidung herangezogen wird
        signals["signal"] = signals["signal"].shift(1)
        return signals

Dabei muss man beachten, dass ein Signal immer zum Ende des Tages entsteht und daher erst die Renditen des nächsten in die Berechnung einfließen dürfen. Aus diesem Grund verwenden wir die Shift-Funktion des Dataframes um die Signale um eine Periode zu verschieben. Eine 1 in der Signal-Spalte bedeutet daher, dass die Rendite des betreffenden Tages für den Backtest verwendet werden kann und soll. Die Signale stellen wir in diesem Fall einfach über eine Spalte dar, welche True oder False enthält, also: das Signal ist aktuell aktiv oder das Signal ist inaktiv. Ob der Wert der jeweiligen Zeile True oder False ist, hängt in diesem Fall von den beiden gleitenden Durchschnitten ab, die wir mit dem folgenden Abschnitt erstellen:

schnell = self.aktie["Adj Close"].rolling(window = self.schneller_ma).mean()

langsam = self.aktie["Adj Close"].rolling(window = self.langsamer_ma).mean()

signals["signal"] = (signals["schnell"] > signals["langsam"])*1 #Ergibt True und False

zum Schluss wird signals als Ergebnis ausgegeben. Das Objekt signals ist ein Pandas DataFrame, welcher die täglichen Renditen, die Signallage, sowie die Kursdaten der Aktie enthält.

Berechnung der Kontoentwicklung der Handelsstrategie im Backtest mit Python lernen

Mit Hilfe des erstellten DataFrames, können nun alle Auswertungen erstellt werden, die man von einem Backtest erwarten kann. Dazu zählen sowohl die Kontoentwicklung als auch die möglichen Auswirkungen von verschieden hohen Hebeln auf die Handelsstrategie. Um diese Daten greifbar zu machen, werden wir Liniencharts und Histogramme verwenden.

Dazu wird eine neue Klasse angelegt. Diese bekommt die zuvor erstellten Daten übertragen, sodass sie auf diese zugreifen kann.

class PortfolioBacktest():
    def __init__(self,signal_matrix):
        self.signal_matrix = signal_matrix

Somit entsteht ein Portfolio-Objekt, das die Daten der Aktie trägt. Mit diesen Daten soll nun mit Backtest-Methoden gearbeitet werden: 

    def equity_development(self,initial_account_size = 10000,leverage = 1):
        df = self.signal_matrix
        df.dropna(inplace = True)
        df["return"] = df["Adj Close"].pct_change()
        df["strategy_returns"] = df["signal"]*df["return"]*leverage+1
        df["capital_growth"] = df["strategy_returns"].cumprod()
        df["stock_performance"] = (df["return"]+1).cumprod()
        df["stock_performance"] = df["stock_performance"]*initial_account_size
        df["equity"] = df["capital_growth"]*initial_account_size
        #fig, axes = plt.subplots(nrows=2, ncols=2)
        fig = plt.figure()
        ax1 = fig.add_subplot(221)
        ax2 = fig.add_subplot(222)
        ax3 = fig.add_subplot(212)
        df[["equity","stock_performance"]].plot(ax = ax3)
        (df["return"]).plot(ax = ax1,kind = "hist",title = "Histogram of Stock Returns")
        filter_null_returns = (df["strategy_returns"] != 0)
        (df["strategy_returns"][filter_null_returns]-1).plot(ax = ax2,kind = "hist", title = "Histogram of Strategy Returns")
        return(df)

 Dieser Code-Block wirkt zunächst überwältigend. Brechen wir ihn einmal herunter, um Klarheit zu schaffen. 

    def equity_development(self,initial_account_size = 10000,leverage = 1):

Definiert die Methode equity_development. Diese Methode soll unabhängig von dem verwendeten Signal immer dieselben Ergebnisse produzieren. Dies ist möglich, da in dem DataFrame verschiedene Daten hinterlegt sind und diese -ganz gleich welches Signal erstellt wird- immer gleich heißen werden. So wird es immer eine Spalte “Adj Close” geben und immer eine Spalte “signal”. Somit kann an Hand dieser nun die Grafik produziert werden. Zu Beginn werden einige Schritte zur Bereinigung der Daten durchgeführt. Soll entschieden werden, ob eine Handelsstrategie mit echten Geld umgesetzt wird, muss dies noch etwas sauberer ausgestaltet werden. Für einen ersten Versuch ist das hier gezeigte Vorgehen vollkommen aus.

        fig = plt.figure()
        ax1 = fig.add_subplot(221)
        ax2 = fig.add_subplot(222)
        ax3 = fig.add_subplot(212)

 

Definiert die Abschnitte der Grafik, auch “Subplots” genannt. Diese Abschnitte erlauben das Anordnen der Grafiken wie in diesem Beispiel: 2 Grafiken oben und eine große Grafik unten. Um die Grafiken in die erstellten Platzhalter zu “schreiben,” soll die in Pandas enthaltene Plot-Methode verwendet werden, wobei über die ax1,ax2,ax3 Variable die jeweilige Position zugeordnet wird.

        df[["equity","stock_performance"]].plot(ax = ax3)
        (df["return"]).plot(ax = ax1,kind = "hist",title = "Histogram of Stock Returns")
        filter_null_returns = (df["strategy_returns"] != 0)
        (df["strategy_returns"][filter_null_returns]-1).plot(ax = ax2,kind = "hist", title = "Histogram of Strategy Returns")
        return(df)

Das Ergebnis kann sich sehen lassen:

Strategy = QuantitativeStrategy("BAS.DE","2010-01-01",20,80)
Strategy = Strategy.moving_average_cross()
Portfolio = PortfolioBacktest(Strategy)
Results = Portfolio.equity_development()

Im weiteren Verlauf könnten nun noch weitere Statistiken erstellt werden, die die Handelsstrategien näher beschreiben, wie z.B. das Sharpe-Ratio, die Standardabweichung, der Max-Drawdown und viele weitere, die notwendig sind um eine wirkliche Aussage über die Güte einer Strategie zu treffen.

Wie bereits angesprochen, erlaubt unser Backtest auch die Entwicklung zu hebeln. Der Hebel ist dabei ein fester Wert, der die Renditen faktorisiert. Dies entspricht also nicht dem klassischen Hebel in Form eines Kaufs mit Margin, sondern vielmehr der Verhaltensweise eines Faktor Zertifikats, da der Hebel täglich neu auf die voreingestellt Zahl angepasst wird und die entstandene Rendite multipliziert.
Um einen Kauf auf Margin darzustellen, müssen wirkliche alle Käufe und Verkäufe zu bestimmten Kursen erstellt und verarbeitet werden. Dies ist wesentlich komplizierter als das gewählte Beispiel. Das hier gezeigte Szenario lässt sich mit: „Ich bin investiert“ oder „Ich bin nicht investiert“ beschreiben , bei dem Transaktionskosten keine Berücksichtigung finden.

Betrachten wir nun einmal das Ergebnis unserer Hebelmöglichkeiten:

Strategy = QuantitativeStrategy("BAS.DE","2010-01-01",20,80)
Strategy = Strategy.moving_average_cross()
Portfolio = PortfolioBacktest(Strategy)
Results = Portfolio.equity_development(leverage = 3)

Nun schlägt auch unsere Strategie den Markt. Da sie es schafft, die Renditen zu transformieren und somit auch Verlustphasen soweit beschränken kann, dass das Konto nicht auf Null fällt und der Hebel langfristig zum Vermögensaufbau beitragen kann. 

Das ist das Ende der Reihe Python lernen für Investieren und Traden.
Die verwendete Codes finden sich auch auf meinem GitHub Repository und sind frei zum Download verfügbar: https://github.com/JulianStorz/Python_Backtest

Bei Fragen hinterlassen Sie uns gerne einen Kommentar oder schreiben Sie uns an info@insidetrading.de oder abonnieren Sie unseren Newsletter.

by Jan 19, 2018 Keine Kommentare
Investieren und Traden mit Python lernen – Beziehen von Kursdaten für Technische Analyse

Investieren und Traden mit Python lernen – Beziehen von Kursdaten für Technische Analyse

Analysetechniken

BITTE BEACHTEN SIE – DER API VON YAHOO FINANCE WURDE DAUERHAFT GESCHLOSSEN – ALS KOSTENFREIE ALTERNATIVE KÖNNEN SIE ALPHAVANTAGE ALS DATENQUELLE VERWENDEN – DIE DOKUMENTATION FINDEN SIE AUF DEREN SEITE

Für jede Analyse braucht es Daten, die eine Datenanalyse möglich machen. Ein deutsches Sprichwort sagt, „Woher nehmen, wenn nicht stehlen?“. Genau diese Frage stellt sich vielen, wenn es zum Thema Kapitalmarktdaten kommt. Doch ich verspreche Ihnen, es gibt Mittel und Wege, ohne dass Sie alles von Hand abtippen müssen.
API heißt das Zauberwort.

In diesem Beitrag soll es darum gehen, wie Sie an die Daten für Ihre Analysen kommen. Außerdem wird kurz die Handhabung von Pandas besprochen, des wohl wichtigsten Tools für den Umgang mit Daten in Python.

Installieren notwendiger Libraries für diesen Beitrag

Sofern noch nicht geschehen, sollten Sie an dieser Stelle die Librarys Pandas, fix_yahoo_finance und Pandas_Datareader installiert haben. Zudem möchte ich noch eine Alternative aufzeigen, welche besonders für fundamental-versierte Leser interessant sein könnte. Der Quandl API. Hierfür sollte zusätzlich noch die Library Quandl installiert werden.
Wie üblich öffnen Sie hierfür bitte die Kommandozeile (Windowstaste + R und CMD eintippen). Dort führen Sie bitte die folgenden Befehle, aus um die Pakete für Python herunterzuladen und zu installieren.

pip install pandas
pip install pandas_datareader
pip install fix_yahoo_finance
pip install quandl

WICHTIG: Zusätzlich zu pandas_datareader muss auch fix_yahoo_finance mit installiert werden. Dies ist seit einer Veränderung des Yahoo Finance APIs notwendig geworden.

WICHTIG: Damit Sie pip einfach so verwenden können, sollten Sie Python Ihren Systempfaden hinzufügen:

  1. Öffnen Sie dazu die System Übersicht (Drücken Sie dazu Win+Pause)
  2. Wählen Sie dort die Erweiterten Einstellungen
  3. Klicken Sie auf Umgebungsvariablen
  4. Klicken Sie dort auf PATH in der Systemvariablen Sektion
  5. Klicken Sie Bearbeiten
  6. Fügen Sie am Ende der Liste ein Semicolon (;) ein und fügen Sie dahinter den Pfad ein, in dem Sie Python installiert haben, sowie den Pfad des Scripts Ordners. In meinem Fall sieht das so aus:
    C:\Users\Programs\Python\Python36-32;C:\Users\Programs\Python\Python36-32\Scripts:

Nachdem dies geschehen ist, können Sie auf die Libraries zugreifen, indem Sie diese zum Beginn Ihres Programms importieren.

import pandas as pd
from pandas_datareader import data as pdr
import fix_yahoo_finance
import quandl

Bitte beachten Sie, dass die Libraries zumeist mit einem Kürzel importiert werden, welches mit as deklariert ist. Dies ist eine Konvention bei einigen der Pakete und sollte beibehalten werden, um den Code mit anderen besser vergleichbar zu machen und Einheitlichkeit zu gewährleisten. Dies verbessert den Austausch in der Community und trägt zur Stärkung der Programmiersprache bei.

Lassen Sie sich von den Ausrufezeichen am Anfang der Zeilen nicht irritieren. Diese werden von Pydev in Eclipse lediglich angezeigt, da Sie noch keine Operationen mit den Paketen ausgeführt haben und diese bis jetzt quasi noch nutzlos in Ihrem Code platziert sind. Dies ist kein guter Stil, da es Ressourcen Ihres Computers unnötig in Beschlag nimmt. Diese verschwinden nach und nach sobald der Code, den Sie entwickeln, die einzelnen Importe verwendet.

Beziehen von Kursdaten

Die Pakete sind installiert und in der Entwicklungsumgebung importiert. Lassen Sie uns nun also starten, die ersten Daten zu beziehen. Als erstes möchte ich auf den Import von Kursdaten über Yahoo Finance eingehen und dabei pandas_datareader vorstellen. Pandas Datareader war ursprünglich ein Teil der Pandas Library, wurde jedoch ausgelagert, nachdem der Umfang dies nahegelegt hatte.

Um Kursdaten von Yahoo zu beziehen, brauchen wir den jeweiligen Ticker der Aktie, wie er bei Yahoo hinterlegt ist. Meist sind dies die RICs des Wertpapiers, jedoch nicht immer zwangsläufig.

Auf dem Bild habe ich für Sie die Daimler Aktie auf Yahoo-Finance geöffnet und den Ticker gelb hinterlegt.

Damit Sie die Kursdaten von Yahoofinance beziehen können, müssen Sie also die Daten für DAI.DE abfragen: Dafür benötigen wir die Hilfe von Pandas_Datareader:

from pandas_datareader import data as pdr
import fix_yahoo_finance

pdr.get_data_yahoo("DAI.DE","2015-01-01")

Der erste Abschnitt des Codes gibt an, für welchen Ticker wir Kursdaten abfragen und der zweite Teil gibt an, ab welchem Datum die Zeitreihe beginnen soll. In dem von mir gewählten Beispiel fragen wir die Kursdaten der Daimler AG ab dem 01 Januar 2015 ab.

Diese werden uns auch nach kurzer Ladezeit in der Konsole ausgegeben.

Anders als von Ihnen vielleicht erwartet, erhalten wir nicht nur eine sondern gleich sechs Spalten ausgegeben.

Um dies genauer zu analysieren, speichern wir den Datensatz als Variable ab (diese Variable wird ein Dataframe werden) und schauen uns an, wofür die einzelnen Spalten stehen.

Daimler = pdr.get_data_yahoo("DAI.DE","2015-01-01")

Anders als in Ihrer letzten Abfrage werden nun keine Werte mehr angezeigt, da diese in der Variable Daimler gespeichert sind und nun weiter von uns bearbeitet werden können. Zu Beginn interessiert es Sie sicherlich, was es mit den 6 Spalten auf sich hat. Lassen wir uns also die Spaltennamen ausgeben, um den Hintergrund zu beleuchten.

Daimler.columns
Out[9]: 
Index(['Open', 'High', 'Low', 'Close', 'Adj Close', 'Volume'], dtype='object')

Schauen wir zudem noch den Anfang und das Ende des Datensatzes an:

Daimler.head()
Out[10]: 

                 Open       High        Low      Close  Adj Close   Volume
Date                                                                      
2015-01-02  69.599998  70.000000  68.160004  68.750000  60.556007  2778600
2015-01-05  68.260002  68.849998  65.980003  66.169998  58.283508  4527144
2015-01-06  66.400002  68.040001  65.570000  66.610001  58.671062  4331135
2015-01-07  67.250000  68.150002  66.760002  67.129997  59.129089  3394084
2015-01-08  68.220001  70.160004  67.809998  70.070000  61.718681  5009933
Daimler.tail()
Out[12]: 

                 Open       High        Low      Close  Adj Close   Volume
Date                                                                      
2017-10-24  68.570000  69.769997  68.459999  69.400002  69.400002  3395679
2017-10-25  69.339996  69.870003  68.839996  69.250000  69.250000  2898836
2017-10-26  69.230003  70.150002  69.019997  69.949997  69.949997  3893181
2017-10-27  70.139999  71.699997  70.099998  71.110001  71.110001  5655575
2017-10-30  71.139999  71.580002  71.070000  71.290001  71.290001  2414098

Nun wird klar, wofür die einzelnen Spalten stehen. Sie haben durch Ihre Abfrage nicht nur die Schlusskurse, sondern alle Kursdaten zur Daimler-Aktie -also die Tageseröffnungs, -Hochs, -Tiefs, die um Splits und Dividenden adjustierten Kurse sowie das Volumen des Tages erhalten. 

 

Ich würde sagen, damit haben Sie sich eine Grundlage geschaffen, mit der Sie anfangen können zu arbeiten.
Um einzelne Spalten des Datensatzes zu isolieren, können diese über ihren Spaltennamen mit folgender Syntax ausgewählt, in neuen Variablen gespeichert und verarbeitet werden.

Der folgende Code speichert die Schlusskurse des Datensatzes in die Daimler Variable, sodass im weiteren Verlauf nur noch auf diese zugegriffen wird, sofern Sie die Daten aus der Variable abfragen.

Daimler = Daimler["Close"]

Daimler["Close"].head()
Out[40]: 

Date
2015-01-02    68.750000
2015-01-05    66.169998
2015-01-06    66.610001
2015-01-07    67.129997
2015-01-08    70.070000
Name: Close, dtype: float64

 

 

Alternative Datenquellen – Quandl

Neben Yahoo-Fiannce, stehen weitere Datenquellen zur Verfügung, welche je nach Datenbedarf mehr oder weniger nützlich sind.

Wer Makro-Analysen erstellen möchte und danach sein Portfolio steuert, für den sind vor allem Wachstumsraten von Ländern und Sektoren relevant. Solche Datensätze sind durch Yahoo-Finance nicht in ausreichendem Format verfügbar. Hierfür empfehle ich Ihnen Quandl zu nutzen.

Quandl ist eine Datenbank, welche den Zugriff über APIs erlaubt. Sowohl R als auch Python werden unterstützt.

Anmeldung bei Quandl und Nutzung des APIs

Um den Quandl API nutzen zu können, ist eine Anmeldung nicht notwendig, jedoch sind die Zugriffe ohne eine Anmeldung massiv eingeschränkt. Daher empfiehlt es sich einen kostenlosen Account zu erstellen, der mehr API Zugriffe pro Tag erlaubt.

Wer die Daten in großem Umfang oder auch professionell verwenden möchte, findet bezahlte Datenbanken und Angebote die in großem Umfang Abfragen zulassen.

 

Nach der Anmeldung können Sie sich mit dem API Zugriff identifizieren und auf die Daten in entsprechendem Umfang zugreifen.

 

Das folgende Beispiel zeigt den Prozess wie der persönliche API Key in Python eingegeben wird und wie Sie auf eine makroökonomische Datenbank zugreifen können. Als erstes muss der API Key aus dem Nutzerprofil kopiert werden.

import quandl
quandl.ApiConfig.api_key = "IHR_API_KEY"

Diesen geben Sie in Folge mit diesem Code in Eclipse ein und führen diesen aus. Daraufhin ist ihr API Zugriff mit dem KEY legitimiert und Sie haben mehr Zugriffe. Als nächstes benötigen wir eine Datenbank, die Macro-Daten enthält. Für das Beispiel nutze ich die European Commission Annual Macro-Economic Database auf Quandl. Diese ist kostenfrei, sodass das Beispiel von jedem nachvollzogen werden kann.

Um die Verwendung des API darzulegen, beziehe ich die kurzfristigen nominalen Zinssätze in Deutschland als Zeitreihe. Dafür muss in Python der Quandl Code in Methode aus der Quandl library übergeben werden. Der Code findet sich auf der jeweiligen Quandl Seite oben rechts. Ich habe diesen im Bild gelb markiert.

nom_short_term_interest_ger = quandl.get("AMECO/DEU_1_1_0_0_ISN")

Nach dem Ausführen des entsprechenden Befehls im Code werden die Daten von Quandl bezogen und in der entsprechenden Variable abgespeichert.

Dies können Sie entsprechend wieder überprüfen, indem Sie sich die Daten aus der Variable ausgeben lassen.

nom_short_term_interest_ger.head()
Out[48]: 

            Value
Date             
1960-12-31   5.10
1961-12-31   3.59
1962-12-31   3.42
1963-12-31   3.98
1964-12-31   4.09

nom_short_term_interest_ger.tail()
Out[49]: 

               Value
Date                
2012-12-31  0.570000
2013-12-31  0.220000
2014-12-31  0.210000
2015-12-31 -0.019750
2016-12-31 -0.264167

nom_short_term_interest_ger.describe()
Out[51]: 

           Value
count  57.000000
mean    4.803089
std     2.904286
min    -0.264167
25%     3.300000
50%     4.290000
75%     5.970000
max    12.350000

Nachdem Sie nun verschiedene Datenquellen kennengelernt und einen kurzen ersten Eindruck zur Handhabung der Daten bekommen haben, beginnen wir in den nächsten Schritten mit der Analyse und der Darstellung von diesen Daten in Grafiken. 

Die verwendete Codes finden sich auch auf meinem GitHub Repository und sind frei zum Download verfügbar: https://github.com/JulianStorz/Python_Backtest

by Jan 18, 2018 Keine Kommentare
Monte-Carlo-Simulation: Der Backtest für Ihren Backtest

Monte-Carlo-Simulation: Der Backtest für Ihren Backtest

Anlagetechniken

In unserem aktuellen Content werden wir Ihnen die Monte-Carlo-Simulation näherbringen. Denn, unserer Meinung nach, ist die Monte-Carlo-Simulation ein sehr nützliches Werkzeug für das Trading. Denn mit der Monte-Carlo-Simulation können Sie sowohl Ihre Trading-Strategien auf Robustheit und Stabilität überprüfen, als auch wirklich nützliche Forecasts generieren.

Lassen Sie uns aber, fürs Erste, bei der Robustheit und Stabilität von Handelsstrategien bleiben. Denn die Thematik des Forecasts durch die Monte-Carlo-Simulation ist ein etwas deutlich komplexeres Thema. Auf dieses würden wir gerne in einem separaten Artikel eingehen.

 

Was genau ist eine Monte-Carlo-Simulation?

So wie es halt leider im Leben ist, müssen wir uns erstmal mit den Basics auseinandersetzen, bevor wir zu dem spannenden Teil kommen.

Die Monte-Carlo-Simulation ist, zuallererst, eine mathematische Technik der quantitativen Analyse. Sie soll dabei aushelfen, verschiedene Eintrittswahrscheinlichkeiten darzustellen und mit Hilfe dieser die Entscheidungshilfe zu unterstützen.

Was bedeutet somit die Monte-Carlo-Simulation für die Trader?

Mit Hilfe der Monte-Carlo-Simulation kann der Trader die Ergebnisse seiner möglichen Handlungen „vorhersehen“. Sie können mit der Monte-Carlo-Simulation die Extremwerte eines Handelssystems ermitteln und diese simulieren.

 

Wieso ist die Monte-Carlo-Simulation so wichtig für das Trading?

Nehmen wir mal an, Sie haben ein fertiges Handelssystem entwickelt und haben dieses nun einem Backtest unterzogen. Das Ergebnis von diesem Backtest ist positiv. Es scheint als ob Sie es endlich geschafft haben und Sie nun das große Geld an den Börsen verdienen können. Doch ist dem so? Wie signifikant ist denn dieser Backtest alleine?

Ein Backtest hat immer einen positiven Bias. Was heißt das? Das heißt, dass ein Backtest, so gut wie immer, ein besseres Ergebnis abwirft, als es in der Realität auftreten würde. Doch wieso?

Ein Backtest findet immer in einer perfekten Umgebung statt. Das heißt, dass Sie im besten Fall zwar vielleicht den Spread eingestellt haben, aber die Slippage wird außen vorgelassen. Die Trades werden perfekt ausgeführt und perfekt beendet. In solch einem „perfekten“ Trading-Umfeld lässt sich natürlich ganz einfach Geld verdienen. Doch die Realität sieht meistens anders aus.

Das Ergebnis eines Backtests kann sich drastisch verändern, wenn man das Handelssystem auch nochmal in einer Monte-Carlo-Simulation testet.

Unserer Meinung nach ist ein Handelssystem nichts anderes, als eine Wahrscheinlichkeitsverteilung zu unseren Gunsten mit einem positiven Erwartungswert. Wie sich aber die Wahrscheinlichkeiten aufteilen oder anordnen, weiß niemand.

Gehen wir mit diesem Gedanken an einen Backtest ran, so erkennen wir, dass ein Backtest nur EINE mögliche Anordnung der Wahrscheinlichkeiten darstellt. Doch die Wahrscheinlichkeiten ordnen sich jedes Jahr, jeden Monat, jede Stunde, jede Minute aufs Neue an. Genau hier kommt nun die Monte-Carlo-Simulation ins Spiel. Denn mit Hilfe dieser Simulation können Sie erkennen, ob der im Backtest gezeigte maximale Draw-Down auch wirklich der maximale Draw-Down ist. Oder ob bei einer anderen Verteilung der Wahrscheinlichkeiten der Draw-Down auch nochmal deutlich größer ausfallen kann.

Genauso kann es auch passieren, dass in 30 von 50 Simulationen das Handelssystem nicht profitabel abschneidet. Somit würden wir ein Handelssystem dennoch nicht verwenden, auch wenn es im Backtest ein positives Ergebnis geliefert hat.

Mit Hilfe der Monte-Carlo-Simulation können Sie nun die Wahrscheinlichkeiten Ihrer Trades komplett neu einordnen und den positiven Bias glätten. Natürlich alles unter der Prämisse, dass Sie alle vorherigen Schritte wie die Betrachtung einer relevanten Historie, der Errechnung des Standardfehlers etc. beachtet haben.

Bevor wir an die Einzelheiten gehen, möchten wir Ihnen ein Experiment zeigen.
In diesem Experiment haben wir 500 willkürliche Trades eingesetzt. Diese 500 Trades ergeben ein positives Ergebnis mit einem positiven Erwartungswert und einer Trefferquote von über 50%. Nehmen wir an, dass das unser erster Backtest ist.

So sieht das erste „Backtest-Ergebnis“ aus:

(Abbildung 1: Equity Kurve der Strategie mit den ausgedachten Zahlen)

 

(Abbildung 2: Statistische Kennzahlen der Strategie mit den ausgedachten Zahlen)

 

In der Abbildung 1 erkennen Sie nun die Equity-Kurve unserer erfundenen Strategie und in der Abbildung 2 die dazugehörigen statistischen Kennzahlen.

So könnte ein Backtest aussehen den Sie vielleicht auch schon mal für sich selber gemacht haben.

Schauen wir uns nun 3 Monte-Carlo-Simulationen an, die auf derselben ausgedachten Strategie beruhen. Wie stark kann das Ergebnis schwanken? Die statistischen Kennzahlen sehen doch eigentlich ganz gut aus. Schauen wir mal rein.

(Abbildung 3: Erste Monte-Carlo-Simulation)

 

(Abbildung 4: Zweite Monte-Carlo-Simulation)

 

(Abbildung 5: Dritte Monte-Carlo-Simulation)

 

Was können wir nun aus den drei Monte-Carlo-Simulationen ableiten? Schauen wir uns doch diese einzeln an.

Die erste Monte-Carlo-Simulation hat ein deutlich schlechteres Endergebnis als die Ursprungs-Equity-Kurve. Sie verläuft mit sehr vielen Seitwärtsphasen und jede Menge kleinerer Draw-Downs. Diese Equity-Kurve unterscheidet sich sehr stark von der Ursprungs-Kurve. Es ist aber dennoch ein und dieselbe Strategie. Nun sind aber die Wahrscheinlichkeiten anders verteilt.

Die zweite Monte-Carlo-Simulation fällt deutlich besser aus, als die Ursprungs-Kurve. Diese Kurve verläuft mit deutlich weniger Seitwärtsphasen und viel geringeren Draw-Downs.

Die dritte Monte-Carlo-Simulation hat auch ein etwas schlechteres Endergebnis als die Ursprungs-Kurve. Die Draw-Downs und die Seitwärtsphasen sind aber dennoch sehr stark ausgeprägt.

Was können wir nun daraus schlussfolgern? Unserer Meinung nach, ist es ein unglaublicher Vorteil zu erfahren, wie ein und dieselbe Strategie bei einer unterschiedlichen Wahrscheinlichkeitsverteilung ausschauen kann. Das hat, unter anderem, auch einen sehr starken psychologischen Effekt. Zuallererst wird man von Draw-Downs und Seitwärtsphasen mental weniger stark betroffen. Da wir ja durch die Monte-Carlo-Simulation gesehen haben, wie lange und wie stark diese ausfallen können.

Wir erfahren auch, dass das Real-Trading-Ergebnis auch abweichen kann. So dass wir mit unseren Gewinn-Zielen nicht so festgesetzt sind. Würden wir nun nicht 3 sondern 300 Monte-Carlo-Simulationen durchführen, so könnten wir durch die Ermittlung der wichtigsten Durchschnitts-Kennzahlen herausfinden, wie die Performance auf langfristiger Basis aussehen könnte und welches die Best- und welche die Worst-Case-Szenarien sind.

Wir möchten auch nochmal darauf hinweisen, dass eine Monte-Carlo-Simulation nur so lange Signifikanz hat, so lange die Parameter und Umstände gleichbleiben. Die Parameter und Umstände verändern sich aber an der Börse täglich. Somit müssen Sie Ihre Trading-Parameter und die Parameter Ihres Handelssystems stets im Fokus haben. Eine Monte-Carlo-Simulation hat auch nicht nur Vorteile. Solange Sie aber, spätestens mit Hilfe dieses Artikels, das nötige Wissen über die Monte-Carlo-Simulation besitzen, ist es ein sehr nützliches Trading-Werkzeug.

 

Die Monte-Carlo-Simulation als Robustheits-Test

Wir verwenden die Monte-Carlo-Simulation sehr gerne für unseren Robustheits-Test eines Handelssystems.

Wie wir Ihnen schon erklärt haben, hat ein Backtest immer einen positiven Bias. Die Aufgabe ist es nun, dass diese positive Verzerrung deutlich schwächer wird und wir es, mit Hilfe der Monte-Carlo-Simulation, schaffen, dass wir dem Realitätswert so nahe wie möglich kommen.

Wofür verwenden wir persönlich die Monte-Carlo-Simulation? Zum einen, wie auch schon im Titel erwähnt, als Robustheits-Test für unsere Handelssysteme. Zum anderen verwenden wir die Monte-Carlo-Simulation als Forecast Methodik. Auf die Forecast Methodik wollen wir heute aber nicht eingehen, dazu wird es, höchstwahrscheinlich, nochmal einen separaten Content geben, da dieses Thema doch etwas komplexer und mathematischer wird.

Doch wie genau verwenden wir nun die Simulation für unseren Robustheits-Test?

Wir nehmen, auf unser ausgedachtes Beispiel angewandt, 20 Monte-Carlo-Simulations-Testergebnisse und ziehen daraus unseren Mittelwert. Nochmal. Wir führen nun 20 Monte-Carlo-Simulationen durch die auf Grundlage unserer ausgedachten Strategie beruhen und notieren uns die Kennzahlen die wir benötigen. In diesem Beispiel ist es der durchschnittliche Gewinn pro Trade und die durchschnittliche Jahresperformance.

Schauen Sie sich nochmal die Abbildung 2 an. Dort erkennen Sie, dass der durchschnittliche Gewinn, in diesem Fall gleich dem Erwartungswert, 11,02 Euro beträgt. Und die durchschnittliche Jahresperformance liegt bei ca. 2900 Euro.

Wie schauen nun die Werte aus, nachdem wir 20 Monte-Carlo-Simulationen durchgeführt haben? Hier die Ergebnisse:

(Abbildung 6: Durchschnittlicher Gewinn pro Trade nach 20 Monte-Carlo-Simulationen)

 

(Abbildung 7: Durchschnittliche Jahresperformance nach 20-Monte-Carlo-Simulationen)

 

Entschuldigen Sie das hässliche Design, wir sind leider keine Designer und für unsere Verhältnisse ist das schon sehr hübsch.

In den oberen 2 Abbildungen sehen Sie nun die Ergebnisse der 20 Monte-Carlo-Simulationen. Welche nützlichen Informationen können wir nun für unser Trading oder unser Handelssystem entnehmen?

Wir erkennen auf den ersten Blick, dass der durchschnittliche Gewinn pro Trade nach 20 Simulationen kleiner ausfällt als nach dem Backtest. Das ist das, was wir mit dem positiven Bias gemeint haben. Der Backtest hat, sehr oft, eine positive Verzerrung.

Der durchschnittliche Gewinn pro Trade nach 20 Simulationen beträgt nun 9,83 Euro. Wir erkennen aber auch, dass das höchste Ergebnis 18,21 Euro beträgt. Wir erkennen aber auch das niedrigste Ergebnis und das ist 5,50 Euro. Das niedrigste Ergebnis ist fast 50% geringer als das Ergebnis des ursprünglichen Backtests. Diese Information ist sehr viel wert. Denn nun können wir unsere Psyche und unsere Erwartungen auf diese Parameter anpassen.

Dasselbe Prinzip haben wir auch bei der durchschnittlichen Jahresperformance. Auch diese fällt nach 20 Monte-Carlo-Simulationen etwas geringer aus. Auch hier können Sie die Höchst- und Tiefpunkte der 20 Simulationen ablesen.

Wir möchten Sie nochmals darauf hinweisen, dass diese Ergebnisse nur dazu dienen um eine bestimmte Systematik und unsere Herangehensweise mit der Monte-Carlo-Simulation zu verdeutlichen.

Es ist auch immer besser, lieber ein paar Simulationen mehr zu haben als zu wenig. Wir führen für die Tests unserer Handelssysteme mindestens 100 Monte-Carlo-Simulationen durch bei denen wir auch mit den Parametern variieren um zu überprüfen, ob das Handelssystem bei stärkeren oder schwächeren Abweichungen der Grund-Parameter immer noch eine ähnliche Performance abwirft oder ob schon sehr kleine Parameter-Abweichungen das Tradingsystem zum Kollabieren bringen.

Wie viele Simulationen die optimale Testmenge ergeben, ist sehr schwer zu beantworten. Unsere Devise lautet da wohl, lieber ein paar mehr als weniger.

 

Mit welchem Programm können Sie eine Monte-Carlo-Simulation durchführen?

Viele glauben, dass man solche Simulationen nur mit kostspieligen Programmen durchführen kann. Das ist aber definitiv nicht so.

Wir bevorzugen für den Start, bevor wir wirklich Geld in teure Software investieren, erstmal das Lean-Konzept. Das heißt, dass wir den Weg mit den geringsten Kosten gehen. Meistens ist dieser Weg auch der mit dem geringsten Aufwand.

Wir verwenden für den Anfang immer Excel. Excel hat mittlerweile so gut wie jeder auf seinem Laptop oder Rechner. Zur Not geht auch OpenOffice.

Es muss nicht immer teure Software sein. Mit Excel kann man so gut wie alles programmieren was man für das Trading benötigt.

Probleme tauchen erst auf, wenn die historische Datenmenge größer wird, dann kommt Excel an seine Grenzen. Bis dahin ist es aber ein optimales Werkzeug.

 

Welche Paramater benötige ich um eine Monte-Carlo-Simulation mit Excel durchzuführen?

Jetzt wird der Stoff ein wenig trocken. Das ist zwar für die meisten das Langweiligste, aber unserer Meinung nach ist das das Essenzielle.

Was benötigen wir denn nun, um eine Monte-Carlo-Simulation durchzuführen.

Hier habe ich fürs Erste einen Ausschnitt aus unserer Monte-Carlo-Simulation Excel-Datei:

(Abbildung 8: Ausschnitt aus Excel Monte-Carlo-Simulation)

 

Die in Gelb markierten Felder sind die Daten die Sie benötigen um eine fachlich saubere Monte-Carlo-Simulation durchzuführen.

Gehen wir diese mal Schritt-für-Schritt durch. Am Ende dieses Kapitels werden Sie selbst in der Lage sein können eine Monte-Carlo-Simulation auf Excel oder OpenOffice zu erstellen.

 

Schritt 1: Listen Sie alle Ihre Trades

 Zuallererst müssen Sie all Ihre Trades untereinander in die Excel-Liste importieren. Sei es nun von einem Metatrader 4/5 backtest, Welthlab oder ähnelichen Programmen. Viele Programme haben auch schon eine Monte-Carlo-Simulation inbegriffen, dennoch möchten wir Ihnen hier aufzeigen, wie Sie sich selbst eine Monte-Carlo-Simulation erstellen können. Denn nur so verfügen Sie auch wirklich über Ihre eigenen Daten.

Sind nun alle Trades übertragen, geht es zum zweiten Schritt.

 

Schritt 2: Mittelwert errechnen

Ich denke, dass wir auf den Mittelwert nicht lange eingehen müssen. Diese statistische Kennzahl sollte eigentlich jedem bekannt sein.

Hier ist die Formel die Sie in Excel eintragen müssen:  =MITTELWERT()

 

Schritt 3: Standardabweichung berechnen

 Nun benötigen Sie nur noch die Standardabweichung. Was sagt uns die Standardabweichung denn eigentlich?

Die Standardabweichung sagt nichts anderes aus, als wie unsere Daten verteilt sind. Im Detail sagt diese Zahl aus, wie weit unsere einzelnen Datenmengen im Durchschnitt von unserem Mittelwert entfernt sind.

Mit der Standardabweichung sind wir in der Lage die Streuung von Verteilungen zu messen.

Hier ist die Formel die Sie in Excel eintragen müssen: =STABW.S()

 

Schritt 4: Die Verbindung der Daten zur Monte-Carlo-Simulation

Nun kommen wir zur wirklichen Monte-Carlo-Simulation.

Mit Hilfe dieser Formel, erhalten Sie nun Ihre gewünschte Monte-Carlo-Simulation: =NORM.INV(ZUFALLSZAHL();MITTELWERT;STANDARDABWEICHUNG)

 Haben Sie diese Formel in eine Excel-Zelle eingegeben und diese mit den Werten Mittelwert und Standardabweichung fixiert, so erhalten Sie nun eine Zahl der Monte-Carlo-Simulation. Haben Sie einen Windows-Rechner, so können Sie durch das drücken der F9-Taste immer wieder eine neue Monte-Carlo-Zahl generieren die auf der Grundlage Ihrer Trades basiert. Wenn Sie einen MacBook haben sollten, so können Sie die Monte-Carlo-Zahlen generieren, indem Sie in eine leere Zelle klicken und diese dann mit „Entf.“ bestätigen. Bei jedem Klick von „Entf.“ Erhalten Sie die Monte-Carlo-Zahlen.

Diese Formel können Sie nun x-beliebig nach unten ziehen, so dass Sie eine Equity-Kurve simulieren können.

Diese Zahlen Verbinden Sie dann mit einem „Startkapital“ ,wie in unserem Beispiel 5000 Euro, und erstellen daraufhin ein Liniendiagramm.

Nun können Sie x-beliebig eine Equity-Kurve simulieren und wichtige Parameter für Ihr Handelssystem ableiten.

Sie können die größten Draw-Downs untersuchen, Sie können die Schwankung des Erwartungswertes untersuchen oder Sie können die Schwankung der Trefferquote untersuchen.

Es gibt auch Websiten im Internet die einem die Monte-Carlo-Simulation erleichtern. Wie zum Beispiel diese hier: https://www.suricate-trading.de/equitycurvesimulator/

Es ist definitiv nicht verkehrt, dass Sie auch solche Hilfen verwenden, wenn Sie keine eigene Software oder Excel-Simulation zur Verfügung haben.

Wir können Ihnen aber aus Erfahrung sagen, dass eine eigene Excel-Basierte Simulation deutlich mehr Analyse-Vielfalt bietet, als webbasierte Hilfen.

Nur mit einer eigens programmierten Monte-Carlo-Simulation sind Sie in der Lage die Schwankungen der relevanten Kennzahlen zu bestimmen. Denn eine Trefferquote oder ein Mittelwert ist nie fix. Diese Kennzahlen verändern sich von Trade zu Trade. Solche Schwankungen des Erwartungswertes oder der Trefferquote erhalten Sie nur, wenn Sie sich in Ihre eigene Excel-Basierte Monte-Carlo-Simulation einarbeiten.

Sollten Sie Hilfe oder Anregungen benötigen, stehen wir Ihnen natürlich sehr gerne zur Verfügung und freuen uns über Ihre Fragen oder Ihr Feedback. Schreiben Sie uns einfach unter info@statistic-trading.de

Im nächsten Kapitel der Monte-Carlo-Simulation werden wir unsere Forecast-Methodik erläutern, die uns beim Handel mit Optionen unterstützt und wie auch Sie diesen Forecast per Excel programmieren können und für Ihr eigenes Trading nutzen können.

Sollten sich eventuell genug Interessierte für dieses Thema finden, können wir auch ein Webinar, in Verbindung mit FXFlat Wertpapierhandelsbank, auf die Beine stellen und die ganzen Prozesse live erklären.

Wer also Interesse an solch einem Webinar hätte, der kann gerne das untere Kontakt-Formular verwenden oder Sie schreiben uns, wie schon oben erwähnt, unter info@statistic-trading.de

Sollte Ihnen der Content gefallen haben, können Sie sich auch gerne in unseren Newsletter eintragen. Wir würden uns freuen.

 

Wir wünschen Ihnen eine angenehme und ertragreiche Woche.

Mit freundlichen Grüßen aus Berlin,

Statistic-Trading

 

 

 

 

 

 

by Jun 10, 2017 Keine Kommentare
Statistik trifft Markttechnik: Ist jeder Trend gleich zu traden?

Statistik trifft Markttechnik: Ist jeder Trend gleich zu traden?

Anlagetechniken

Wir haben sehr lange überlegt, ob wir zu diesem Thema einen Artikel veröffentlichen sollten. Denn auf dieser Grundlage, die in diesem Artikel behandelt wird, basieren unsere Tradingsysteme. Dies ist der Grundbaustein unseres Tradings.

Nach langem hin und her, haben wir uns doch für die Veröffentlichung entschieden. Nach dem Motto: „Scheiss drauf, machen wir es einfach“. Wir wollen Ihnen einen Einblick in unsere Sichtweise auf die Märkte geben.

Unser Trading basiert im Grundbaustein auf der Markttechnik. Die Markttechnik, wie auch die Charttechnik, ist eigentlich Auslegungssache. Fragen wir 10 Markttechniker nach einem Aufwärtstrend, bekommen wir zwar von allen die Antwort, dass es sich um einen Aufwärtstrend handelt, aber eingezeichnet bekommen wir ihn auf 10 verschiedene Weisen.

Von dieser Problematik versuchen wir uns, so gut es geht, zu distanzieren. Wir haben versucht, und es für unseren Tradingstil auch geschafft, subjektive Tradingfaktoren zu definieren.

Wir möchten im Vorfeld darauf hinweisen, dass dieser Artikel länger als üblich ist. Da wir in diesem Artikel sowohl auf die Grundlagen der Markttechnik, als auch auf die Grundlagen unserer statistischen Analyse eingehen. Dies erfordert natürlich viel Schreibraum. Sollten Sie das jedoch nicht abschrecken, sondern eher motivieren, dann werden Sie höchstwahrscheinlich eine neue Ansicht zu der Markttechnik erlangen.

 

Die Grundlagen des Markttechnischen Tradings

Zu diesem Thema gibt es im Buchhandel genügend Literatur. Es gibt, wie auch immer im Leben, sowohl gute als auch schlechte Literatur. Sollten Sie die Grundlagen der Markttechnik wirklich verinnerlichen wollen, empfehlen wir Ihnen das Buch von Michael Voigt: „Das große Buch der Markttechnik„ zu kaufen. Dort werden die Grundlagen in einer sehr gut verständlichen Weise erklärt und aufgezeigt.

Die Markttechnik beschäftigt sich mit der Frage: „Wo entsteht Bewegung?“ oder „Wer kauft nach mir?“. Kann die Markttechnik diese Fragen optimal beantworten? Wir sagen „jein“. Die Markttechnik, wenn man Sie verstanden hat, kann einen sehr gute Trendsituationen erkennen lassen. In diesen Trendsituationen versucht dann die Markttechnik eine Gegebenheit ausfindig zu machen, wo „Bewegung“ entstehen kann.

In der Markttechnik wird ein Trend in Bewegungs- und Korrekturphasen unterteilt. Zeigen wir das erstmal an einem aufgezeichneten Beispiel. Im weiteren Verlauf des Artikels arbeiten wir dann natürlich nur mit echten Charts.

In diesem Bild sehen wir nun ein Musterbeispiel eines Aufwärtstrends und eines Abwärtstrends. Beide Trends bestehen aus einer Bewegungsphase und einer Korrekturphase. Im Aufwärtstrend zum Beispiel, ist der grüne Arm die Bewegung und der rote Arm die Korrektur. Im Abwärtstrend ist das, logischerweise, umgekehrt.

Ein wichtiges Kriterium für einen intakten Aufwärtstrend ist, dass das Korrektur-Tief nicht tiefer sein darf, als das Bewegungs-Tief. Und im Abwärtstrend wieder, logischerweise, umgekehrt. Hier nochmal ein Beispiel zur Verdeutlichung.

Solange das Tief der Bewegung nicht gebrochen ist, ist ein Trend intakt. Bis hierhin sollte eigentlich alles klar und verständlich sein. Doch wie traden wir jetzt im Stil der Markttechnik und wo liegen die Problemzonen? Arbeiten wir uns weiter voran.

 

Wie tradet man im Stil der Markttechnik?

Es existieren viele Möglichkeiten wie ein Trader im Stil der Markttechnik traden kann. Im Großen und Ganzen geht es darum, dass man auf der Korrekturphase heraus tradet. Man sucht sich eine, sogenannte, Großwetterlage (GWL) und nutzt diese zur übergeordneten Sicht.

Was ist eine Großwetterlage genau, fragen Sie sich sicher. Eine Großwetterlage ist nichts anderes, als der übergeordnete Trend von der Trendgröße aus der ihr heraus handeln wollt. Ein Beispiel: Ihr wollt Daytrading betreiben und wollt auf einer kleinen Trendgröße handeln. Für solch ein Szenario braucht ihr dann den 1-Minuten-Chart. Wenn ihr eure Trades im 1-Minuten-Chart tätigen wollt, so braucht ihr eine übergeordnete Trendgröße. In diesem Fall den 10-Minuten-Chart. Den 1-Minuten-Chart, also den Chart auf dem Ihr den Trade absetzen wollt, nennt man dann die Signallage.

Hier mal ein Überblick über die Großwetterlagen und die Signallagen in der Markttechnik:

 

  • Signallage : 1-Minuten-Chart à GWL: 10-Minuten-Chart
  • Signallage: 10-Minuten-Chart à GWL: 1-Stunden-Chart
  • Signallage: 1-Stunden-Chart à GWL: Tages-Chart
  • Signallage: Tages-Chart à GWL: Wochen-Chart
  • Signallage: Wochen-Chart à GWL: Monats-Chart

 

Das ist die Basis der Markttechnik für alle Signal- und Großwetterlagen. Im Normalfall reicht eine Großwetterlage aus, um einen Trade gut absetzen und managen zu können. Wenn ihr einen Trade im 1-Minuten-Chart absetzt, wie sinnvoll ist es dann, sich den Tageschart anzuschauen? Genau, eher weniger.

Was wollen wir nun genau mit der Markttechnik erreichen? Wir versuchen mit der Markttechnik eine Großwetterlage zu finden, die sich gerade in einer Korrekturphase befindet. Haben wir solch eine Großwetterlage gefunden, versuchen wir in der Signallage eine gute Situation zu finden, in der man einen Trade platzieren kann. Am besten in einen entstehenden Trend. Zeigen wir das an einem Beispiel, so ist das einfacher zu verstehen:

In dieser Abbildung sehen wir eine Großwetterlage und eine Signallage. Die Signallage befindet sich im umkreisten Gebiet der Großwetterlage. Was erkennen wir nun genau? Wir erkennen mehrere wichtige Eigenschaften. Zum einen erkennen wir die Trendverschachtelung. Wir sehen, dass der Korrekturarm der Großwetterlage einen Abwärtstrend in der kleineren Signallage aufzeigt. Sowas nennt man: Trendverschachtelung. Wir versuchen also aus einer Korrekturphase der Großwetterlage, einen entstehenden Trend in der Signallage zu erwischen. Dieser „kleinere“ Trend der Signallage soll uns dann die Bewegung der Großwetterlage als Profit einstreichen.

Wir wiederholen nochmal. Wir versuchen quasi, auf der Großwetterlage (eine große Surfer-Welle) mit Hilfe der Signallage (eine kleinere Surfer-Welle) einen Trade in Trendrichtung der Großwetterlage zu platzieren, auf dem wir dann mitsurfen können. Wir versuchen eine kleine Welle zu erwischen, die uns auf der großen Welle mitschwimmen lässt. Das ist die Quintessenz der Markttechnik. Was für Einstiegsmöglichkeiten und Stop-Variationen es gibt, das müssen Sie entweder im Buch von Michael Voigt oder mit Hilfe eigener Studien herausfinden. Solch eine Thematik würde hier den Rahmen sprengen.

Trendbeispiele am Börsenmarkt

Nun sind wir soweit und kommen zum reellen Börsenmarkt. Schluss mit selbstgezeichneten Charts. Nur noch eine kleine Anmerkung bevor wir starten. Jeder Markttechniker, wie wir schon oben erwähnt haben, hat eine andere Sichtweise auf die Charts. Wäre dem nicht so, würden nicht so viele Diskussionen über Trends geführt werden. Dem ist aber so. Wir können Ihnen lediglich unsere Sichtweise aufzeigen.  Für uns ist diese Sichtweise die beste. Für andere eventuell nicht. Jeder muss seinen Trading-Stil finden um profitabel werden zu können.

Fangen wir nun an mit ein paar Beispielen im Dax-Candlestick-Chart. Zu Beginn werden wir die Candlestick-Ansicht verwenden, da dies die Ansicht ist, die am meisten verwendet wird. In unserem Trading benutzen wir den Heikin-Ashi-Chart. Wir werden im nächsten Kapitel auf die Vorteile des Heikin-Ashi-Charts eingehen.

Wir werden jetzt keine profitablen Trades zeigen. Im Nachhinein ist jeder Profi. Es geht hier erstmal darum, dass Sie die Prinzipien der Trenderkennung nach Markttechnik realisieren und verinnerlichen.

Ein Trend im 15-Minuten-Chart im Dax:

Hier sehen wir die Abbildung des Dax 15-Minuten-Charts. Wir haben für Sie den für jedermann erkennbaren Trend eingezeichnet. Nachdem wir Ihnen den Trend genau eingezeichnet haben, ist natürlich die gesamte Situation gut zu erkennen. Wo würden Sie aber eine eventuelle Problematik in der Interpretation des Trends erkennen? Schauen Sie sich den Chart genau an! Es gibt Bewegungs- und Korrekturphasen die klar und deutlich zu erkennen sind. Es existiert aber eine Phase, die einem Probleme bereiten kann. Es ist die Korrekturphase des ersten Punktes 2 zum Punkt 3. Das lokale Hoch dieser Phase ist erst zu erkennen gewesen, nachdem der Markt durch den Punkt 2 durchgebrochen war.

Dies sind Marktphasen, wo dann die Foren voll mit Diskussionen füllen, wie man diese Korrekturphase genau zu erkennen hat. Man könnte die Trends ja auch etwas „präziser“ hineinzeichnen.

Hier ein anderes Beispiel vom selben Chart:

Hier sehen wir nun den selben Chart nur mit „präziseren“ Trends. Natürlich sagen jetzt die einen oder anderen, dass sich das um den untergeordneten Trend auf 5-Minuten-Basis oder 1-Minuten-Basis handelt. Das kann generell sogar richtig sein. Wie ist es einem Trader dennoch möglich, dass man sich solche Art von Fragen sparen kann? Dieses Interpretationsproblem von Charts ist allgegenwärtig. Wenn es dieses Problem nicht geben würde, wären alle Diskussionen von Trends überflüssig. Diese existieren aber, ergo, brauchen wir objektivere Faktoren für die Trenderkennung.

Eine mögliche objektive Mustererkennung von Hoch- und Tiefpunkten ist die Art, die von Larry Williams gelehrt wird. Ein Hoch-Punkt wird dadurch gekennzeichnet, indem er von 2 Candles „umzingelt“ wird, die tiefere Hochs haben, als die Hoch-Punkt-Kerze. Dasselbe Prinzip bei einem Tief. Das ist in Textform nicht so leicht zu verstehen. Zeigen wir Ihnen ein Beispiel, denn an einem Chart erklärt es sich besser.

Bleiben wir bei unserem Beispielchart:

Wir haben nun die Trendlinien entfernt und Ihnen die Hoch- und Tiefpunktbeschriftung übriggelassen. Wie man erkennen kann, haben wir Ihnen die Hoch- und Tiefpunkte eingekreist. Hier können Sie nun die objektive Ansicht von den Hochs und Tiefs feststellen. Es ist natürlich kein Wundermittel. Sie können damit nicht jedes Hoch und jedes Tief optimal während der Trendentstehung erkennen. Sie haben aber wiederum auch keine willkürlichen Einzeichnungen mehr.

Schauen Sie sich verschiedenste Charts an. Üben Sie diese Ansichtsweise. Sie werden erkenne, dass es sich hier nicht um ein Wundermittel handelt, aber es kann Ihr Trading deutlich vereinfachen und Ihnen aus dem Interpretationsproblem heraushelfen.

Nochmals eine kleine Zusammenfassung für die Ansicht von Hoch- und Tiefpunkten:

  • Ein Hochpunkt wird von 2 Candles „umzingelt“, deren Hochs tiefer sind, als das Hoch der Mittelkerze (Hochpunkt)
  • Ein Tiefpunkt wird von 2 Candles „umzingelt“, deren Tiefs höher sind, als das Tief der Mittelkerze (Tiefpunkt)

 

Wenn Sie das verinnerlicht haben, kommen wir nun zu einer weiteren Hilfestellung, die das Interpretationsproblem löst. Der Heikin-Ashi-Chart.

 

Der Heikin-Ashi-Chart: eine ganz neue Ansicht für einen Chart

Schauen wir uns zuallererst denselben Chart wie oben an, nur im Heikin-Ashi-Stil:

Ein viel Chart-Bild was viel sauberer und deutlicher zu erkennen ist. Wieso ist das so? Wieso sieht ein Heikin-Ashi-Chart so viel „glatter“ aus, als es die Candlestick-Ansicht tut? Die Hoch- und Tiefpunkte von Heikin-Ashi-Kerzen sind identisch mit denen vom Candlestick-Chart. Die Körper der Kerzen sind aber anders. Um es in einfache Worte zu packen. Der Körper der Heikin-Ashi-Kerze wird aufgrund der durchschnittlichen Bewegung der vorherigen Kerze berechnet. Die Körper der Kerzen sind somit mit Hilfe von Durchschnittswerten geglättet.

Wenn Sie mehr Details zum Heikin-Ashi-Chart benötigen, dann können Sie sich die nötigen Informationen unter diesem Link einholen: http://www.tradesignalonline.com/lexicon/default.aspx?id=147

Wir erkennen nun Korrektur- und Bewegungsphasen viel deutlicher. Was im Candlestick-Chart ein „wischi waschi“ aus grünen und roten Kerzen war, das ist im Heikin-Ashi-Chart viel deutlicher zu erkennen. Kleine Ausreißer-Bewegungen fallen in einem Heikin-Ashi-Chart nicht so schwer ins Gewicht. Dies eröffnet einem neue Möglichkeiten, zum Beispiel für die Art der Stop-Setzung.

Hier nochmal ein Vergleich von der unsauberen Bewegung im Candlestick-Chart und der geglätteten Bewegung im Heikin-Ashi-Chart:

Der Unterschied ist wohl klar und deutlich zu sehen. Im weiteren Verlauf der Analysen und Erklärungen verwenden wir nur noch den Heikin-Ashi-Chart.

 

Wie Statistic-Trading die Trends nach Markttechnik sieht

In diesem Abschnitt werden wir Ihnen nur ganz schnell erläutern, wie unsere Ansicht der Märkte stattfindet. Dies ist wichtig um im späteren Verlauf zu verstehen, wie wir unsere Tradinganalysen durchführen.

Ein blanko Heikin-Ashi-Chart vom Dax 1-Stunde:

 

Hier erstmal ein blanko Chart. Wie analysieren wir nun unsere Trends? Einfach ausgedrückt: Wir versuchen alles als Trend zu sehen, was auch mit dem bloßen Auge und ohne Interpretation zu erkennen ist. In dieser Hinsicht hilft der Heikin-Ashi-Chart ungemein. Wie man hoffentlich am oberen Chart erkennen kann.

Hier nun derselbe Chart nur mit unseren Trends eingezeichnet:

 

Wir haben objektive Regeln erschaffen, ab wann ein Trend ein Trend ist und ab wann ein Trend kein Trend ist. Sie benötigen ein festes objektives Regelwerk für die Bewegungs- und die Korrekturphasen.

Schauen Sie sich einfach den Blanko-Chart und den Chart mit dem eingezeichneten Trend an. Überprüft ob ihr die Trends genau so gesehen hättet. Sie können ja ab dem jetzigen Zeitpunkt auch überprüfen ob Ihnen der Heikin-Ashi-Chart genauso eine große Hilfe ist, wie bei uns damals. Die Heikin-Ashi-Ansicht erleichtert einem das Chart-Screening enorm.

Ist das jetzt eine Korrektur oder nur eine Anomalie? Wurde der Trend gebrochen? Ist das ein Punkt 3 oder nicht? Solche Fragen dürfen Sie, nachdem Sie Ihr Regelwerk aufgestellt haben, nicht mehr haben. Ihr Regelwerk muss alles beantworten können.

Wie Sie erkennen können, haben wir eine eventuell spezifischere Trendansicht als die generellen Markttechniker. Das liegt unter anderem daran, dass uns das auf diese Weise gelehrt wurde, als auch, dass wir nach einer Methode gesucht haben in der man auch die Markttechnik backtesten kann.

Wir erkennen ganz genau im Nachhinein, ob wir einen vorhandenen Trend hatten oder nicht und wann dieser gebrochen ist. Wir können Ihnen hier natürlich nicht alle „Geheimnisse“ unseres Tradings offen legen, denn diese entstanden nach jahrelangen Studien und Experimenten.

Wir möchten Ihnen aber eine Systematik in der Markttechnik mitgeben, mit der Sie dann Ihre eigene Handelsstrategie im Stile der Markttechnik entwerfen könnt.

Kommen wir nun zum wichtigsten Teil dieses Artikels. Wenn Sie bis hierhergekommen sind, dann haben Sie sich nun diesen Abschnitt verdient.

 

Wie lange ist der Lebenszyklus bei einem Trend nach Markttechnik?

Die Markttechnik lehrt einen, dass man immer aus der Korrektur heraus traden soll um so einen idealen Einstieg in einen Trend zu finden. Haben Sie sich aber schon mal die Frage gestellt: Wie lange läuft so ein Trend überhaupt? Nein? Wir uns schon! In diesem Abschnitt finden Sie die Aufklärung dazu.

Wie Sie bereits wissen, erwartet die Markttechnik, dass wir aus der Korrektur heraus traden. Nur ist das Problem jetzt, dass nicht jede Korrektur die gleichen Chancen bietet. Ein Trend läuft ja nicht ewig. Irgendwann wird er gebrochen. So stellt sich die Frage nun: Wie finden wir heraus welche Korrektur mehr Vorteil bietet? Wir haben diese Arbeit schon getan und teilen die Ergebnisse nun mit Ihnen.

Wir haben Trends ausgezählt um herausfinden zu können, welche Einstiegssituation einen höheren Edge (Vorteil) aufweisen, als andere Einstiege. Bevor wir die Statistiken veröffentlichen, möchten wir Ihnen noch einmal schnell erklären, auf welche Weise wir die Trends ausgezählt haben, damit Sie die Ergebnisse besser nachvollziehen können.

Der Trend fängt mit einer „Phase 0“ an. Das ist die Situation in der wir noch keine Einstiegssituation besitzen. Wir erhalten nur die Information vom Markt, dass wir jetzt eine Marktsituation haben, in der es interessant ist in Long- oder Short-Richtung zu investieren.

Hier eine Beispielzeichnung:

Nach der „Phase 0“ folgt die „Phase 1“. In dieser Phase finden wir dann die erste Korrektur und die erste Bewegung nach der „Phase 0“.

Hier eine Beispielzeichnung:

Diese Phasen gehen, logischerweise, so lange weiter, bis sich ein Trendbruch erkennen lässt. Ein Trendbruch findet immer dann statt, wenn das letzte Tief gebrochen worden ist.

Hier ein Beispiel dazu:

Nach einem erfolgten Trendbruch sind die Phasen resettet. Nach einem Trendbruch ist nun abzuwarten, in welche Richtung der Markt erneut einen Trend aufweist. Nach einem Trendbruch wissen wir einfach nicht, in welche Richtung sich der Markt entwickeln kann.

In unseren Auswertungen haben wir, so wie schon erwähnt, die Trends und deren Phasen ausgezählt. Im Beispiel finden Sie die Trends vom S&P 500 10-Minuten-Chart.

Hier die Daten:

 

Was erkennen Sie nun genau? Fangen wir mal Schritt für Schritt an. Sie erkennen, dass wir insgesamt 800 Trends ausgezählt haben. 400 Long und 400 Short Trends. Sie erkennen auch zum Beispiel, dass es insgesamt 2 Long-Trends gegeben hat, die höher waren als „Phase 6“. Genauso erkennen Sie, dass es nur 1 Short-Trend gegeben hat der höher war als „Phase 6“.

Was aber genau ist die Quintessenz aus dieser Analyse? Die Wahrscheinlichkeit, dass ein Trend nach der „Phase 0“ eine weitere „Phase 1“ macht, ist bei Long-Trades 67,5% und bei Short-Trends 59,5% !

Die Wahrscheinlichkeit, dass nach einer „Phase 1“ noch eine „Phase 2“ oder höhere Phase kommt ist bei Long-Trends 27,5% und bei Short-Trends 28,8%.

Jetzt mal anders formuliert. Die Wahrscheinlichkeit, dass nach einer „Phase 1“ NICHT eine „Phase 2“ oder höher kommt ist bei Long-Trends 72,5% und bei Short-Trends 71,2% !

Wussten Sie das? Nein? Ab jetzt schon. Was können Sie also für Ihr eigenes Trading mitnehmen?

Sie kennen nun eine Trendphase in der es vorteilhafter ist zu investieren, als in anderen. Sagen wir mal wie es ist. Es hat nur einen statistischen Vorteil, wenn Sie in der „Phase 1“ investieren. Alle anderen Trendphasen bieten keinen statistischen Vorteil!

Man erhält ähnliche Daten auch in anderen Märkten. Hier sehen Sie die gleiche Analysemethode auf andere Märkte und Zeiteinheiten.

Hier die Daten aus dem S&P500 Stunden-Chart:

 

Hier die Daten aus dem Dax Stunden-Chart:

 

Wir haben auch noch verschiedenste US-Aktien-Werte analysiert und die Daten ähneln sich auch da.

Es ist definitiv zu erkennen, dass sich in der „Phase 1“ eines Trends ein statistischer Vorteil verbirgt. Lassen Sie Ihrer Inspiration freien Lauf wie Sie diesen Nutzen wollen.

Falls Sie uns nicht glauben, führen Sie Ihre eigenen statistischen Tests durch und schauen Sie auf was für statistische Werte Sie kommen.

 

Ist ein Trend auf Stunde signifikanter als ein Trend auf 10-Minuten?

Diese Aussage finden Sie in ganz vielen Büchern über die Markttechnik. Auch viele „Börsenprofis“ predigen diese Aussage. Was will uns aber diese Aussage genau sagen?

Die Markttechnik, so wie man sie in der Literatur gelehrt bekommt, geht davon aus, dass einen Stunden-Trend stabiler und weniger leicht gebrochen werden kann, als ein Trend auf einer kleineren Trendgröße wie zum Beispiel 10-Minutern oder 1-Minute. Aber stimmt diese Aussage überhaupt? Schauen Sie sich dafür nochmal die vorherigen Statistiken an!

Wie Sie hoffentlich erkennen können, stimmt diese Aussage nicht.

Unsere statistischen Auswertungen haben ergeben, dass ein Trend auf einer höheren Zeiteinheit nicht stabiler und weniger gefährdet für einen Trendbruch ist, als ein Trend auf 10-Minuten oder auf 1-Minute.Auch die Trends die wir auf die US-Aktien-Werte durchgeführt haben, haben diese Daten bestätigt. Dort wurden Trends auf Wochen- und Tagesbasis analysiert.

Tagestrends brechen somit statistisch genauso häufig, wie Trends auf 1-Minute!

 

Fazit

Sie haben nun eine Menge neuer Informationen erhalten. Ob Sie diese Daten für Ihr Trading verwenden wollen oder diese doch lieber ignorieren, liegt ganz bei Ihnen.

Fassen wir nochmal kurz zusammen. Sie haben von uns eine Markttechnische Trendphase erhalten, die einen statistischen Vorteil für Ihr Trading aufweist: die „Phase 1“. In allen anderen Trend- und Korrekturphasen ist es statistisch von Nachteil noch auf einen vorhandenen Trend aufzuspringen.

Wie Sie nun die Informationen die Sie von uns erhalten haben für Ihr Trading benutzen wollen, überlassen wir Ihnen.

Sollten Sie Fragen oder Anregungen haben, können Sie uns sehr gerne schreiben.

 

Viel Erfolg im Trading!

Statistic-Trading

by Mrz 03, 2017 Keine Kommentare
Denkfehler: Basiert mein Backtest auf der richtigen Logik?

Denkfehler: Basiert mein Backtest auf der richtigen Logik?

Anlagetechniken

Das „Backtest-Problem“

Jeder, der sich länger und intensiver mit dem Thema „Trading“ beschäftigt hat, hat schon mal einen Backtest durchgeführt. Oder? Zumindest hat jeder schon, mindestens einmal, eine Backtestauswertung gesehen.

So, in etwa, kann eine Backtest-Auswertung aussehen:

Es sind alle relevanten Daten zu erkennen. Maximaler Drawdown, durchschnittlicher Gewinn, durchschnittlicher Verlust usw.

Es scheint so auszusehen, als ob ein Backtest eine gute Sache ist. Ist er auch! Wenn man das Signal oder die Handelsstrategie, die dahintersteckt, auch richtig überprüft hat.

Wenn Sie sich für das Thema „Handelsstrategie entwickeln“ interessieren, können wir Ihnen gerne unseren Artikel zu diesem Thema ans Herz legen: Wie entwickle ich eine erfolgreiche, statistische Trading-Strategie? 

Es verbirgt sich nämlich, in den meisten Fällen, ein großer Denkfehler hinter solchen Backtests. Wir reden jetzt nicht davon, dass dieser Backtest falsch ist und dass die Zahlen, die angegeben worden sind, nicht stimmen.

Es handelt sich eher um einen Test-Fehler in der Logik des Traders! Sie wollen ja eine statistische Auswertung nach wissenschaftlichen Methoden vornehmen und somit beweisen, dass Ihr Backtest tatsächlich seine Richtigkeit besitzt. Sie wollen wissen, ob Ihr Handelssignal für den positiven Backtest gesorgt hat oder ob der positive Backtest gar nicht mit dem Handelssignal korreliert.

Ohne die richtige wissenschaftliche Logik hat ein Backtest, auch wenn er Gewinnbringend ist, sehr wenig Aussagekraft!

Die Logik hinter einem Backtest verstehen!

Was ist wohl der größte Irrglaube bei einem durchgeführten Backtest? Oder überlegen Sie mal, was einer sein könnte.

Es ist der Irrglaube, dass man glaubt die richtige Schlussfolgerung aus seinem Backtest zu ziehen, obwohl diese falsch sind. Diese falsche Schlussfolgerung kann fatale Folgen für eine Tradingstrategie haben und Sie damit eine menge Geld kosten. Verdeutlichen wir das am besten an einem Beispiel.

Sie haben sich hingesetzt und sich Gedanken über ein Handelssystem gemacht. Soweit so gut. Sie sind auf die Idee gekommen und wollen nun Ihre Handelsidee mit einem Backtest bestätigen. Voilá, Sie haben einen positiven Backtest erhalten und gehen nun davon aus, dass Ihre Handelsidee oder Ihr Handelssignal eine Aussagekraft für die Zukunft besitzt. Und hier greifen wir ein. Dies ist ein Trugschluss. Sie haben zwar durch diesen Backtest ein positives Resultat erhalten, Sie haben aber noch lange nicht bewiesen, dass dieses positive Resultat auch durch Ihr Handelssignal zustande gekommen ist.

Hier nochmal der Vorgang als logische Reihenfolge dargestellt:

  1. Prämisse: Wenn mein Handelssignal eintritt, steigt/sinkt der Markt in meine gewünschte Richtung und führt zu einem positiven Backtest.
  2. Prämisse: Wir erhalten einen positiven Backtest.
  3. FALSCHE SCHLUSSFOLGERUNG: Unser Handelssignal hat eine Aussagekraft und sorgt für den positiven Backtest.

Verdeutlichen wir die falsche Schlussfolgerung an einem anderen Beispiel:

  1. Prämisse: Wenn es ein Kugelschreiber ist, dann kann man damit auch schreiben.
  2. Prämisse: Man kann damit schreiben.
  3. FALSCHE SCHLUSSFOLGERUNG: Es ist ein Kugelschreiber.

Nur weil man damit schreiben kann, muss es nicht automatisch ein Kugelschreiber sein. Es kann sich auch um einen Bleistift, einen Tintenfüller etc. handeln.

Richtig ist aber auch wiederum, wenn ich damit nicht schreiben kann, dann ist es auch definitiv kein Kugelschreiber. Rückwirkend funktioniert diese Logik.

Genauso ergeht es der Logik im oberen Backtest-Beispiel. Sie haben zwar einen positiven Backtest erhalten, dies heißt aber noch lange nicht, dass auch tatsächlich Ihr Handelssignal oder Ihre Tradingstrategie für den positiven Backtest verantwortlich ist. Es können zig andere Gründe sein.

Diese „zig anderen Gründe“ müssen wir ausschließen können, um uns so sicher wie nur möglich mit unserem Handelssystem zu sein.

Jetzt kommen wir zum spannenden Teil. Wie überprüfen Sie denn jetzt die richtige Schlussfolgerung.

Der H0-Hypothesentest

Wir wollen jetzt nicht versuchen unsere Prämissen zu beweisen, sondern wir wollen diese widerlegen.

Als Anmerkung, wir werden versuchen es nicht zu trocken zu erklären, da Statistik für die meisten Trader eher ein langweiliges, als ein spannendes Thema ist. Wir versuchen Ihnen ein kompaktes und brauchbares Modell an die Hand zu geben, mit denen Sie dann, hoffentlich, in Zukunft Ihr Schlussfolgerungen richtig analysieren können.

Die H0-These ist immer die These, die wir versuchen zu widerlegen. Die H1-These ist dann logischerweise die These, die wir versuchen zu bestätigen.

Die H1-These wird auch als Alternativhypothese bezeichnet und stellt die Gegenwahrscheinlichkeit zur H0-These dar.

Stellen wir nun unsere H0- und H1-Hypothese auf:

  • H0-These: Wenn mein Handelssignal eintritt, dann steigt/sinkt der Markt in die nicht gewünschte Richtung um den Betrag X
  • H1-These: Wenn mein Handelssignal eintritt, dann steigt/sinkt der Markt in die gewünschte Richtung um den Betrag X

Nun stellen wir unsere richtige logische Schlussfolgerung auf:

  1. Prämisse: Wenn H0-Richtig, dann entwickelt sich der Markt um Betrag X nicht in die gewünschte Richtung
  2. Prämisse: Der Markt entwickelt sich nicht, in die nicht gewünschte Richtung um den Betrag X ( Also in die gewünschte Richtung)
  3. RICHTIGE SCHLUSSFOLGERUNG: Wir können die H0-These verwerfen und können sagen, dass das Handelssignal tatsächlich eine Aussagekraft besitzt und der Markt sich höchstwahrscheinlich aufgrund des Handelssignals sich in die gewünschte Richtung entwickelt.

Es ist natürlich klar, dass die Realität deutlich komplexer ist, als dass man sie in 2 Thesen packen könnte. Es ist dennoch wichtig, sich dieser richtigen Systematik bewusst zu sein und nicht jedem Backtest zu glauben.

Wir prüfen, bevor wir eine Handelsstrategie entwickeln, immer mit Hilfe einer Teststatistik und dem H0-Hypothesentest, ob es sich lohnt mehr Energie in eine Handelsstrategie hinein zu investieren.

Diese Fehler können bei einem H0-Hypothesentest eintreten 

Sie müssen natürlich auch wissen, dass Sie auch mit einem H0-Hypothesentest nie die 100%-ige Sicherheit haben, dass der positive Backtest tatsächlich auch an Ihrem Handelssignal liegt.

Solch ein mögliches Szenario wird durch ein Signifikanzniveau gekennzeichnet. Im Normalfall beträgt solch ein Signifikanzniveau 5%. Das heißt, dass in 5% der Fälle ein Fehler im Hypothesentest vorliegen kann.

Es existieren zwei Arten von Fehlern die eintreten können. Der Fehler 1. Art und der Fehler 2. Art.

Ein Fehler 1. Art liegt vor, wenn Sie bei einem H0-Hypothesentest die H0-Hypothese zu Unrecht verworfen haben.

Ein Fehler 2. Art liegt vor, wenn Sie bei einem H0-Hypothesentest die H0-Hypothese zu Unrecht beibehalten haben,

Diese Fehler können Sie mit Hilfe eines „p-Value-Test“ minimieren. Komplett ausschließen können Sie diese aber nie.

Fazit:

Wir hoffen, dass wir Ihnen mit diesem Artikel zeigen konnten, wo sich einer der größten Denkfehler im Bereich Backtesting verbirgt.

Es ist von unglaublicher Wichtigkeit, dass Sie Ihren Backtest mit der richtigen Logik überprüfen. Natürlich ist der H0-Hypothesentest kein Wundermittel für Strategien mit einer unglaublichen Performance. Solch ein Wundermittel existiert leider auch nicht.

Was der H0-Hypothesentest aber definitiv kann, ist Sie vor Strategien zu schützen, die Ihnen Geld kosten würden, bis Sie bemerken würden, dass die Handelsstrategie irgendwie nicht so funktioniert wie geplant.

Seien Sie ehrlich zu sich selbst und prüfen Sie Ihre eigene Handelsstrategie mit dem H0-Hypothesentest. Sie werden staunen!

 

Mit freundlichen Grüßen und eine erfolgreiche Trading-Woche,

Statistic-Trading

 

by Jan 24, 2017 1 Kommentar
MQL5 programmieren lernen – EAs schreiben einfach erklärt

MQL5 programmieren lernen – EAs schreiben einfach erklärt

all

MQL5 programmieren lernen – EAs schreiben einfach erklärt

Hey Insider,
das hier ist einmal wieder ein Selbstexperiment. In unserer Reihe „Metatrader Secrets“ geht es vor allem um die kleinen „Gadgets“, welche in der Software versteckt sind. Da wir im Bereich des Aktienhandels auch automatisierte Tools verwenden, die uns einen Überblick über die Marktlage verschaffen, wollten wir dies auch verstärkt in kleineren Zeiteinheiten in die Währungsmärkte implementieren. Die Programmiersprache R, die wir normalerweise auch für unsere Online-Applikationen verwenden, kann nur umständlich in die MT5 Umgebung eingebunden werden. Einer von uns, sollte daher innerhalb einer Woche, MQL5 erlernen. Welche Quellen wir verwendet haben, um uns Informationen zu der Sprache zu beschaffen, was unsere ersten Testprogramme waren und wie man Expert-Advisors ohne Programmierkenntnisse erstellen kann, wollen wir euch mit dieser Serie näher bringen.

Die ersten Schritte mit MQL5 – Öffnen des MQL5 Editors – EA Generator

Der erste Tag.

Zu Beginn ist es wichtig, sich einen Überblick über die allgemeine Syntax der Sprache zu verschaffen. Man muss aber auch entscheiden, was man eigentlich mithilfe des EAs erreichen möchte.

Wenn der EA nur einfache, „klassische“ Einstiege handeln soll, so ist es durchaus möglich, ganz ohne eigene Programmierarbeit ans Ziel zu gelangen. Auch wir haben diesen Ansatz versucht und uns dem EA-Generator des Metatrader 5 bedient. In diesem kann man ganz ohne zu Programmieren einfach via Drag and Drop Indikatoren und Signale auswählen, das Risikomanagement sowie die Stop Loss und Take Profit Werte eingeben um sich den Code automatisch erstellen zu lassen. Um dieses doch recht unbekannte Feature zu nutzen, ist lediglich der MT5-Editor zu starten. Dies kann im Metatrader 5 durch das Klicken auf das folgende Symbol geschehen:

Metatrader Editor öffnen - MQL5

Daraufhin öffnet sich die Oberfläche des Editors. Um nun zum EA-Generator zu gelangen, der den gewünschten EA automatisch erstellt, ist lediglich bei Daten->Neu->Expert Advisor (generieren)->Weiter zu klicken. Daraufhin wird man Schritt für Schritt durch den Ablauf geleitet. Der Generator bietet einem vorgefertigte Ein- und Ausstiegssignale, sowie prozentuale Risikoeinstellungen und Trailling-Stop Optionen. Mithilfe der vorinstallierten Auswahlmöglichkeiten lassen sich bereits einige Hundert EAs erstellen. Weitere lassen sich über den MQL5 Shop erwerben.

Metatrader 5 - EA einfach erstellen

Zu jedem der von Vornherein verfügbaren Signale ist eine ausführliche Dokumentation vorhanden. Diese lässt sich über das Fragezeichen bei der Auswahl der Indikatoren öffnen. Zur Auswahl der Indikatoren gelangt man durch einen Klick auf den „Hinzufügen“ Button.

Indikatoren Metatrader 5 - MQL5 hinzufügen

Als nächsten Schritt kann man Trailing-Stop Optionen zu dem Expert-Advisor hinzufügen. Dabei lassen sich verschiedene Trailling-Stop Methoden heranziehen – von festen Abständen bis hin zu einem Trailing-Stop hinter einer SMA ist alles möglich. Um den Expert-Advisor abzuschließen, werden am Ende des Generators noch die Risikoparameter abgefragt. Im Speziellen sind dies die Positionsgrößenschritte und das prozentuale Risiko. Sobald man nun auf „Fertigstellen“ klickt, wird der EA einsatzbereit ausgegeben und dieser kann direkt getestet werden. Dazu kann man beispielsweise den Strategietester des Metatrader 5 nutzen, (diesen öffnet man mithilfe der Tastenkombination STRG+R in Metatrader) welcher den erstellten EA auf vergangenen Kursverläufen testet. Dies kann sowohl visuell als auch nicht visuell erfolgen. Beim visuellen Test kann man dem Experten direkt bei der Arbeit zuschauen und sieht so auch, ob die ursprünglich gewollte Signallogik auch wirklich umgesetzt wird oder ob das Programm kleinere Fehler aufweist. Mehr zum Thema „Testen einer Strategie“ werden wir in einem Video betrachten. Tragt euch am besten in unseren Newsletter ein, um unsere besten Veröffentlichungen nicht mehr zu verpassen, sowie monatlich marktrelevante Informationen zu erhalten.

Um allerdings selbstständig programmieren zu können, ist es notwendig sich einen ersten Eindruck von der Syntax der Sprache zu machen und sich ein Handbuch zu organisieren, in dem die wichtigsten Befehle dokumentiert sind. Das Handbuch war schnell gefunden und wird in deutscher und englischer Sprache von der Firma Metaquotes zur Verfügung gestelllt: MetaTrader 5 Handbuch (https://www.mql5.com/files/pdf/mql5_german.pdf). Dieses stolze 4369 Seiten umfassende Nachschlagewerk enthält alle wichtigen Befehle der Programmiersprache und liefert dazu noch Beispiele und Dokumentationen. Ein solches Grundlagenwerkes stellte sicher, dass wir die richtigen Befehle sowie deren Verwendung parat hatten und nachvollziehen konnten. Weiterhin hielten wir es für sinnvoll, uns noch einen sehr gut dokumentierten Code zu suchen. In Verbindung mit dem Nachschlagewerk konnten wir so nachvollziehen, wie die Programmiersprache funktioniert und machten uns mit der Syntax der If-Statements und Schleifen vertraut. Wir nutzen hierfür Außerdem interessierten wir uns noch für die Funktionsweise der Orderaufgabe im Detail (hier geht es zur Dokumentation: Ein Paar Testläufen eines EAs aus dem Internet reichten aus, um uns mit dem EA-Strategie Tester vertraut zu machen. Für heute hatten wir uns den Feierabend mehr als verdient.

MQL5 Syntax – Parallelen zu C & C++

Der zweite und dritte Tag.

Nachdem der erste Tag viel Neues mit sich brachte, war klar, dass das tiefere Eindringen in die Syntax der Sprache essentiell ist. Da MQL5 an die Programmiersprache C++ angelehnt ist und diese eine wesentlich bessere Dokumentation als MQL5 hat, setzen wir uns ein oder zwei Tage mit dieser Sprache und ihren Eigenarten auseinander. Auf der Plattform von Sololearn gibt es einen kostenfreien Kurs zu C++. (Dieser kann hier abgerufen werden: http://www.sololearn.com/Play/CPlusPlus ). Der Kurs ist sowohl als App als auch als Online-Version verfügbar und synchronisiert sich automatisch, sodass der aktuelle Fortschritt immer und überall abrufbar ist. Die in Browser Version hat man aus Erfahrung schneller bearbeitet und ist während der Bearbeitung aufmerksamer als bei der Nutzung der App für unterwegs, aber es geht ja auch nur um ein Gefühl für die Sprache. Wie schreibt man Methoden und wendet diese an? Wie werden Variablen deklariert? Wie funktioniert ein if-Statement? Wie wende ich eine Funktion auf ein Objekt an? Wie lade ich Klassen aus der Standardbibliothek?

All diese Fragen sind typisch und mehr als nur berechtigt. Das Problem ist, dass es zu MQL5 dazu eben keine so intuitiven Antworten und Lernmöglichkeiten gibt.

UPDATE: Vor kurzem sind wir auf den folgenden MQL5 Kurs gestoßen. Da Programmieren am anfang etwas ernüchternd sein kann, sind wir uns sicher, dass es euch hilft, in einen aktiven Kurs eingebunden zu sein, der auch E-Mail Support anbietet, was in manchen Debugging-Fragen sicherlich hilfreich sein wird.

MQL5 Tutorial Golden Goose Kurs

Unser erster EA – MQL5 Trailing Stop

Tag vier und fünf

Es war nun an der Zeit, das Gelernte anzuwenden und den ersten eigenen kleinen EA zu schreiben. Doch was für ein Projekt ist als Einstieg adäquat? Da uns zu dieser Zeit das Thema Positionsmanagement sehr interessierte, entschieden wir uns für das Programmieren eines Trailling Stop EAs. Natürlich ist eine Trailing Stop Funktion bereits im Metatrader 5 vorinstalliert und lässt sich über einen Rechtsklick auf die offene Position einstellen:

Trailing Stop Metatrader 5 - MT5

Uns reichten jedoch die Standardeinstellungen nicht aus. Wir wollten auch Indikatoren als Trailling Stop verwenden können und Backtests durchführen, um herauszufinden welcher Stop im gewählten Zeitraum der Optimale war. Also starteten wir das „einfache Projekt“.

Ziemlich schnell wurde klar, dass das Aufgeben und Modifizieren von Orders und Positionen weitaus komplizierter ist als erwartet. Der normale Weg durch die Metratrader Ordermaske, wie er auch in der Sprache MQL5 gegangen werden kann / muss, ist sehr fehleranfällig, kompliziert und unübersichtlich. Daher schauten wir uns um und wurden in den Standard Bibliotheken von MQL5 fündig.

#include <Trade\Trade.mqh>
#include <Trade\PositionInfo.mqh>
#include <Trade\SymbolInfo.mqh>

Diese Libraries enthalten Funktionen und Methoden, die die Programmierung und die Projektentwicklung enorm vereinfachen. Statt nun alles aufwändig von Hand zu schreiben und zu befüllen, bieten sie einfache und intuitive Zugriffe auf Positionen, Orders und Trade-Parameter.

Nähere Infos zu diesen Libraries fanden wir hier (geordnet nach Erwähnung im Artikel):

https://www.mql5.com/de/articles/138

https://www.mql5.com/de/docs/standardlibrary/tradeclasses/ctrade

https://www.mql5.com/en/docs/standardlibrary/tradeclasses/cpositioninfo

https://www.mql5.com/en/docs/standardlibrary/tradeclasses/csymbolinfo

https://www.mql5.com/en/docs/constants/tradingconstants/positionproperties

Bevor wir nun im Detail in den Code starteten, schauten wir uns den Aufbau und den Ablauf eines solchen Programmes an.

Zu Beginn im Kopf des EAs werden Informationen über die Rechte und die Lizenz des EAs gemacht. Gleichfalls wird angegeben, wer den EA programmiert hat. Neben diesen Informationen wird der Output hinzugefügt, der später beim Start des EAs im Metatrader 5 im Description Teil zu lesen ist.

Direkt im Anschluss werden die Klassen aus der Standardbibliothek geladen, die die Funktionen und Methoden enthalten, die wir zur Entwicklung von einfachen und eleganten Code brauchen

Im Anschluss werden die Variablen und Inputs deklariert, die zum Betreiben des Programms benötigt werden. Inputs sind Variablen, die der Nutzer des EAs beim Starten im MT5 einstellen kann. Alle Variablen, die hier erstellt werden, sind für den kompletten Code, also das ganze Programm verfügbar. Alle folgenden Funktionen können darauf Zugreifen und mit ihnen arbeiten. In einem extra Video werden wir sehen, wie man durch die Inputs, einen EA optimieren kann. Auf diese Art und Weise lassen sich Informationen über das Handelssystem sammeln und man kann durch stabile, optimierte Parameter die Performance des Handelssystems steigern.

Nachdem alle Variablen bekannt gemacht wurden, folgte die Funktion OnInit(). In dieser, werden alle Indikatoren und Einstellungen geladen, die beim Start des EAs benötigt werden. So werden hier zum Beispiel Arrays, also Daten Matrizen, zu Zeitreihen modifiziert. Dies ist für die spätere Signalerzeugung notwendig. Bei einem Cross Over eines Moving Averages ­– also dem Schnitt von gleitenden Durchschnitten– muss der schnelle Durchschnitt in der letzten Periode zum Beispiel unterhalb des langsamen MAs liegen und in der aktuellen Periode entsprechend oberhalb. Damit diese Zugriffe möglich sind, bedarf es der Zeitreihenform der Indikatoren. Außerdem werden die , also die Variablen, die die Daten der Indikatoren übernehmen, in dieser Funktion initiiert und befüllt.

OnInit() - Funktionen im Metatrader Editor - MQL5

Nachdem die wichtigsten Einstellungen in der Startfunktion OnInit() erfolgten, muss nun festgelegt werden, was beim Entfernen der EA vom Chart (entspricht dem Abschalten) passiert. Um diese Schritte festzulegen, verwendet man die OnDenit() Funktion. In dieser Funktion werden erzeugte Arrays und Zeitreihen zur Löschung freigegeben, sowie Indikatoren entfernt und Einstellungen zurückgesetzt. Dies ist notwendig, um den vom EA belegten Speicher wieder sauber freizugeben und die Chart sowie das Handling des MT5 wieder in den Ursprungszustand zurück zu bewegen.

OnDenit() - Funktionen im Metatrader Editor - MQL5

Der Rahmen für das Programm war erstellt. Wir beschäftigten uns nun mit den beiden Funktionen, welche für die Signal-Generierung sowie den Umgang mit offenen Positionen interessant werden. Die beiden Funktionen sind OnTick() und OnTrade(). OnTick() wird immer ausgeführt, sobald sich eine Veränderung im Symbol, welches der EA ausliest, ereignet. Die OnTrade()- Funktion ähnelt der OnTick() Funktion. Dieser Teil des Codes wird nur ausgelesen, sofern eine Position im Symbol offen ist.

OnTick() - Funktionen im Metatrader Editor - MQL5OnTrade() - Funktionen im Metatrader Editor - MQL5

Da der Standardaufbau eines EAs nun bekannt ist, wollen wir die einzelnen Funktionen befüllen und der Maschine „Leben“ einhauchen.

Unser Ziel ist es, einen Trailling Stop EA zu entwickeln, der nach dem Eröffnen einer Position automatisch einen Stop setzt und diesen in Folge kontinuierlich nachzieht. Das Nachziehen soll dabei mit einem konstanten Abstand sowie immer beim Erreichen eines neuen Hochs geschehen. Wir brauchen also:

  • Einen Test, ob eine Position eröffnet wurde und was ihre Parameter sind
  • Einen Weg, den aktuellen Stop anhand des momentanen Marktkurses zu errechnen
  • Eine Möglichkeit zur Bestimmung der Nachkommstellen, die der Markt auf den EA anwenden wird, um den eingestellten Stop entsprechend anzuwenden
  • Eine Überprüfung, ob der neue Stop höher bzw. niedriger ist als der aktuelle (abhängig davon ob es sich um eine Long oder Short Position handelt

Zunächst werden dafür alle Variablen und Klassen hinzugefügt und erstellt:

#include <Trade\Trade.mqh>                                         //include the library for execution of trades
#include <Trade\PositionInfo.mqh>                                  //include the library for obtaining information on positions
#include <Trade\SymbolInfo.mqh>

input double StopDist;

double NewStop;
double CurStop;

CTrade m_Trade;
CPositionInfo myposition;

Wofür genau double, int, sowie Klammer- und Punktsetzung etc. stehen, soll nicht Teil dieses Artikel sein und kann im entsprechenden C++ Tutorial (als alternative ein schönes Buch) schnell erlernt und nachgeschlagen werden.

Im Code Ausschnittieht man, dass zwei double Variablen global deklariert werden: NewStop, CurStop. NewStop wird den aktuellen rechnerischen Stop enthalten und CurStop wird den aktuellen Stop der offenen Position zwischenspeichern. Wir benötigen beide Variablen, um später vergleichen zu können, welcher Stop das geringere Risiko in sich trägt und entsprechend den von uns gewünschten Stop als Stop für die Position zu wählen. Die Variablen m_Trade und myposition sind Objekte, welche mithilfe der Standardbibliotheken erzeugt wurden. Das Objekt m_Trade spricht den aktuellen Trade an, der im Symbol geöffnet ist. myposition enthält Informationen über die aktuelle Position, wie beispielsweise den aktuellen Stop Loss, Take Profit, das Volumen etc.

Da wir für einen Trailing Stop, keine speziellen Einstellungen vornehmen müssen und aktuell auch keine Indikatoren gewollt sind, können die Funktionen OnInit() sowie OnDenit() ungefüllt gelassen werden. Für unsere Zwecke werden die Funktionen OnTrade() sowie OnTick() besonders interessant. Im Falle eines Trade Szenarios, sowie bei jedem im Symbol entstehenden Tick, wollen wir prüfen, ob unser Trade noch unseren Vorstellungen entspricht und/oder ob wir etwas anpassen müssen. In der Funktion OnTrade() werden wir den initialen Stop der Position festlegen. Diesen benötigen wir, um später unseren Stop trailen zu können, sofern er vorteilhaft im Verhältnis zum aktuellen Stop ist.

Betrachten wir zunächst einmal die Eingaben, welche wir in der OnTrade() Funktion tätigen. Hier soll der initiale Stop gesetzt werden, welchen wir als Referenzwert für unseren Trailling Stop benötigen.

//+------------------------------------------------------------------+
void OnTrade()
  {
   double PriceB=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double PriceS=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Inital_Safe_Stop = StopDist*3;
   
   double TP=0;

   int Commas=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
   double Factor=1/MathPow(10,Commas-1);

   double SL_B=PriceB-(Inital_Safe_Stop*Factor);
   double SL_S=PriceS+(Inital_Safe_Stop*Factor);


   if(PositionSelect(_Symbol))
     {
      if(myposition.PositionType()==POSITION_TYPE_BUY)
        {
         if(myposition.StopLoss()==0)
           {
            m_Trade.PositionModify(_Symbol,SL_B,TP);
           }
        }

      // Same now For Sell Positions        
      if(myposition.PositionType()==POSITION_TYPE_SELL)
        {
         if(myposition.StopLoss()==0)
           {
            m_Trade.PositionModify(_Symbol,SL_S,TP);
           }
        }
     }

  }
//+------------------------------------------------------------------+

Der Code ist in diesem Fall nicht auf maximale Effizienz sondern auf Verständlichkeit optimiert. Grundsätzlich sollte zunächst darauf geachtet werden, die Programme zum Laufen zu bekommen und sich dann mit Optimierung und performanter Programmierung zu beschäftigen. Dank leistungsfähiger Hardware kann uns heutzutage auch die ein oder andere unschöne Darstellung verziehen werden. Gehen wir den Code einmal Schritt für Schritt durch. Zunächst wird die OnTrade() Funktion geöffnet. Dann wird der aktuelle Bid und Ask Preis des Marktes in einer Variablen gespeichert. Für diese Abfrage nutzen wir die SymbolInfoDouble() Funktion. In der Funktion selbst nutzen wir _Symbol, um den Markt auszuwählen, auf dem der EA aktuell aktiv ist. Danach geben wir an, welche Information wir vom ausgewählten Symbol abfragen wollen. In unserem Fall eben den Bid und den Ask Preis. Die Funktion gibt, wie der Name es bereits sagt, die Informationen als Double, also als Fließkommazahl aus.

Automatische Code Ergänzung Metaeditor Metatrader 5 - MQL5

Um die Programmierung zu vereinfachen und zu beschleunigen gibt der Metatrader Editor immer an, welche Informationen der Funktion zu übergeben sind, damit sie problemlos funktioniert. Sollte man wider Erwarten damit nicht weiterkommen, so ist das Googlen der gefragten Funktion meistens zielführend.

Nach der Abfrage der aktuellen Preise des Marktes wollen wir eine Variable für den Initialstop, welcher für nur einen Tick, also bis zur nächsten Kursstellung im Basiswert, im Markt ist und dann sofort durch den Ricchtigen Stop ersetzt wird erstellen. Dies ist nicht zwangsläufig notwendig aber ist ein zusätzlicher Schritt, in dem wir mit Rechenoperationen in Berührung kommen. Dazu multiplizieren wir den Trailling Stop Abstand mit 3 und speichern diese Pip Anzahl ebenfalls als Variable des Typ Double ab. Damit der Stop Loss für jeden Basiswert funktional ist, beziehen wir die Anzahl der Stellen ein, den ein Basiswert hat, denn dies ist nicht für alle Basiswerte gleich. So haben die Yen Paare weniger Stellen als zum Beispiel der EUR/USD. Damit dies keine Probleme bereitet, passen wir unsere Stop Inputs an. Dies passiert durch die folgende kurze mathematische Formel unter Zuhilfenahme der MathPow() Funktion, welche das Potenzieren in MQL5 erlaubt.

Um den initialen Stop Loss für eine Kauf- und eine Verkaufsposition zu bestimmen, ziehen wir im Falle der Kaufposition den initialen angepassten Stop vom Bid-Preis ab, bzw. addieren ihn im Fall einer Verkaufsposition auf den Ask Preis. Darauf folgt lediglich die Abfrage, ob eine Position im aktiven Markt offen Position eine Kauf oder Verkaufsposition ist. Außerdem wird abgefragt, ob der Stop der Position noch nicht gesetzt ist. Wenn dies der Fall sein sollte, erfolgt eine Anpassung der Order und der initiale Stop Loss wird eingestellt.

Dabei sind folgende Funktionen besonders hervorzuheben:

if(myposition.PositionType()==POSITION_TYPE_BUY)

Myposition ist ein Objekt, welches durch die Standardklasse SymbolInfo.mqh  und CPositionInfo erstellt wurde. Dadurch lassen sich Informationen über offene Positionen leicht durch Methoden wie PositionType() abfragen oder vergleichen.

if(myposition.StopLoss()==0)

Im nächsten Schritt wurde mit dem selben Objekt aber nun mit der methodischen Abfrage StopLoss() der aktuelle Stop Loss Wert der Position ausgelesen und logisch getestet.

m_Trade.PositionModify(_Symbol,SL_S,TP);

Zu guter Letzt wird durch das mit Hilfe von CTrade erstellte Objekt und der Methode PositionModify() die offene Position verändert und der Initial Stop greift.

der Stop aber noch nicht dynamisch, sondern statisch auf dem dreifachen Level des Stops, welchen wir als Trailing Stop haben wollen. Das Dreifache ist hier nur Beispielhaft gewählt. Es soll erkennbar seinist, dass der Stop versetzt wird. Auch wenn man dies nur so lange braucht, bis im Markt der nächste Preis festgestellt wurde, ist es ein kleines Erfolgserlebnis diesen Schritt im Chart zu sehen. Es bedeutet, dass der Stop funktioniert.

Damit der Stop sich kontinuierlich anpasst, sofern der Markt in unsere Richtung läuft und somit Gewinne abgesichert werden, bzw. das Risiko reduziert wird, brauchen wir eine Abfrage, welche Tick für Tick prüft, ob der Stop angepasst werden muss und dies bei Bedarf umsetzt. Hier kommt unsere OnTick() Funktion ins Spiel.

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double PriceB=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double PriceS=SymbolInfoDouble(_Symbol,SYMBOL_ASK);

   double TP=0;

   int Commas=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
   double Factor=1/MathPow(10,Commas-1);

   double SL_B=PriceB-(StopDist*Factor);
   double SL_S=PriceS+(StopDist*Factor);

   if(PositionSelect(_Symbol))
     {
      if(myposition.PositionType()==POSITION_TYPE_BUY)
        {
         if(myposition.StopLoss()<SL_B)
           {
            m_Trade.PositionModify(_Symbol,SL_B,TP);
           }
        }
      // Same now For Sell Positions        
      if(myposition.PositionType()==POSITION_TYPE_SELL)
        {
         if(myposition.StopLoss()>SL_S)
           {
            m_Trade.PositionModify(_Symbol,SL_S,TP);
           }
        }
     }
  }
//+------------------------------------------------------------------+

Auf den ersten Blick lässt sich sehr schnell erkennen, warum wir erwähnten, dass man dieses Programm durchaus auch hätte effizienter schreiben können. Doch um den Lerneffekt zu vergrößern, sollte die Lesbarkeit und Verständlichkeit an vorderster Stelle stehen.

In der folgenden Kaskade von if() Abfragen wird genau wie bei der Setzung des initialen Stops zuerst geprüft, ob eine Order vorliegt und was für eine Position aktuell läuft. Jedoch erfolgt dann ein Vergleich, ob der aktuelle Stop größer oder kleiner als der Trailing Stop ist. Ist der Trailing Stop vorteilhaft für uns, also das Stop Level bei einer Kaufposition größer beziehungsweise bei einer Short Position kleiner als der aktuelle Stop, so wird die Order mit der PositionModify() Methode verändert, der Stop wird also nachgezogen.

Durch die Nutzung von Indikatoren können noch komplexere Trailing Stop EAs erzeugt werden. Wie Indikatoren in einem EA angewandt werden, wird an den letzten beiden Tagen besprochen.

#include <Trade\Trade.mqh>                                         //include the library for execution of trades
#include <Trade\PositionInfo.mqh>                                  //include the library for obtaining information on positions
#include <Expert\ExpertTrailing.mqh>
#include <Trade\SymbolInfo.mqh>

input double StopDist;

double NewStop;
double CurStop;

CTrade m_Trade;
CPositionInfo myposition;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   double PriceB=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double PriceS=SymbolInfoDouble(_Symbol,SYMBOL_ASK);

   double TP=0;

   int Commas=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
   double Factor=1/MathPow(10,Commas-1);

   double SL_B=PriceB-(StopDist*Factor);
   double SL_S=PriceS+(StopDist*Factor);

   if(PositionSelect(_Symbol))
     {
      if(myposition.PositionType()==POSITION_TYPE_BUY)
        {
         if(myposition.StopLoss()<SL_B)
           {
            m_Trade.PositionModify(_Symbol,SL_B,TP);
           }
        }
      // Same now For Sell Positions        
      if(myposition.PositionType()==POSITION_TYPE_SELL)
        {
         if(myposition.StopLoss()>SL_S)
           {
            m_Trade.PositionModify(_Symbol,SL_S,TP);
           }
        }
     }
  }
//+------------------------------------------------------------------+
void OnTrade()
  {
   double PriceB=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double PriceS=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Inital_Safe_Stop = StopDist*3;
   
   double TP=0;

   int Commas=SymbolInfoInteger(_Symbol,SYMBOL_DIGITS);
   double Factor=1/MathPow(10,Commas-1);

   double SL_B=PriceB-(Inital_Safe_Stop*Factor);
   double SL_S=PriceS+(Inital_Safe_Stop*Factor);


   if(PositionSelect(_Symbol))
     {
      if(myposition.PositionType()==POSITION_TYPE_BUY)
        {
         if(myposition.StopLoss()==0)
           {
            m_Trade.PositionModify(_Symbol,SL_B,TP);
           }
        }

      // Same now For Sell Positions        
      if(myposition.PositionType()==POSITION_TYPE_SELL)
        {
         if(myposition.StopLoss()==0)
           {
            m_Trade.PositionModify(_Symbol,SL_S,TP);
           }
        }
     }

  }
//+------------------------------------------------------------------+

Indikatoren in MQL5 – Trading Signale erstellen

Tag sechs und sieben – Endlich MQL5 Basics beherrschen.

Wir haben gelernt, Positionen zu modifizieren und können Stop Loss und auch Take Profits anpassen (dies funktioniert entsprechend der Stop Loss Anpassung). Es ist an der Zeit Signale zu erzeugen und Trades zu generieren, denn MQL5 ist neben der Anpassung von Positionen und einem damit einhergehenden vereinfachtem Risikomanagement hauptsächlich für das Schreiben von automatisierten Handelssystemen geschrieben worden.

Das folgende Handelssystem ist sehr einfach gebaut. Seine Performance ist auch sicher nicht die beste. Jedoch lässt sich an diesem der Aufbau eines Handelssystems gut erkennen. Die zugrundeliegende Theorie ist der CCI, ein oszillierender Indikator. Wir wollen das Momentum des Marktes handeln und mit dem Trend gehen. Wir gehen im Markt Long sobald der CCI einen Wert von über 100 erreicht und wir shorten sobald der CCI unter -100 fällt. Um unsere Risiken zu limitieren, verlassen wir die Long Position bei CCI Werten unter 95 und die Short Position bei Werten über -95. Damit erzeugen wir eine Asymmetrie, die sich auch in der Performance widerspiegelt. Ein solches Handelssystem sollte im Speziellen in trendstarken Märkten wie dem EUR/USD ab Mitte 2014 bis zur Jahresmitte 2015 gut funktionieren. In einem Backtest ergab sich die folgende Equity-Kurve:

Backtest CCI EA MQL5 EURUSD

Es lässt sich gut erkennen, dass die Gewinne in Schüben kommen und wir viele kleine Verluste erleiden. Dies entspricht den Erwartungen, welche wir mit dem System verknüpft haben. In dem Zeitraum erzielte der EA insgesamt eine Performance von 6.24%, was nicht besonders überragend ist, aber immerhin macht er Profite.

Es zeigt sich jedoch auch sehr deutlich, dass wir durch den Oszillator immer nur sehr kurz im Markt investiert sind. Die Folge sind hohe Transaktionskosten, sowie nur kurze Bewegungen, die eingefangen werden. Ein solches Problem hätte man bei einem Trendfolge-System nicht. Jedoch sind dabei auch die Risiken beim Eröffnen der Position größer. Das Risikomanagement sowie die Stop Setzung muss komplexer werden, als es bei diesem System der Fall ist.

Hier nun der Quellcode des EAs:

//+------------------------------------------------------------------+
//|                                                   Inside_CCI.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"

input int CCI_MA;
input int CCI_Upper;
input int CCI_Lower;
input int CCI_Upper_Exit;
input int CCI_Lower_Exit;
input int TrendFilter;

#include <Trade\Trade.mqh>                       
#include <Trade\PositionInfo.mqh>                        
#include <Expert\ExpertTrailing.mqh>
#include <Trade\SymbolInfo.mqh>

int CCI_Handle;
int MA_Handle;

double CCI_Val[];
double MA_Val[];

CTrade my_trade;
CPositionInfo my_position;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   CCI_Handle=iCCI(_Symbol,0,CCI_MA,PRICE_CLOSE);
   MA_Handle = iMA(_Symbol,0,TrendFilter,0,MODE_SMA,PRICE_CLOSE);
   ArraySetAsSeries(CCI_Val,true);
   ArraySetAsSeries(MA_Val,true);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   ArrayFree(CCI_Val);
   ArrayFree(MA_Val);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   CopyBuffer(CCI_Handle,0,0,3,CCI_Val);
   CopyBuffer(MA_Handle,0,0,3,MA_Val);
   double CurrentPrice=SymbolInfoDouble(_Symbol,SYMBOL_BID);

   if(!PositionSelect(_Symbol))
     {
      if(CurrentPrice>MA_Val[1])
        {
         if(CCI_Val[1]>CCI_Upper)
           {
            if(CCI_Val[2]<CCI_Upper)
              {
               my_trade.Buy(0.1,_Symbol);
              }
           }
        }
      if(CurrentPrice<MA_Val[1])
        {
         if(CCI_Val[2]>CCI_Lower)
           {
            if(CCI_Val[1]<CCI_Lower)
              {
               my_trade.Sell(0.1,_Symbol);
              }
           }
        }
     }
   CopyBuffer(CCI_Handle,0,0,3,CCI_Val);

   if(PositionSelect(_Symbol))
     {
      if(my_position.PositionType()==POSITION_TYPE_BUY)
        {
         if(CCI_Val[1]<CCI_Upper_Exit)
           {
            my_trade.Sell(0.1,_Symbol);
           }
        }

      if(my_position.PositionType()==POSITION_TYPE_SELL)
        {
         if(CCI_Val[1]>CCI_Lower_Exit)
           {
            my_trade.Buy(0.1,_Symbol);
           }
        }
     }

  }
//+------------------------------------------------------------------+

Dabei ist besonders wichtig:

CTrade my_trade;

Aus dem CTrade Standardpaket. Durch diese Deklaration lässt sich auf Trades zugreifen. Man kann also Positionen einfach eröffnen und skalieren.

my_trade.Sell(0.1,_Symbol);

my_trade.Buy(0.1,_Symbol);

Des Weiteren ist der Abgleich der offenen Position ein wichtiger Schritt. Es wird geprüft, ob die offene Position eine Buy oder Sell Position ist.

my_position.PositionType()==POSITION_TYPE_SELL

my_position.PositionType()==POSITION_TYPE_BUY

Das Array, welches die Indikatoren-Daten speichert, muss durch ArraySetSeries zu einer Zeitreihe modifiziert werden, welche dann mit der CopyBuffer Funktion befüllt wird. Danach kann in den folgenden Schritten auf die Werte der Zeitreihe entsprechend einer Array Abfrage mit [x] zugegriffen werden. So lassen sich über If Abfragen Signale generieren. Hier nochmals ein Beispiel aus dem CCI Code:

if(CurrentPrice<MA_Val[1])
        {
         if(CCI_Val[2]>CCI_Lower)
           {
            if(CCI_Val[1]<CCI_Lower)
              {
               my_trade.Sell(0.1,_Symbol);
              }
           }
        }

Dabei stellten CCI_Lower und Upper die Werte dar, ab denen wir Positionen eröffnen wollten. Hier wird zudem geprüft, ob der Wert gerade erst erreicht wird, ähnlich einem Cross Over, sodass ein Signal, im Falle eines Stop Outs nicht sofort wieder eine Position eröffnet. Das würde den Stop Out, also das Schließen der Position bei einem Gegensignal überflüssig machen.

Hier noch die Performance des EAs über die letzten 21 Jahre im USDJPY:

Backtest CCI EA MQL5 USDJPY

Wir hoffen, dass mit diesem Beispiel einiges zum Thema „Automatisiertes Handeln“ geklärt werden konnte. Wir werden noch ein Video zum Thema „System Tests und Optimierung“ erstellen. Um dieses nicht zu verpassen, meldet euch in unserem Newsletter an. Viele Grüße

 

by Aug 26, 2016 Keine Kommentare
Nachkaufen (verbilligen) – Fluch oder Segen?

Nachkaufen (verbilligen) – Fluch oder Segen?

all

Nachkaufen (verbilligen) – Fluch oder Segen?

Nachkaufen / verbilligen: Kennen Sie das? Sie eröffnen eine Position und diese entwickelt sich nicht wie geplant. Erst sind es nur wenige Prozent Verlust. Dann bereits 10% oder mehr. Sie müssen sich nun entscheiden, was Sie tun. Verlieren fühlt sich schlecht an (mehr zum Risikomanagement). Sie könnten nun den Verlust durch einen Verkauf realisieren. Dann müssten Sie sich jedoch den Fehltrade und Verlust eingestehen. Sie könnten die Position jedoch auch laufen lassen und auf ein glückliches Ende hoffen. Eine verzwickte und auch emotional geladene Situation.

 

Schlechtes Nachkaufen

Viele Anleger entscheiden sich nachzukaufen. Dieses Vorgehen nennt man „Verbilligen“. Das Kalkül dessen ist, durch einen zweiten, billigeren Einkauf den durchschnittlichen Einkaufspreis, bei dem Ihre Position plus-minus-null notiert (break-even), zu senken. Wenn Sie 5 Äpfel für jeweils 2€ kaufen und weitere 5 für jeweils 1€ dann liegt ihr durchschnittlicher Einkuafspreis von 5 Äpfeln bei jeweils 1,50€. Sie haben durchschnittlich billiger eingekauft. Sie haben verbilligt. Doch was kurz beschrieben sehr attraktiv klingt, birgt zahlreiche Fallen und ist für die meisten Trader der Einstieg zu noch größeren Verlusten.

Tabelle 1

Wann Verbilligen Fluch und wann Segen für einen Anleger ist, möchte ich an einem Beispiel erarbeiten.

Ein Anleger kauft beispielsweise bei einem Kurs von 24,00€ insgesamt 50 Aktien (siehe Abbildung). Nachdem die Aktie um 9% auf 21,84€ gefallen ist und er bereits 108€ von den anfangs investierten 1.200€ verloren hat, entscheidet er sich nochmal nachzukaufen. Zwar könnte er nun für dieselbe Summe, also 1200€, 55 Aktien erwerben, jedoch wird der Anleger bereits vorsichtiger und entscheidet sich mit einem besorgten Blick auf seine Geldbörse und die verlustbringende Position nur 45 Aktien im Wert von 982,80€ nachzufragen. Der durchschnittliche Einkaufspreis sinkt nun von 24,00€ auf 22,98€. Bei diesem Wert erreicht seine Position, welche aus mehreren Einzelpositionen besteht, nun den Break-Even-Point.

Tabellen 2

Doch erneut fällt die Aktie. Viele ungeübte Anleger lassen sich nun dazu verleiten immer öfter nochmals nachzukaufen. Es wird immer billiger und sie wollen diese Einstiegschancen immer wieder nutzen. Auch kommt oft der Gedanke auf, dass die Aktie nun doch mal drehen müsse. Schnell übernehmen also die Emotionen die Kontrolle und man lässt sich zu weiteren Verkäufen verleiten. Krampfhaft versucht man die verlustreiche und unangenehme Situation durch Nachkäufe zu beheben.

Die Probleme dessen liegen auf der Hand. Die vom Anleger investierte Summe ist mittlerweile 123% größer als gewollt. Kann er sich dies leisten? Kann er sich vor Allem die Verluste leisten? Durch die größere Positionssumme verliert er mit jedem weiteren Prozent, welchen die Aktie fällt, nun mehr Geld. Waren es anfangs bei nur 1.200€ noch 12€ je Prozent, so beträgt der neue Verlust 26,82€ je Prozent Kursrückgang. Er verliert nun 123% mehr pro Prozent Kursrückgang als zuvor.

Dies bedenken viele Anleger nicht. Des Weiteren verbilligen die meisten nicht konsequent. Sie senken das Investment je Nachkauf. Waren es anfangs noch 1.200€, wurden beim ersten Nachkauf 1.000 und dann nur noch 500€ eingesetzt. Der Anleger weiß, dass er es sich nicht leisten kann und bangt um die Verluste und hofft auf einen glücklichen Ausgang. Auf Glück sollte man an der Börse jedoch nicht setzen. Dann kann man auch ins Casino gehen. Die erste und verlustreichste Position hat durch ihre Größe (44,7% Anteil an der Gesamtsumme) weiterhin das meiste Gewicht. Die Nachkäufe sind nur ein Tropfen auf dem heißen Stein. Es sind gebührenpflichtige Nachkäufe mit fragwürdigem Nutzen. Während der Kurs um 16,66% gefallen ist, so konnte der Break-Even lediglich um 6,9% gesenkt werden.

Außerdem: Hätte der Anleger nicht verbilligt, so hätte er seine Position bei 20,00€ Kurswert mit „nur“ 200€ (16,66% Verlust) glattstellen können. Er hätte einen Verlust in Höhe von 200€ realisiert. Durch seine unkoordinierten und emotional ausgeführten Nachkäufe wären es nun bereits 281,90€ Verlust.

Gutes Nachkaufen

Tabellen 3

Verbilligen ohne Plan ist einer der teuersten Fehler, den ein Anleger machen kann. Doch kontrolliertes Verbilligen ist eine der bedeutendsten Möglichkeiten, vor Allem in volatilen und labilen Marktphasen, zumeist ungenutztes Kurspotential zu aktivieren. Der Anleger vermeidet nun Emotionen, indem er einen festen und zuvor festgelegten Investment-Plan für die Position besitzt. Er möchte bestenfalls aber auch maximal 1.200€ in die Aktie investieren. Da die Aktie aktuell fällt und er sich unsicher ist ob und wann diese dreht, sowie er sein Kapital schützen möchte, entscheidet er sich bewusst bei 24€, 21,82€ und 20€ mit jeweils 1/3 der Gesamtsumme, also jeweils 400€, einzusteigen.

Wir erkennen nun die Vorteile dieses Handelns: Der Anleger kann nun Verluste vermeiden. Wäre er sofort bei 24€ Kurswert mit 1.200€ eingestiegen, so er hätte 16,66% tiefer bereits 200,00€ verloren. Durch das verbilligende Aufbauen der Zielposition konnten die Verluste um rund 50% auf 100,76€ gesenkt werden.

Durch das gleichmäßige Investieren konnte der Anleger mit jeder Einzelposition trotz gleicher Summe (400€) mehr Aktien erwerben. Erst 17, dann 18 und zuletzt 20. Dies könnte ihm für Dividenden nun zu Gute kommen. Auch ermöglichte das gleichmäßige Verbilligen ihm einen besseren billigeren/durchschnittlichen Einstiegspreis. Im oberen Beispiel benötigte der Anleger noch einen Kurszuwachs um satte 11,75% von 20 auf 22,35€ um den Break-Even zu erreichen. Nun sind es lediglich 9,15% von 20 auf 21,83€ mit einer kleineren Positionssumme und weniger Verlusten.

 

Nachkaufen – Vorteil oder Nachteil?

Doch was passiert, wenn die Aktie nicht fällt, sondern steigt bevor man mit allen drei Teilkäufen eingestiegen ist? Pech! So wie man mit einer kleineren Position bei fallenden Kursen weniger Verlust macht, so macht man natürlich mit einer kleineren Position bei steigenden Kursen auch weniger Gewinn. Doch die Position kann man im Gewinnbereich natürlich auch step by tsep erweitern. Vor Allem für antizyklische Investoren kann das Verbilligen einerseits das Kapital schützen und auf der anderen Seite bei der Suche nach dem perfekten Einstiegspunkt helfen. Man geht nicht in einem Moment „All In“, sondern tastet sich in zwei oder drei Einkäufen an einen möglichst optimalen Einstieg heran. Bedenken sollte man jedoch die höheren Orderkosten. Verbilligt man mit zu hoher Frequenz (z.B. immer nach einem Prozent Kursverlust), dann übersteigen möglicherweise die Orderkosten schnell den möglichen zusätzlichen Gewinn.

Verbilligen ist Fluch und Segen zugleich. Es kann schaden, aber auch helfen. Entscheidend ist immer der klare Handelsplan. Wann möchte ich mit wie viel Kapital einsteigen? Was sind meine Ziele? Wann realisiere ich die Verluste? Handeln Sie nicht aus dem Bauch heraus, sondern nach Plan. Ein Plan, welcher auch kontrolliertes Verbilligen enthalten kann.

by Aug 24, 2016 Keine Kommentare
Cost Average 3.0 – Die Lösung – ETF-Sparpläne richtig kombinieren!

Cost Average 3.0 – Die Lösung – ETF-Sparpläne richtig kombinieren!

all

Update – jetzt mit ~ 100 beobachteten ETFs im Newsletter

ETF-Sparpläne richtig kombinieren: Sind Sie es leid auf die nächste Krise zu warten? Wie oft hört man die Ausrede: „Aktuell steht der Markt viel zu hoch, um zu kaufen“ – In diesem Artikel zeigen wir Ihnen, dass diese Ausrede nicht zählt!!!

Vor ein paar Wochen haben wir in dem Artikel „Cost Average 2.0 – Der ETF-Sparplan auf dem Prüfstand!“ gezeigt, dass die größten Ausreden am Finanzmarkt keinerlei Bedeutung haben und dass das Investieren kein Hexenwerk ist. (Die Grundlagen zum Cost Average können hier nochmals nachgelesen werden).

Es hat uns überrascht, wie viel positives Feedback wir für diesen Artikel bekommen haben. In vielen Kommentaren und E-Mails konnten wir aber dennoch heraushören, dass es noch immer eine Frage gibt. Wie setze ich den „Extremversuch 2.0“ in die Tat um? (Eine Erklärung des Versuches folgt)

Das Ergebnis unseres Vergleichs von ETF-Sparplänen

In dem Artikel „Cost Average 2.0“ haben wir 5 beliebte ETF-Sparpläne mit einander verglichen. Wir haben in unserem Versuch jeden Monat 33 EUR gespart und in einem Zeitraum von 22 Jahren investiert. Unsere beiden Gewinner waren der klassische Index-Sparplan und der Extremversuch 2.0.

Klassischer Index-Sparplan

Wir investieren jeden Monat einen Betrag von 33 EUR. Hierbei handelt es sich um einen ganz normalen ETF-Sparplan. Es wurden immer DAX-ETF-Anteile erworben. Stand der DAX sehr hoch, konnten wir weniger Anteile erwerben und wenn der DAX niedriger notierte, konnten wir in diesem Monat mehr neue Anteile in unserem Depot begrüßen.

Extremversuch 2.0

Wir kaufen nur dann, wenn der aktuelle Preis mindestens 50% unterhalb des letzten Hochs ist. Wenn es zu diesem Szenario kommt, kaufen wir jeden Monat für 580 EUR anstatt für 33 EUR. Dieses Szenario kommt nicht so häufig vor. Daher haben wir am Ende des Betrachtungszeitraums sowohl bei dem normalen ETF-Sparplan als auch bei dem Extremversuch die selbe Summe investiert.

In der Grafik zeigt der rote Graph die Depotentwicklung des ETF-Sparplans. In lila ist die Depotentwicklung des Extremversuchs 2.0 dargestellt. Der blaue und grüne Chart zeigt die erworbenen ETF-DAX-Anteile.

In der Grafik zeigt der rote Graph die Depotentwicklung des ETF-Sparplans. In lila ist die Depotentwicklung des Extremversuchs 2.0 dargestellt. Der blaue und grüne Chart zeigt die erworbenen ETF-DAX-Anteile.

Unser damaliges Fazit: „Timing lohnt sich nur, wenn auch Kapital verfügbar ist, welches geballt investiert werden kann. Ansonsten wird der Vorteil aus den günstigen Kursen von dem Nachteil des nicht Investierens überwogen, da nicht das gesamte Einkommen zu jeder Zeit zum Investieren bereit ist.“

Auch wenn das Kaufen in Krisen (Extremversuch) etwas profitabler war, kamen wir dennoch zu dem Schluss einfach jeden Monat zu investieren. Die Gründe hierfür sind vielfältig. Zum einen kann es passieren, dass in der Krise nicht ausreichend Kapital zur Verfügung steht. Zum anderen sitzt der Sparer im Bullenmarkt auf seinem Geld. Des Weiteren haben viele nicht die Geduld so lange zu warten, sodass die Gefahr groß ist, dass das ersparte Geld konsumiert wird (Fernseher, Wasserbett, Auto).

Dennoch wollen viele von euch nur in Krisen kaufen. Da wir das sehr gut nachvollziehen können, stellen wir euch nachfolgend unseren Ansatz vor.

Die Lösung – Kombinieren von ETF-Sparplänen

Dass unser geliebter DAX-Index in naher Zukunft unterhalb der Marke von 6.187,37 Punkte (Allzeithoch 12.374,73) notieren wird, können wir uns nur schwer vorstellen. Würden wir heute mit dem Sparen beginnen, könnten wir vielleicht erst in einigen Jahren mit dem Investieren starten. Diese Vorstellung ist für viele Anleger verständlicherweise sehr unbefriedigend.

Da wären wir wieder bei der Ausrede: „Aktuell steht der Markt viel zu hoch, um zu kaufen“. In dieser Situation müssten wir der Ausrede sogar zustimmen. ABER, wir haben ja versprochen, dass wir aufzeigen, warum es diese Ausrede nicht gibt!

Die Lösung liegt im Kombinieren von ETF-Sparplänen. Betrachtet man nur einen Markt, dann kann es passieren, dass man Jahre auf einen günstigen Einstieg warten muss. Betrachtet man jedoch mehrere Märkte, findet man viel häufiger günstige Einstiege und gelangt zudem zu einem sehr diversifiziertes Portfolio.

So funktioniert es…

Wir schauen uns die Entwicklung vom DAX, einem amerikanischen Index, Gold, Öl, Japan, China, den Immobilien und einigen anderen Märkt an. Jedes Mal, wenn einer dieser Märkte zum Monatsende um 40 oder sogar 50 Prozent unterhalb seines Hochs notiert, kaufen wir. Wir investieren immer nur einen kleinen Betrag, sodass wir es uns auch leisten könnten, wenn mal zwei oder auch drei Märkte für mehrere Monate so tief stehen.

Weiter unten finden Sie eine Übersicht der ETF-Sparpläne, die wir selbst fahren. In unserem kostenfreien monatlichen Newsletter werden wir ab sofort darüber berichten, welche der ETFs weit von ihrem Allzeithoch entfernt sind.

Diversifizierung

Natürlich ist es schön, wenn man nicht nur Einzelaktien kauft, sondern den DAX-Index als ETF. So hat man eine Vielzahl von Unternehmen im Depot. Wenn eines dieser Unternehmen mal schlechter performt, können die 29 anderen Unternehmen das eventuell ausgleichen.

Um unser Portfolio noch weiter zu diversifizieren und möglichst häufig Einstiege zu finden, schauen wir uns aktuell 38 unterschiedliche Märkte an. In dem unterem Klapptext haben wir für Sie einmal alle aufgeführt. Klicken Sie einfach auf das weiße Pluszeichen, um den Text auszuklappen. Hier finden Sie zu jedem ETF eine kleine Beschreibung und die ISIN, die wir von der Seite Finanzen.net entnommen haben. 

Eine Übersicht all unserer ETF-Sparpläne!

DAX® TR UCITS ETF (LU0378438732) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des DAX (R) Index (ISIN DE0008469008) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Deutschland

MDAX TR UCITS ETF (LU1033693638) Comdirect,

Das Anlageziel des ComStage MDAX® TR UCITS ETF besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des MDAX® TR (Performance-Index) (ISIN DE0008467416) (der „Index“) anknüpft. Zur Erreichung des Anlageziels erwirbt der Fonds eine Anzahl von Aktien, die in ihrer Zusammensetzung nicht unbedingt mit den im Index enthaltenen Aktien übereinstimmen müssen. Um die Differenz in der Wertentwicklung zwischen diesen Aktien und dem abzubildenden Index auszugleichen, schließt der Fonds mit der Commerzbank einen Tauschvertrag (sog. Index- Swap) ab.
Kategorie: Aktienfonds Deutschland/Nebenwerte

CAC 40 UCITS ETF (LU0419740799) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des CAC 40 (R) Index (ISIN FR0003500008) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Frankreich

Dow Jones Switzerland Titans 30 Net TR UCITS ETF (LU0392496427) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des SMI (R) Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Schweiz

FTSE China A50 UCITS ETF (LU0947415054) Comdirect,

Das Anlageziel des ComStage ETF FTSE China A50 UCITS ETF besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des FTSE China A50 Index USD Preisindex ( („Index“) anknüpft. Der Index ist ein nach Streubesitz-Marktkapitalisierung gewichteter Index in USDollar, der die 50 größten Unternehmen in Festland-China umfasst, deren A-Aktien an den Börsen Shanghai und Shenzhen gehandelt werden.
Kategorie: Aktienfonds Hong Kong + China

HSI UCITS ETF (LU0488316729) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des Hang Seng Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Hong Kong + China

MSCI USA Large Cap TRN UCITS ETF (LU0392495882) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des MSCI Total Return Net USA Large Cap Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds USA

MSCI USA Small Cap TRN UCITS ETF (LU0392496005) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des MSCI Total Return Net USA Small Cap Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds USA/Nebenwerte

MSCI World TRN UCITS ETF (LU0392494562) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des MSCI Total Return Net World Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds International

Nasdaq-100® UCITS ETF (LU0378449770) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des Nasdaq-100 (R) Index (ISIN US6311011026) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds USA

Nikkei 225® UCITS ETF (LU0378453376) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des Nikkei 225 (R) Stock Average Index (ISIN XC0009692440) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Japan

NYSE Arca Gold BUGS UCITS ETF (LU0488317701) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des NYSE Arca Gold BUGS (TM) Index (ISIN XC0009699965) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Gold

PSI 20 UCITS ETF (LU0444605215) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des PSI 20 (Preis-) Index anknüpft. Zur Erreichung des Anlageziels wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Branchen + Themen/Sonstige

SDAX® TR UCITS ETF (LU0603942888) Comdirect,

Das Ziel besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des SDAX (R) TR Index anknüpft. Der Index ist der Auswahlindex für 50 kleinere Unternehmen, sogenannte Small Caps. Enthalten sind die klassischen Industriebranchen, darunter Medien, Chemie, Transport, Industrie und Finanzdienstleistungen. Zur Erreichung des Ziels wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und kann zudem derivative Techniken einsetzen, wie z.B. mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Deutschland/Nebenwerte

STOXX ® Europe 600 Food & Beverage NR UCITS ETF (LU0378435803) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des STOXX (R) Europe 600 Food & Beverage (NR) (Performance Index) (ISIN EU0009658756) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Nahrung

STOXX ® Europe 600 Health Care NR UCITS ETF (LU0378435985) Comdirect,
Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des STOXX (R) Europe 600 Health Care (NR) Index (Performance Index) (ISIN EU0009658731) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Pharma + Gesundheit

STOXX ® Europe 600 Real Estate NR UCITS ETF (LU0378436793) Comdirect,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des STOXX (R) Europe 600 Real Estate (NR)Index (Performance Index) (ISIN CH0024505791) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Immobilien + Reits/Europa

STOXX ® Europe 600 Banks NR UCITS ETF (LU0378435399) OnvistaBank,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des STOXX (R) 600 Banks NR Index (ISIN EU0009658814) (Performance Index) anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Finanzwerte

Lyxor ETF Euro Corporate Bond – C-EUR  (FR0010737544) OnvistaBank,

Der Fonds bildet den Anleihenindex Markit iBoxx EUR Liquid Corporates nahezu eins zu eins ab. Der Markit iBoxx EUR Liquid Corporates Index bildet 40 in Euro denominierte Unternehmensanleihen mit Investment Grade ab. Um die größtmögliche Korrelation mit der Performance des Index zu erreichen, wird der Fonds in einen Korb mit Wertpapieren aus der Eurozone und in Höhe von maximal 10% seines Vermögens in einen außerbörslich gehandelten aktien-, anleihe- und indexbezogenen Swap anlegen.
Kategorie: Rentenfonds EUR/Unternehmen

F.A.Z. Index UCITS ETF (LU0650624025) OnvistaBank,

Das Anlageziel besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des F.A.Z. Index anknüpft. Der Index umfasst die Aktien der 100 bedeutendsten Unternehmen, die Ihren Hauptsitz in Deutschland haben und an der Deutschen Börse gelistet sind. Zur Erreichung des Anlageziels wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und kann zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Deutschland

TOPIX ® UCITS ETF (LU0392496773) OnvistaBank,

Das Anlageziel des Fonds besteht darin, den Anlegern einen Ertrag zukommen zu lassen, der an die Wertentwicklung des TOPIX (R) Index anknüpft. Hierzu wird der Fonds in erster Linie in übertragbare Wertpapiere investieren und zudem derivative Techniken einsetzen, wie zum Beispiel mit einem Swap-Kontrahenten zu marktüblichen Bedingungen ausgehandelte Index-Swaps.
Kategorie: Aktienfonds Japan

Lyxor ETF Eastern Europe (CECE NTR EUR) – C-EUR  (FR0010204073) OnvistaBank,

Das Anlageziel des Fonds besteht darin, die Entwicklung des CECE EUR Index nachzubilden und dabei gleichzeitig die Standardabweichung der Renditen (Tracking Error) zwischen dem Fonds und dem CECE EUR Index so gering wie möglich zu halten. Das Ziel ist ein über einen Zeitraum von 52 Wochen berechneter Tracking Error von weniger als 1%. Sollte der Tracking Error trotz allem 1% übersteigen, besteht das Ziel darin, unterhalb von 5% der Volatilität des CECE EUR Index zu bleiben.
Kategorie: Aktienfonds Osteuropa

Liste der neuen ETFs - Weltweit investieren

AKTIEN ETFs

„DAX® TR UCITS ETF (LU0378438732)“,
„DE000ETF9504_COMSTAGE_1_EURO_STOXX_50_UCITS_ETF“,
„MDAX TR UCITS ETF (LU1033693638)“,
„CAC 40 UCITS ETF (LU0419740799)“,
„Dow Jones Switzerland Titans 30 TR UCITS ETF (LU0392496427)“,
„FTSE China A50 UCITS ETF (LU0947415054)“,
„HSI UCITS ETF (LU0488316729)“,
„LU1104577314_COMSTAGE_MSCI_SPAIN_TRN_UCITS“,
„MSCI USA Large Cap TRN UCITS ETF (LU0392495882)“,
„MSCI USA Small Cap TRN UCITS ETF (LU0392496005)“,
„MSCI World TRN UCITS ETF (LU0392494562)“,
„Nasdaq-100® UCITS ETF (LU0378449770)“,
„Nikkei 225® UCITS ETF (LU0378453376)“,
„NYSE Arca Gold BUGS UCITS ETF (LU0488317701)“,
„PSI 20 UCITS ETF (LU0444605215)“,
„SDAX® TR UCITS ETF (LU0603942888)“,
„STOXX ® Europe 600 Food & Beverage NR UCITS ETF (LU0378435803)“,
„STOXX ® Europe 600 Real Estate NR UCITS ETF (LU0378436793)“,
„STOXX ® Europe 600 Banks NR UCITS ETF (LU0378435399)“,
„Lyxor ETF Euro Corporate Bond – C-EUR (FR0010737544)“,
„F.A.Z. Index UCITS ETF (LU0650624025)“,
„TOPIX ® UCITS ETF (LU0392496773)“,
„Lyxor ETF Eastern Europe (CECE NTR EUR) – C-EUR“,
„ComStage ATX UCITS ETF – LU0392496690“,
„ComStage CAC40 UCITS ETF – LU0419740799“,
„iShares DivDAX® UCITS ETF (DE) – DE0002635273“,
„iShares Dow Jones Asia Pacific Select Dividend 30 – DE000A0H0744“,
„iShares Core EURO STOXX 50 UCITS ETF – IE00B53L3W79“,
„iShares Core MSCI Japan IMI UCITS ETF – IE00B4L5YX21“,
„iShares Core MSCI Pacific ex Japan UCITS ETF – IE00B52MJY50“,
„iShares Core MSCI World UCITS ETF – IE00B4L5Y983“,
„iShares S&P 500 Minimum Volatility UCITS ETF – IE00B6SPMN59“,
„iShares STOXX Europe Large 200 UCITS ETF (DE) – DE0005933980“,
„iShares STOXX Europe Mid 200 UCITS ETF (DE) – DE0005933998“,
„iShares STOXX Europe Small 200 UCITS ETF (DE) – DE000A0D8QZ7“,
„ComStage STOXX Europe 600 Constr. & Mat – LU0378435639“,
„ComStage STOXX Europe 600 Financial Serv – LU0378435712“,
„ComStage STOXX Europe 600 Ind. Goods & Serv – LU0378436017“,
„ComStage STOXX Europe 600 Technology – LU0378437098“,
„ComStage STOXX Europe 600 Utilities – LU0378437338“,
„ComStage Dow Jones Switzerland Titans 30 – LU0392496427“,
„ComStage MSCI EMU TRN – LU0392494729“,
„ComStage MSCI Italy TRN – LU1104574725“,
„ComStage MSCI Spain TRN – LU1104577314“,
„ComStage Nasdaq-100 – LU0378449770“,
„ComStage STOXX Europe 600 Autom. & Parts – LU0378435043“,
„ComStage STOXX Europe 600 Chemicals – LU0378435555“,
„ComStage STOXX Europe 600 Food & Bev – LU0378435803“,
„ComStage STOXX Europe 600 Health Care – LU0378435985“,
„ComStage STOXX Europe 600 Insurance – LU0378436108“,
„ComStage STOXX Europe 600 Media – LU0378436363“,
„ComStage STOXX Europe 600 Oil & Gas – LU0378436447“,
„ComStage STOXX Europe 600 Personal & Household Goods – LU0378436520“,
„ComStage STOXX Europe 600 Retail – LU0378436876“,
„ComStage STOXX Europe 600 Travel & Leisure – LU0378437254“,
„iShares MSCI Europe Momentum Factor – IE00BQN1K786“,
„iShares MSCI Europe Quality Factor – IE00BQN1K562“,
„iShares MSCI Europe Size Factor – IE00BQN1KC32“,
„iShares MSCI Europe Value Factor – IE00BQN1K901“,
„iShares MSCI World Momentum Factor – IE00BP3QZ825“,
„iShares MSCI World Quality Factor – IE00BP3QZ601“,
„iShares MSCI World Size Factor – IE00BP3QZD73“,
„iShares MSCI World Value Factor – IE00BP3QZB59“,
„iShares MSCI UK – IE00B539F030“,
„iShares MSCI USA Small Cap – IE00B3VWM098“,
„iShares SLI – DE0005933964“,
„iShares US Equity Buyback Achievers – IE00BQT3VN15“,
„iShares China Large Cap IE00B02KXK85“

BONDS ETFs

„ComStage CB Bund-Future TR -LU0508799334“,
„ComStage iBoxx EUR Germany Cov. Cap. Overall TR – LU0488317610“,
„ComStage iBoxx EUR Germany Cov. Cap. 3-5 TR – LU0488317370“,
„ComStage iBoxx EUR Germany Cov. Cap. 5-7 TR – LU0488317453“,
„ComStage iBoxx EUR Liq. Sov. Div. Overall TR – LU0444605645“,
„ComStage iBoxx EUR Liq. Sov. Div. 1-3 TR – LU0444605991“,
„ComStage iBoxx EUR Liq. Sov. Div. 10-15 TR – LU0444606452“,
„ComStage iBoxx EUR Liq. Sov. Div. 15+ TR – LU0444606536“,
„ComStage iBoxx EUR Liq. Sov. Div. 25+ TR – LU0444606619“,
„ComStage iBoxx EUR Liq. Sov. Div. 3-5 TR – LU0444606023“,
„ComStage iBoxx EUR Liq. Sov. Div. 3m-1 TR – LU0444605728“,
„ComStage iBoxx EUR Liq. Sov. Div. 5-7 TR – LU0444606296“,
„ComStage iBoxx EUR Liq. Sov. Div. 7-10 TR – LU0444606379“,
„ComStage iBoxx EUR Sov. Germ. Capped 1-5 TR – LU0444606882“,
„ComStage iBoxx EUR Sov. Germany Capped 10+ TR – LU0444607005“,
„ComStage iBoxx EUR Sov. Germ. Capped 3m-2 TR – LU0444606700“,
„ComStage iBoxx EUR Sov. Germ. Capped 5-10 TR – LU0444606965“,
„ComStage iBoxx EUR Sov. Infl.-Link. Euro-Infl. TR – LU0444607187“,
„iShares Emerging Asia Local Government Bond – IE00B6QGFW01“,
„iShares Emerging Markets Local Government Bond – IE00B5M4WH52“,
„iShares J.P. Morgan $ Emerging Markets Bond – IE00B2NPKV68“,
„iShares J. P. Morgan $ EM Bond EUR Hedged – IE00B9M6RS56“,
„iShares $ Emerging Markets Corporate Bond – IE00B6TLBW47“,
„Lyxor UCITS ETF iBoxx $ Liquid Emerging Markets Sovereigns – FR0010967323“,
„iShares Global Corporate Bond – IE00B7J7TB45“,
„iShares Global Corporate Bond EUR Hedged – IE00B9M6SJ31“,
„iShares Global Inflation Linked Government Bond – IE00B3B8PX14“,
„iShares Global High Yield Corp Bond – IE00B74DQ490“

Anleitung: So einfach geht es

Um die Transaktionskosten möglichst gering zu halten und die Käufe zu automatisieren, setzen wir für jeden Markt, den wir jetzt kaufen wollen, einen Sparplan bei der Comdirect bzw. OnvistaBank auf. Dadurch wird auch in den Folgemonaten automatisch zu einem von uns vorher definierten Betrag gekauft. Diesen ETF-Sparplan setzen wir dann einfach aus, wenn der Markt nicht mehr unter unseren gewünschten 40 Prozent vom letzten Hoch notiert. Dieses Aussetzen ist aktuell bei vielen Banken noch kostenfrei. So kann es passieren, dass Sie gerade 10 oder 20 Sparpläne aussetzen. Wenn einer dann wieder interessant wird, können Sie diesen einfach wieder aktivieren.

In unserem monatlichen Newsletter werden wir immer auf mögliche Einstiege hinweisen. Tragen Sie sich einfach in unseren kostenlosen Newsletter ein.

flatex - entdecke moeglichkeiten

by Aug 05, 2016 Keine Kommentare
Day-Trading ohne Bauchschmerzen – Wenn Fundamentalanalysten zu Day-Tradern werden.

Day-Trading ohne Bauchschmerzen – Wenn Fundamentalanalysten zu Day-Tradern werden.

all

Day-Trading ohne Bauchschmerzen – Day-Trading und Fundamentalanalyse

Als Fundamentalanalyst und Value-Investor komme ich im Durchschnitt auf 3,7 Wertpapierkäufe im Monat – wovon gut die Hälfte Absicherungen sind. Doch alle paar Jahre gibt es ein bis zwei Monate, da werden es auch mal 25 Trades und mehr.

 

Der erste „erfolgreiche“ Versuch im Day-Trading

Ein Déjá-vu: Ich erinnere mich auf einmal als wäre es gestern gewesen. Im März 2011 als es in Fukushima, Japan zur Nuklearkatastrophe kam, rückten die erneuerbaren Energien in den Vordergrund. Jeder Anleger, Börsenbrief und auch jede Zeitschrift analysierte die zukunftsträchtigen Aktien. Alle suchten die Aktie, die den Unterschied macht und von dem Unfall in Fukushima stark profitiert. Nach einer, für meine damaligen Kenntnisse, ausführliche Analyse blieben zwei Unternehmen (welche spielt hier keine Rolle) auf meiner Liste. Wichtig hier war, dass der Intraday-Chartverlauf so ziemlich jeden Tag gleich aussah –stark in der europäischen Haupthandelszeit, etwas schwächer bei den amerikanischen und noch schwächer im asiatischen Handel. So konnte ich die Aktien oft morgens kaufen und am Nachmittag verkaufen. Diese Trades haben mich nicht reich gemacht, aber ich habe jeden oder zumindest jeden zweiten Tag ein paar Euro verdienen können.

 

Ohne Bauchschmerzen und Emotionen Traden

Was mich aber besonders an dieser Form des „Intradayhandels“ fasziniert hat, ist der Fakt, dass ich die Aktien sowieso im Depot haben wollte. Das heißt, ich habe nicht jeden Tag ein wahnsinnig hohes CRV gebraucht, denn wenn die Aktie zwei Tage leicht fiel oder auf der Stelle tummelte, war das nicht schlimm. Ich habe sie dann einfach gehalten und konnte mich auch an dem Besitz erfreuen.

Oft sind es die Emotionen, die das Traden zu diesem unglaublich schwierigen Beruf machen. Immer sind es die gleichen drei Optionen, die einem immer wieder im Kopf umschwirren: kaufen, verkaufen oder doch halten?

Viele Versuche im Handel mit Optionen, Futurs und auch Währungspaaren habe ich abgebrochen, da sie mich emotional einfach zu sehr gefordert haben. Vieles hätte auf langes Sicht wirklich vielversprechend enden können, aber mein größtes Problem war das ständige Zweifeln. Heute weiß ich, dass der Hauptgrund einfach auch der war, dass ich die meisten Produkte eigentlich nie besitzen wollte. Ich war froh, wenn ich diese wieder los war. Dieser Wunsch im Hinterkopf hat des Öfteren zu zu frühen, emotionalen Verkäufen geführt.

 

Der Rohstoffmarkt als Möglichkeit

Dem aufmerksamen Leser wird aufgefallen sein, dass ich von einem Déjá-vu geschrieben habe. Die Idee für den Artikel kam mir, als ich auf der Suche nach einem Minenunternehmen für mein Portfolio war. Denn auch hier hatten/ haben wir gerade eine Situation, die die Edelmetalle wieder in den Vordergrund rücken. Ein starker Abverkauf in den letzten Jahren und eine eventuell unsichere Zeit sind die Gründe dafür. Trump, Brexit, große Banken in Geldnot und viele weitere unschöne Szenarien KÖNNTEN eine Trendwende einleiten.

Zurück zum Thema: Auch hier habe ich ein Unternehmen gefunden, dass für ein paar Wochen Intraday unter sehr starken Schwankungen litt und mir in dieser Zeit ein paar Euro verschaffte. 🙂 Da ich in der Aktie gerade selbst investiert bin und wir von InsideTrading keine Anlageberatung betreiben, ist es mir nicht möglich diese Aktie zu benennen.

Mir ging es in diesem Artikel eher um die Idee dahinter und um EURE Meinng. Wie steht ihr zu dem Thema Day-Trading? Welche Erfahrungen habt ihr gemacht und habt ihr schon einmal den selben Ansatz verfolgt?

by Aug 03, 2016 Keine Kommentare
Cost Average 2.0 – Der ETF-Sparplan auf dem Prüfstand!

Cost Average 2.0 – Der ETF-Sparplan auf dem Prüfstand!

all

Cost Average 2.0 – Der ETF-Sparplan auf dem Prüfstand!

Gerade für den privaten Sparer, der sich nicht schon seit Jahren mit dem Finanzmarkt beschäftigt, ist es schwierig den richtigen Ansatz zu finden. Damit ihr dem Finanzberater eures Vertrauens nicht gleich alles glauben müsst, haben wir mal einiges vorbereitet.

Die Ausreden

Vor allem drei AUSREDEN sorgen dafür, dass Interessierte es immer wieder schaffen sich mit dem Thema Investieren beziehungsweise Sparen nicht weiter zu beschäftigen. Mein Platz eins „Ich habe nicht genügend Geld“, Platz zwei „Das Risiko ist viel zu groß“ und auf Platz drei „Aktuell steht der Markt viel zu hoch, um zu starten“.

Es gibt eine Vielzahl von Ansätzen und Möglichkeiten, um „perfekte“ Einstiege und Kaufmöglichkeiten zu finden. In diesem Artikel wollen wir „4 einfache und auch relativ drastische“ ETF-Sparpläne einmal mit einander vergleichen und ich kann euch versprechen, das Ergebnis wird überraschend sein.

Der Grundgedanke ist, dass wir langfristig investieren. Zu Zeiten „günstiger“ Kurse kaufen wir und zu Zeiten „hoher“ Kurse setzen wir die Käufe aus. Dabei gilt, dass wir jeden Monat einen Betrag von 33 EUR „sparen“, welchen wir auf einem Tagesgeldkonto parken auf dem es nicht verzinst wird. Das Geld könnte genauso gut auch auf einem Geldmarktkonto oder am Anleihenmarkt investiert werden. Zum besseren Verständnis wird in diesem Versuch aber das nicht investierte Geld nicht verzinst.

In den verschiedenen Versuchen wird das Geld vom Tagesgeldkonto dann entweder direkt investiert oder dort angespart, wenn unsere Indikatoren den aktuellen Preis als zu teuer darstellen. Des Weiteren investieren wir unser Geld in dem wir einen DAX-ETF (ETFs: Warren Buffetts Investment-Tipp) kaufen. Dabei fallen meist keine Gebühren an. Es kann immer die gesamte Summe ohne Rest investiert werden. Im Gegensatz zu einem normalen Fond kann hier die gesamte Summe investiert werden. Es schneidet sich vorher kein Manager und/oder Berater einen Teil vom Kuchen ab. Vor- und Nachteile von ETFs.

Der ETF-Sparplan im Überblick:

Index Sparplan
Wir investieren jeden Monat einen Betrag von 33 EUR. Hierbei handelt es sich um einen ganz normalen ETF-Sparplan.

25% Abstand vom Hoch
Wir kaufen nur dann, wenn der aktuelle Preis mindestens 25% unterhalb des letzten Hochs ist. Wenn es zu diesem Szenario kommt, kaufen wir jeden Monat für 100 EUR anstatt für 33 EUR. Dieses Szenario kommt nicht so häufig vor. Daher haben wir genügen Geld auf unserem Tagesgeldkonto, um dieses zu realisieren.

 

720 SMA
Dieser Ansatz kauft immer dann, wenn der Kurspreis des ETFs unterhalb des Durchschnittspreises der letzten 720 Handelstage liegt. Kommt es zu diesem Szenario, werden jeden Monat wieder 100 EUR investiert.

2 Jahres Tief
Bei diesem Ansatz werden nach einem Erreichen des 2-Jahrestiefs jeden Monat DAX-ETFs für 100 EUR gekauft und zwar für die nächsten 12 Monate. Entsteht innerhalb des Jahres (12 Monate) ein neues Tief, verlängert sich der Investitionszeitraum um ein weiteres Jahr.

Depotentwicklung der verschieden ETF-SparpläneDie Grafik 1 zeigt die Kontoentwicklung der vier verschiedenen Szenarien. Als Beginn der Investition gilt das Jahr 1993. Somit schauen wir auf einen Investitionszeitraum von 22 Jahren zurück. In diesem Zeitraum wurde durch den ETF Sparplan ein Kontostand von 22.108,80 EUR, durch die Strategie 25% Abstand vom Hoch 20.346,62 EUR, mit der 720 SMA Strategie 19.166,60 EUR und durch das Investieren nach einem 2 Jahres Tief 18.627,28 EUR erzielt.

Erworbene Anteile am DAX

Bei jeder Strategie ist es nicht nur wichtig zu wissen, wie viel wir am Ende eines Investitionszeitraums auf dem Konto haben. Für die zukünftige Entwicklung eines Kontos ist es mindesten genauso interessant, wie viele Anteile von einem Produkt zu welchem Preis erworben wurden.

Da wir eine Strategie haben, die jeden Monat kauft und drei Strategien haben, die nur investieren wenn uns der Einstieg vergleichsweise günstig erscheint, müssen die nachfolgenden Werte betrachtet werden. Gerade für die zukünftige Entwicklung eines Depots wollen wir nicht ständig über Barvermögen verfügen, sondern unser Geld für uns arbeiten lassen. Nachfolgend ist die Rede von „DAX-Anteilen“. Das ist nicht ganz korrekt formuliert, da der DAX ein Index ist und man einen Index nicht kaufen kann. Es sind also die ETF-Anteile gemessen am Punktwert des Index gemeint.

Investitionsgrad in Dax-EinheitenDie Grafik 2 zeigt auf der linken Seite, gemessen am Punktestand des Index, die erworben „ETF-Anteile“. Auf der rechten Seite der Grafik sind die Punkte des Index dargestellt.

Im Vergleich der Ansätze lässt sich eindeutig erkennen, dass der Sparplan die meisten „Dax-Anteile“ im betrachteten Zeitraum erworben hat. Die anderen Ansätze haben weniger Einstiege gefunden. Durch das relativ seltene Investieren verfügen die anderen Ansätze über ein größeres Barvermögen.

Der Extremversuch

Es heißt immer wieder „Der Markt ist aktuell zu teuer und ich warte noch mit meinen Investitionen, bis dieser wieder weiter runter kommt“. Aus diesem Grund haben wir mal einen Extremversuch durchgerechnet. Bei diesem Versuch üben wir uns noch weiter in Geduld und kaufen nur dann, wenn der Markt um 50% gefallen ist. Das heißt, wir kaufen jeden Monat Anteile, solange der Markt 50% unter seinem letzten Alltime-High liegt. Das würde für den DAX beispielsweise bedeuten, dass wir nur investieren, wenn dieser von 9.000 Punkte auf 4.500 Punkte gefallen ist. Da dies nur selten der Fall ist, investieren wir jeden Monat 250 EUR, sparen aber weiterhin 33 EUR im Monat an.

ETF-Sparplan – Extremversuch

In Grafik 3 sind die Entwicklung des Extrem-Sparplanes in grün, die Anteile am DAX in rot, die Tagesgeldentwicklung des Extremversuches in blau und der DAX-Chart in lila dargestellt. Die linke Seitenachse zeigt den ETF Anteil-Wert, DAX bzw. Kontostand, die rechte Achse spiegelt die Anzahl an DAX-Anteilen, die wir durch unseren Sparplan erworben haben, wider. Ein Wert von beispielsweise 0,9 bedeutet, dass wir aktuell ETF-Anteile im Wert von 0,9 mal dem aktuellen Dax Stand besitzen.

Die Kaufzeitpunkte sind also sehr gut gewählt worden, da der Ansatz die Wendepunkte im Dax gut getroffen hat. Es gibt im Vergleich mit dem normalen Sparplan, der in Grafik 1 gezeigt wurde, keine Outperformance. Das Tagesgeldkonto (blau) verläuft bis zum 18.10.2002 identisch mit der Equity-Kurve des Extremversuchs (grün). Die Equity-Kurve ergibt sich aus der Summe des Tagesgeldkontos und des Depots (zu diesem Zeitpunkt noch 0 EUR). Da der Dax dann um mehr als 50% eingebrochen ist, kam der Extrem-Sparplan zum Einsatz. Wir haben monatlich für 250 EUR ETF-Anteile gekauft, bis das Kapital auf dem Tagesgeldkonto verbraucht war. Das ist am Anstieg der roten Kurve und dem kurzzeitigen Abfall der blauen Kurve deutlich zu erkennen.

Das Ergebnis unseres Extremversuchs ist eine Gesamtentwicklung von 18.807,47 EUR (grün). Davon liegen 4.962,00 EUR noch auf dem Tagesgeldkonto (blau) und wurden nicht investiert. Im Vergleich zu dem normalen Sparplan (22.108,80 EUR, siehe Grafik 1) zeigt dieser Versuch, dass sich das Aussetzen des Sparplan zugunsten der Investition in „günstigen“ Zeiten nicht lohnt. Zudem haben wir im Vergleich mit allen Versuchen die geringste Anzahl an DAX-Anteilen erworben.

ETF-Sparplan – Durchschnittspreis

Die Grafik 4 gibt den Preis an, der bei den 5 verschiedenen Szenarien für einen „DAX-Anteil“ bezahlt wurde. Die Achse auf der linken Seite gibt hierbei den Betrag in Euro an.

Auf den ersten Blick lassen sich hier zwei Ausreißer beobachten: Der „Sparplan“ hat mit 5.454,59 EUR am meisten für jeden Anteil bezahlt. Der Ansatz „50% Off High“ konnte mit 3.135.48 EUR die Anteile am billigsten einkaufen.

Zusammenfassung unseres Versuchs

Im Vorfeld habe ich über die Top 3 der Ausreden geschrieben, warum man nicht mit dem Investieren beginnt. Ich habe euch versprochen, dass ich diese widerlegen werde. Betrachten wir erst einmal nur die Kontoentwicklung, dann fällt sehr schnell auf, dass der Sparplan unschlagbar ist. Wir haben in unserem Betrachtungszeitraum eine Rendite von 154,73 % bei einer Sparrate von nur 33 EUR im Monat erzielt.

(Rechnung: 263-Monatssparraten à 33 EUR = 8.679,00 EUR;
Schlussstand des Sparplans war 22.108,80 EUR;
Rendite = 22.108,80/8.679,00-1=1,5473 ~ 154,73%)

Ich habe nicht genügend Geld

Der Punkt eins der Ausreden „Ich habe nicht genügend Geld“ ist widerlegt. Der Sparplan zeigt, dass kein großes Vermögen vorhanden sein muss, um mit dem Investieren zu starten.

Das Risiko ist viel zu groß

Zu dem Platz 2 der Ausreden „Das Risiko ist viel zu groß“ lässt sich sagen, dass das Risiko bei einer Index-Investition sehr gering ist. Der Grund hierfür ist, dass man durch einen Zusammenschluss mit anderen Investoren in viele Aktien gleichzeitig investieren kann. Der zugrundeliegende Index gibt dabei vor, in welche Aktien investiert wird und welche Gewichtung gilt. Zudem ist das von uns gewählte Produkt ein „ETF“, sodass keinerlei Managementgebühren anfallen. Ein weiterer Vorteil ist, dass die Performance eines ETFs nicht von den Entscheidungen eines Fond-Managers abhängig ist. In dem Artikel „Das ETF 1×1 – Vorteile, Nachteile, Kosten, Gebühren & eine Kaufanleitung“ erfahren Sie alles ,was Sie über ETFs wissen müssen.

Aktuell steht der Markt viel zu hoch, um zu starten

Vor allem der Extremversuch hat sicher geholfen, die Ausrede „aktuell steht der Markt viel zu hoch, um zu starten“ einmal zu hinterfragen. In unserem Betrachtungszeitraum wurde deutlich, dass für jemanden, der mit dem Investieren startet und über keinerlei Kapital verfügt, der ETF-Sparplan der richtige Weg ist. Der gesunde Menschenverstand geht oft davon aus, dass wir nur dann investieren sollten, wenn der Markt stark gefallen ist. Hierbei wird oft einfach vergessen, dass wir in den letzten Jahren immer mehr Bewegung in den Märkten verzeichnen (ein ständiges Auf und Ab). Es ist keine Seltenheit mehr, dass zum Beispiel der DAX in 2 bis 3 Monaten um mehrere tausend Punkte fällt, um nur wenig später ein neues Allzeithoch auszubilden.

Dem klassischen ETF-Sparplan sind solche Bewegungen egal, da immer Anteile für 100% der Summe gekauft werden. In teuren Marktphasen werde weniger Anteile erworben und in einem günstigen Bärenmarkt werden dem Depot mehr Anteile gutgeschrieben. Dieses Phänomen nennt sich Cost average Effect (Durchschnittspreis).

 

Warum man sich dennoch mit dem Investieren beschäftigen sollte.

Der ETF-Sparplan hat zum Ende unseres Versuches den höchsten Depotstand verzeichnet und dennoch können wir hier ein kleines „Aber“ finden. Bei der Betrachtung des Durchschnittspreises (Grafik 4) fällt auf, dass wir bei keinem anderen Ansatz mehr für unsere ETF-Anteile bezahlt haben. Weiterhin ließ sich beobachten, dass wir „logischerweise“ bei dem Extremversuch die günstigsten Einstiege gefunden haben. Der Grund hierfür liegt auf der Hand, denn wir haben nur dann investiert, wenn der Markt „extrem“ günstig war.

So schlagen wir den ETF-Sparplan

Ausgehend davon, dass wir in fallenden Märkten weniger für unsere Anteile zahlen und somit mehr für unser Geld bekommen, haben wir nach besseren Alternativen gesucht.

Schauen wir uns die Grafik 3 noch einmal genauer an. Es fällt auf, dass wir in den „wichtigsten Krisen“, in denen wir hätten viele Anteile für wenig Geld kaufen können, nicht genügend Kapital zum Investieren hatten. Aus diesem Grund haben wir einen Extremversuch 2.0 durchgerechnet. In diesem Versuch sind wir davon ausgegangen, dass wir nicht jeden Monat 33 EUR sparen, sondern die komplette Summe schon vor dem Start des Betrachtungszeitraumes besitzen. In den Bärenmärkten können wir so jeden Monat einen erhöhten Betrag von 580 EUR investieren. Am Ende des Betrachtungszeitraums haben wir sowohl bei dem normalen ETF-Sparplan als auch bei dem Extremversuch die selbe Summe investiert.

Der Extremversuch 2.0

ETF-Sparplan – Extremversuch2.0

Die Grafik 5 zeigt auf der linken Achse den Depotstand bzw. das Tagesgeldkonto in Euro. In rot werden die Dax-Anteile angezeigt. Zu beachten ist, dass das Konto (blau) zum Ende des Investitionszeitraums bei Null steht. Dieser Graf weißt zwischenzeitlich einen negativen Kontostand auf. Das soll einfach nur zeigen, dass das Sparen von monatlich 33 EUR nicht immer ausgereicht hätte.

Ein Blick auf die Grafik 5 zeigt mit einem Depotstand von 37.083,49 EUR und einer Rendite von 326,31 % die mit Abstand beste Performance.

Abschließend lässt sich sagen:

Timing lohnt sich nur, wenn auch Kapital verfügbar ist, welches geballt investiert werden kann. Ansonsten wird der Vorteil aus den günstigen Kursen von dem Nachteil des nicht Investierens überwogen, da nicht das gesamte Einkommen zu jeder Zeit zum Investieren bereit ist.


Die Fortsetzung:

Die Lösung – ETF-Sparpläne richtig kombinieren!

by Jul 08, 2016 2 Kommentare
Dein EA auf dem Prüfstand – die größten Fehler und Schwachstellen eines Expert Advisors.

Dein EA auf dem Prüfstand – die größten Fehler und Schwachstellen eines Expert Advisors.

all

Dein EA auf dem Prüfstand – die größten Fehler und Schwachstellen eines Expert Advisors.

InsideTrading hat heute für euch Andrey Bulezyuk von in-trading.eu im Interview. Er ist der Autor des Buches „Algorithmisches Trading: MetaTrader4 | MQL4“.
Mehr zum Programmieren mit MQL5 findet ihr bei uns.
Algorithmisches Trading Inside Trading

Im Forex- und CFD-Handel sind nicht immer alle Versuche mit Erfolg gekrönt und daher greifen immer mehr Trader auf ein voll- oder halbautomatisiertes  Handelssystem zurück. Da es in den Weiten des Internets eine Vielzahl von Expert Advisors (EAs) gibt und viele von denen auch kostenfrei sind, bekommen wir immer wieder Fragen zu diesem Thema, welche wir jetzt einfach einmal an Andrey weitergegeben haben:

Inside: Hallo Andrey, kurz etwas zu deiner Person, wie bist du auf das Thema der EA-Programmierung aufmerksam geworden und in welchen Märkten bist du zu Hause?

Andrey: Hallo Inside, vielen Dank für die Einladung zu diesem Interview. Als ich anfing mich mit dem Forex-Markt auseinanderzusetzten, besaß ich bereits relativ gute Kenntnisse verschiedener Programmiersprachen. Aus diesem Grund betrachtete ich bereits als Anfänger das Trading aus einem anderen Winkel als typische Trading-Einsteiger. Die Anwendung des Programmierwissens auf den Forex-Markt ist unausweichlich für jeden, der programmieren kann.

Ich habe im Forex-Markt angefangen und fühle mich im “ Dschungel ” der Währungen und der Rohstoffe sicher. Gleichzeitig muss ich erwähnen, dass die Bewegungen des Forex-Marktes schwieriger zu interpretieren sind als es bei Aktien der Fall ist. Ein Bekannter von mir, CEO einer “Machine Learning” Firma in den USA, untersuchte mit verschiedenen Methoden den Forex- und Aktienmarkt. Seine Ergebnisse zeigen, dass der Forex-Markt Intraday beinahe komplett zufällig agiert. Automatisierte Systeme im Aktienmarkt sollten also tendenziell besser wirtschaften (ceteris paribus).

Inside: Welches sind deiner Meinung nach oftmals die größten Schwachstellen eines EA, die man in Form eines kostenfreien Download finden kann?

Andrey: Grundsätzlich sollte man nicht naiv sein und sich klar machen, dass man sich sogar bei bezahlten automatisierten Systemen (EA) nicht sicher sein kann, dass dieses System Geld generieren wird. Deswegen sollte man bei kostenloser Software erst recht vorsichtig sein.

Zu den Schwachstellen von kostenlosen EAs gehören die Abwesenheit des Supports bei Problemen und die mangelnde Individualisierung der Strategie/des EAs. Eine Anleitung zur Anwendung sowie der direkte Draht zu dem Entwickler fehlen meistens ebenfalls. Wenn man es mit dem automatisierten Handel ernst meint, sollte man sich einen kompetenten MQL4-Entwickler suchen und eine individuelle Software erstellen lassen.

Inside: Bevor unsere Leser einen teuren EA kaufen, worauf sollten diese achten? Kann man erkennen, ob die Statistiken auf der Webseite ein optimierter Backtest sind oder wirklich aus einem Live-Konto stammen?

Andrey: Je mehr ein EA kostet, desto mehr Ergebnisse sollte man von dem Anbieter verlangen. Vor allem bei Anbietern, welche einen 4-stelligen Betrag für ein System verlangen, sollte man Berichte einfordern.

Backtests und Live-Berichte sind gut, können aber gefälscht oder vom Käufer falsch interpretiert werden. Bei In-Trading bekommen die Leser/Auftragsgeber beispielsweise zuerst eine kostenlose Demoversion. Das ist die idealste und sicherste Lösung für den Kunden. Man riskiert keinen Cent und kann persönlich auf dem eigenen Rechner Live-Tests und Backtests durchführen, ohne Angst zu haben, dass der Anbieter diese auf seiner Seite verfälscht hat. Erst nachdem man sich als Anwender und Trader von der Software überzeugt hat, sollte man Geld überweisen.

Inside: Ein Leser hat einen EA gekauft. Was nun? Einschalten und vergessen?

Andrey: Nun, das ist der Punkt, an dem viele Trader scheitern. Genau so stellt man sich den automatisierten Handel vor: „Einschalten und vergessen“. Doch ein automatisiertes Handelssystem braucht regelmäßige Kontrolle der Software an sich und der darin integrierten Strategie. Man muss die von dem System getätigten Transaktionen genauso erfassen und analysieren, wie man es als manueller Trader auch gemacht hat.

Inside: Muss man den eigenen Rechner 24/5 eingeschaltet lassen?

Andrey: Nein. Zuerst muss man sich als Anwender festlegen, auf welchem Gerät der EA laufen soll. Es kann beispielsweise ein gemieteter VPS-Server oder ein eigener Mini-Server sein. Einen vollwertigen PC oder Laptop sollte man nicht für diesen – technisch gesehen – relativ anspruchslosen Prozess benutzen.

VPS-Server eignen sich als die einfachste Lösung für die meisten Trader. Man zahlt monatlich einen Betrag und muss sich nicht mehr um die technische Seite kümmern. Entscheidet man sich für einen gemieteten VPS-Server, so muss man die Internetgeschwindigkeit des Anbieters ins Visier nehmen und darauf achten, dass der “Ping” bis zu den Servern des Brokers möglichst klein ist. Dies ist vor allem bei solchen EAs wichtig, welche mit kleinsten Bewegungen arbeiten (z.B: Scalping-EA, Breakout-EA, News-EA, usw.).

Tipp: Ich persönlich habe einen Raspberry Pi 3 zu einem 24/7/365 Server umgewandelt. Diese Variante ist effizienter, aber auch komplizierter. Ein Raspberry Pi 3 ist ein Mini-Rechner, der nicht größer als eine Handfläche ist, kaum Strom verbraucht und Linux als Betriebssystem hat. Einen solchen R-Pi3 kann man für weniger als 100 Euro erwerben, am Modem oder hinter dem Bildschirm platzieren und muss sich weder Sorgen um den Platzbedarf, die Geräusche oder die Stromkosten machen. Langfristig gesehen ist ein R-Pi3 viel rentabler als ein gemieteter VPS-Server.

Welche Erfahrungen habt ihr mit bisher mit Expert Advisors (EAs) gesammelt?

by Jun 14, 2016 2 Kommentare