+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 – Erstellen von Charts und Grafiken mit Matplotlib

Investieren und Traden mit Python lernen – Erstellen von Charts und Grafiken mit Matplotlib

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

Investieren und Traden mit Python lernen – Erstellen von Charts und Grafiken mit Matplotlib
Nachdem im vorangegangenen Beitrag besprochen wurde, wie man sich mit Python von verschiedenen Quellen Kursdaten, sowie Fundamentaldaten für die Analysen downloaden kann, soll es sich nun vornehmlich um die Erstellung erster Charts und Grafiken drehen. Sie wollen die Daten sicher nicht nur im Zahlenformat analysieren.

Grafiken für Finanzanalysen in Python – Matplotlib

Für die grafische Analyse werden wir Matplotlib verwenden, eine Library in Python, welche eine Vielzahl von Darstellungsmöglichkeiten bietet. Darunter sind folgende Chart Typen

Balkendiagramme
Säulendiagramme
Liniencharts
Kreisdiagramme
Kerzencharts
Histogramme
Polarcharts

Eine Übersicht über alle verschiedenen Formen von Plots findet sich auf der Matplotlib.org Seite.
Die Möglichkeiten, die sich durch Matplotlib ergeben, sind nahezu grenzenlos.

Um Matplotlib nutzen zu können, installieren Sie dieses bitte über die Konsole mit Hilfe von pip install.

In dem folgenden Abschnitt werde ich mit Ihnen eine Klasse erstellen, die für Sie verschiedene Grafiken einfach direkt erstellen kann. Dabei werden wir eine objektorientierte Programmierweise verwenden. Diese ist etwas anspruchsvoller, jedoch können Sie alleine mit dem Code, den Sie in diesem Artikel finden, bereits ansehnliche Grafiken für beide vorgestellten Datenquellen erstellen.

Kursdaten mit Python als Linienchart darstellen

Zuerst importieren wir wie gewohnt alle notwendigen Pakete für das Programm, das wir erstellen wollen.

from pandas_datareader import data as pdr
import fix_yahoo_finance
import quandl
import matplotlib.pyplot as plt
import pandas as pd

Daraufhin definieren wir die Klasse, mit deren Hilfe wir die Daten beziehen wollen. Dieser übergeben wir den Ticker des Produkts sowie das Start Datum, also ab wann wir die Zeitreihe beziehen wollen.

class Stock_Analysis:
    #
    def __init__(self, Stock_Ticker,Start_Date,Stock_Name):    
        self.ticker = Stock_Ticker
        self.start_date = Start_Date
        self.name = Stock_Name
        self.stock_data = pdr.get_data_yahoo(self.ticker,self.start_date)

Die Init Methode ist die Methode, welche beim Aufrufen der Klasse, also dem Erstellen eines Objektes immer als erstes ausgeführt wird. Mit ihrer Hilfe werden dem Objekt die einzelnen Eigenschaften übergeben, die es trägt.
Dabei werden dem Obekt über self.xxx Werte zugeordnet. In unserem Beispiel übergeben wir also einem Objekt, das wir mit Hilfe dieser Klasse erstellen, folgende Informationen:

self.ticker

Ist der Ticker, welchen wir abfragen wollen

self.start_date

Das Startdatum, ab dem die Daten abgefragt werden sollen

self.name

Übergibt dem Objekt den als Inputwert angegebenen Namen der Aktie

self.stock_data

Bezieht mit Hilfe des pandas_datareaders die Kursdaten des von Ihnen gewünschten Unternehmens

Neben der __init__ Methode brauchen Sie nun weitere Methoden, um mit den gewonnen Daten zu arbeiten. Die erste Methode, die wir dazu einführen wollen, ist die Print_Data() Methode, welche die gespeicherten Kursdaten ausgibt.

    def Print_Data(self):
        print(self.stock_data)
        return self.stock_data

Diese Methode erhält selbst keine Inputfaktoren mehr und ist somit ausschließlich von den Informationen abhängig, die das Objekt (self) bereits gespeichert hat. Dabei macht die Methode zwei Dinge:
print(self.stock_data)
Gibt die Daten in der Konsole aus, um sie zu betrachten
return self.stock_data
Kann die Daten an eine Variable übergeben, sofern dies gewünscht ist z.B: über

AktieA = Stock_Analysis(AktieA,2015-01-01,Name der Aktie A)
Akktienkurse = AktieA.Print_Data()

Somit können die Daten auch für Funktionen verwendet werden, die ggf. noch nicht als Methoden in der Klasse enthalten sind.

Als nächster Schritt sollen nun die ersten Grafiken erstellt werden. Hierfür soll zuerst ein klassischer Linienchart dienen:

    def Print_Linechart(self):
        plt.plot(self.stock_data["Adj Close"],label = self.name)
        plt.title("Adj. Aktienkurs des Unternehmens %s"%self.name)
        plt.legend()
        plt.xlabel("Time")
        plt.ylabel("Price")
        plt.show()

Hier wird bereits etwas komplexere Syntax angewandt. Um diese im Detail zu verstehen und nachvollziehen zu können, empfehle ich (wie auch in unseren Beiträgen zu MQL5) die Plattform Sololearn zu verwenden.

Gehen wir aber kurz über die einzelnen Schritte der Methode Print_Linechart():
plt.plot()
Bezieht sich auf pyplot, welches wir aus Matplotlib importiert haben. Da wir keine weiteren Informationen übergeben, wird die Methode als Standard einen einfachen Linienchart ausgeben. Als Parameter übergeben wird die angepassten Schlusskurse der Kursdaten, sowie als Label (Legende) den Namen des Unternehmens
plt.title()
Ebenfalls eine Methode aus Matplotlib, die für die Anpassung des Titels zuständig ist. Dieser wird über String-Formatierung zusammengesetzt, da der Name des Unternehmens, das im Chart dargestellt wird, immer ein anderes ist -nämlich der Namen, den wir dem Objekt in self.name gegeben haben
plt.xlabel() & plt.ylabel()
Sind für die Beschriftung der Achsen zuständig
plt.plot()
Zeichnet den Chart

apple = Stock_Analysis("AAPL","2015-01-01","Apple")
apple.Print_Linechart() 

Ich gratuliere – Sie haben gerade eine Klasse erstellt, mit einer Methode, die Ihnen alle möglichen Aktiencharts zeichnen kann. Sie haben sogar bereits die Möglichkeit, den Darstellungszeitraum sowie die Beschriftung individuell zu gestalten.
Aktien-Renditen mit Python als Histogramm darstellen

Doch wir wollen mehr – schließlich könnte man eine solche Grafik auch noch einfach im Internet beziehen. Betrachten wir im Folgenden einmal die Renditeverteilung einer Aktie für die historischen Kursdaten:

    def Histogramm_Returns(self):
        stock_returns = ((self.stock_data["Close"]/self.stock_data["Open"])-1)*100
        plt.hist(stock_returns)
        plt.show()

Wieder erstellen wir eine Methode für die Aktienklasse. In dieser Methode berechnen wir unter Zuhilfenahme von pandas die täglichen Renditen der Aktie, indem wir den Tagesschlusskurs durch den Tagesöffnungskurs teilen (Wichtig: Wir wollen wirklich nur die Renditen betrachten, welche innerhalb der Handels-Sessions erzielt werden, Overnight Gaps und Kurssprünge über Feiertage und das Wochenende werden nicht beachtet).
stock_returns = ((self.stock_data[„Close“]/self.stock_data[„Open“])-1)*100
Erledigt den eben genannten Berechnungsprozess für uns
plt.hist(stock_returns)
Erzeugt wiederum das Histogramm, welches in Folge mit plt.show() angezeigt wird. plt.hist hat abgesehen von den Inputdaten noch weitere Inputparameter, wie zum Beispiel die Balkenbreite, welche nach Verfahren wie dem nach Silverman oder Scott optimal geschätzt werden kann

Aktien-Korrelationen mit Python als Scatterplot darstellen

Für viele ist ebenfalls der Zusammenhang zwischen zwei Aktienwerten interessant. Wie stark korrelieren diese?
Die Frage, die sich stellt: „Was passiert mit Aktie B, wenn Aktie A steigt?“
Um diesen Zusammenhang grafisch zu veranschaulichen, verwenden wir Scatter-Plots. Diese stellen die Rendite von Aktie B in Abhängigkeit zu der Rendite von Aktie A dar. Da dieser Prozess etwas komplizierter ist, würde ich an dieser Stelle einfach den Code präsentieren und zwei Anwendungsbeispiele bringen. Die Funktionsweise können Sie dann durch das Nachbauen der Methode, sowie den obigen Methoden selbst nachvollziehen, da einige Gemeinsamkeiten bestehen.

def Scatter_Plot(self,comparison_ticker,ref_name):
        ref_stock = pdr.get_data_yahoo(comparison_ticker,self.start_date)
        ref_stock_name = ref_name
        stock_returns = 
        pd.DataFrame(((self.stock_data["Close"]/self.stock_data["Open"])-1)*100)
        ref_returns = pd.DataFrame(((ref_stock["Close"]/ref_stock["Open"])-1)*100)
        returns_df = stock_returns.join(ref_returns,lsuffix=
        ("Returns %s"%self.name),rsuffix=("Returns %s"%ref_stock_name))
        print(returns_df)
        ax1 = plt.subplot2grid((1,1),(0,0))
        ax1.grid(True, color = "b", linestyle = "-")
        plt.xlabel(ref_stock_name)
        plt.ylabel(self.name)
        plt.scatter(returns_df[returns_df.columns[1]],returns_df[returns_df.columns[0]])
        plt.title("Scatterplot von %s und %s"%(ref_stock_name,self.name))
        plt.plot()

Um die Funktionsweise dieser Methode sowie die Intuition hinter dieser Grafik etwas zu verdeutlichen, möchte ich für Sie an dieser Stelle zwei Beispiele erstellen. Zum einen mit zwei Unternehmen aus derselben Branche, bei denen ein Zusammenhang naheliegt, sowie mit zwei Unternehmen unterschiedlicher Branchen, bei denen dieser nicht direkt gegeben ist.

apple = Stock_Analysis("AAPL","2015-01-01","Apple")
apple.Scatter_Plot("msft","Microsoft")

Die Grafik stellt die Korrelation zwischen Microsoft und Apple grafisch dar. Es ist durchaus ersichtlich, dass ein positiver Zusammenhang zwischen Microsoft und Apple besteht, das bedeutet: Steigt Microsoft, so ist die Wahrscheinlichkeit, dass Apple auch eine positive Tagesperformance aufweist, relativ hoch. Dieser Zusammenhang lässt sich aber noch besser bei den beiden Deutschen Autobauern Daimler und BMW erkennen.

apple = Stock_Analysis("DAI.DE","2015-01-01","Daimler")
apple.Scatter_Plot("BMW.DE","BMW")

In dieser Darstellung von Daimler Renditen gegen die Renditen von BMW wird der Zusammenhang von der Aktienperformance von Unternehmen aus demselben Sektor noch deutlicher. Es ist klar zu erkennen, dass die Renditen einen positiven Zusammenhang aufweisen.

Wie sieht dies nun aber für Unternehmen unterschiedlicher Sektoren aus? Und was ist mit der negativen Korrelation, von der in der Portfoliotheorie immer die Rede ist?

Betrachten wir einmal die täglichen Renditen von Tesla und Exxon mobile. Alleine von der Aufstellung der Unternehmen ist keinerlei Zusammenhang zu erwarten. Die Analyse für den Zeitraum von 2015-01-01 bis heute bestätigt diese Vermutung:

Stark negative Korrelationen zu finden, ist selbst in historischen Zeitreihen nicht unbedingt einfach, da tendenziell alle Aktien auf lange Sicht eine positive Wertentwicklung aufweisen und gerade während des aktuellen alten Bullenmarktes (Stand 2017) alle Aktien eine positive Tendenz aufzuweisen scheinen. Doch es gibt sie. So weisen zum Beispiel die Lufthansa und Pro Sieben im Zeitraum von 2016-01-01 bis heute einen negativen Zusammenhang.

Sowie gleichfalls in 2017:

Damit haben Sie das Ende der Einführung zur Erstellung von Grafiken für Finanzanalysen in Python erreicht. Der nächste Teil beschäftigt sich mit dem Backtesten von Strategien.

*Wir versuchen in unseren Codes grundsätzlich kostenfreie Datenquellen zu verwenden. Aufgrund der Tatsache, dass sie nicht kommerziell genutzt werden, kann sich die Verfügbarkeit im Laufe der Zeit verändern. Zudem kann es sein, dass Syntax sich im Laufe der Zeit verändert. (Stand Dezember 2017)

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

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
Investieren und Traden mit Python – Installieren von Python und einrichten von Eclipse

Investieren und Traden mit Python – Installieren von Python und einrichten von Eclipse

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

Aktiver an der Börse und an den Finanzmärkten zu sein, wünschen sich viele Wirtschaftsbegeisterte – seien es Studenten oder Berufstätige. Doch oft fehlt -die Zeit gerade unter der Woche- sich mit der Börse zu beschäftigen. Wenn man doch nur die Möglichkeit hätte, mehr Zeit am Wochenende aufzubringen statt unter der Woche.

Geht nicht, weil die Börsen geschlossen haben? Das ist nicht ganz richtig.
„Automatisierung“ heißt das Zauberwort, das auch Ihnen bei Ihren Investitionen helfen kann.

Neben den von uns angebotenen Services und Signalen können Sie auch selbst erste Versuche zu starten. Dafür finden Sie bei uns auf der Website zu verschiedenen Programmiersprachen Einführungen in das Programmieren für Finance.

Installieren von Python für Finance

Um Python auf einem Computer verwenden zu können, muss es als erstes installiert werden, denn Python ist nicht standardmäßig auf einem Computer verfügbar. Dazu müssen Sie als erstes die aktuelle Installationsdatei von Python.org downloaden und ausführen. Wir verwenden für die Tutorials eine Version von Python 3, daher empfehlen wir Ihnen sich diese ebenfalls zuzulegen (Download).
TIPP: Sie können sich auch Anaconda installieren. Dies benötigt etwas mehr Speicherplatz auf Ihrem Computer, kommt aber dafür mit vielen bereits integrierten Packages (Download Anaconda).

Nach dem erfolgreichen Abschluss der Installation von Python oder Anaconda ist es an der Zeit, für Sie nach einer geeigneten Entwicklungsumgebung zu schauen. Wir bei InsideTrading.de verwenden entweder Notepad++, Python IDLE oder aber Eclipse. Da Eclipse eine Vielzahl an Features bietet und auch sehr einfach mit GitHub synchronisiert werden kann, wollen wir das Einrichten von Eclipse für Python etwas näher beleuchten.

PyDev & Eclipse – IDE für Python

Eclipse ist eine eigentlich für Java entwickelte IDE (Integrated Development Environment). Diese lässt sich aber durch eine kostenfreie Erweiterung auch wunderbar für die Entwicklung von Python-Programmen verwenden. Gerade wenn man mit Lernen von Python beginnt, ist eine solche Entwicklungsumgebung sehr nützlich, da Sie bei der Erstellung der ersten Codes hilft. Um diese funktionsfähig einzurichten, bedarf es einiger kleiner Schritte, die ohne eine genaue Führung für viele bereits ein extrem frustrierendes Erlebnis sein können. Wir wollen diesen Zustand bei Ihnen tunlichst vermeiden und machen uns hier direkt an die Arbeit:

Download von Eclipse

Als ersten Schritt müssen Sie Eclipse installieren, dies ist notwendig, da Eclipse das Grundgerüst ist, in dem Sie später arbeiten werden. Die Downloadseite zu Eclipse finden Sie hier (Klicken).
Nach dem erfolgreichen Download müssen Sie Eclipse nurnoch installieren. Starten Sie nun Eclipse

Installieren von PyDev für Python

Gehen Sie nun in der gestarteten Eclipse Anwendung in der Taskleiste zu Help:

Wählen Sie dort das Fenster Install New Software aus. Fügen Sie in das sich öffnende Fenster den folgenden Link ein: http://www.pydev.org/updates
Dieser greift direkt auf die aktuellsten Versionen von PyDev zu und erlaubt es Ihnen diese direkt über Eclipse zu Downloaden. Klicken Sie next und installieren Sie PyDev auf diese Art und Weise.

Auswählen des Python-Paths für Eclipse

Gehen Sie nun auf Window>Preferences

Und wählen Sie dort die Einstellungen für PyDev aus, um Eclipse zu sagen, wo es Python finden kann, damit Sie dieses auch in der IDE ausführen können.

Mit dem Abschließen dieser Einstellungen sind Sie bereit und können Eclipse für Python verwenden. Erstellen Sie nun einfach ihre ersten PyDev Module und führen Sie den Code direkt in Eclipse aus. Hier noch ein Tipp:, Sie können auch nur einzelne Zeilen ausführen, indem Sie die entsprechenden Zeilen markieren und dann mit STRG+ALT+Enter ausführen. Mit diesem Arsenal ausgestattet – Legen  wir los > Beziehen von Kursdaten mit Python lernen.
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 17, 2018 Keine Kommentare
Kaufen wenn in den Straßen Blut fließt – Value mit ETFs und Aktien

Kaufen wenn in den Straßen Blut fließt – Value mit ETFs und Aktien

Analysetechniken

Kaufen wenn in den Straßen Blut fließt – Value mit ETFs und Aktien

Vor einigen Jahren, haben wir hier bei InsideTrading.de einen Artikel zu eben diesem Thema veröffentlicht. Dabei wurde der Fokus jedoch auf kurzfristige Engagements an den Finanzmärkten gelegt.

Da dies weder alltagstauglich noch kostengünstig ist, wollten wir uns dieser Thematik von neuem widmen und in den Zusammenhang mit mittel- bis langfristigen ETF und Aktieninvestitionen bringen, welche besonders für Berufstätige und Sparer viele Vorzüge mit sich bringen.

„Man muss kaufen, wenn in den Straßen Blut fließt“

… so lautet zumindest die These, die Baron Rothschild nur allzu gerne in den Mund gelegt wird. Ob dies seine historische Richtigkeit hat oder nicht, sei an dieser Stelle dahingestellt – wir wollen uns mit den Implikationen dieser Aussage auf unser Investmentverhalten auseinandersetzen. Ein anderes sehr bekanntes Zitat in diesem Zusammenhang stammt von Warren Buffet und lautet:

„Sei gierig, wenn andere ängstlich sind – sei ängstlich, wenn andere gierig sind“

Beide weisen den Adressaten (also uns) auf ein und dasselbe hin – „denke und handle antizyklisch, lasse dich nicht von der Masse und Emotionen leiten“.

Diese Denkweiße widerstrebt den meisten Menschen – sie jagen einem Trend hinterher und wollen das Markt-Momentum nutzen, um Profite am Markt zu erzielen. Auch wenn diese Möglichkeit durchaus interessant und profitabel sein mag, so ist sie doch mit einem erhöhten Zeitaufwand verbunden. So müssen aktiv Positionen gecheckt und gemanagt werden, neue Kauf- und Verkaufsaufträge folgen wöchentlich, wenn nicht gar täglich. Es kann daher nicht jeder einen solchen Investitionsansatz im Alltag verfolgen. Aber gute Gelegenheiten abzuwarten und dann gezielt zu investieren – nach einem Ansatz aus der Value Methodik- kann selbst der vielbeschäftigte Berufstätige.

Billig ist nicht gleich günstig – Diversifizieren oder Selektieren

Wer nach starken Kurseinbrüchen kaufen möchte, um sich günstige Einstiegskurse zu sichern, kann seine Aktivitäten auf zweierlei Weisen planen. Zum einen gibt es die Möglichkeit, Aktien auf Basis von Kriterien der Fundamentalanalyse auszuwählen, zum anderen kann man diversifiziert in den Gesamtmarkt investieren. Je nach Risikobereitschaft und Wissensstand ist die eine oder die andere Lösung vorzuziehen. Beide haben sowohl Vor- als auch Nachteile. Wie diese sich aufteilen, lässt sich der Grafik entnehmen.

Um für beide Arten sinnvolle Beispiele zu liefern und zusätzlich einen Ausblick zu geben, wie sich dieser Ansatz noch anwenden lassen kann, sollen drei Beispiele betrachtet werden. Das erste Beispiel ist die Volkswagen Aktie nach der Diesel-Affäre, das zweite der Bankensektor, im speziellen die Deutsche Bank und das dritte Beispiel ist China nach der Blase 2015 und der daraufhin folgenden scharfen Korrektur. Diese drei Situationen sollen keine Empfehlung für ein optimales Vorgehen darstellen, sondern vielmehr zeigen, wie man vergangene Chancen ganz im Sinne von Rothschild oder auch Buffet – streng getreu dem Motto: kaufe, wenn in den Straßen Blut fließt – hätte spielen können.

Volkswagen – eine Aktie gerät unter massiven Druck

Der obige Chart gehört zur Volkswagen Vz. Aktie, welche im Rahmen der Diesel-Abgas-Affäre massiv unter Druck geriet. Dabei wurde von Seiten der US-Behörden ermittelt, ob und in welchem Ausmaß die Testergebnisse von Motoren manipuliert wurden, um bessere Abgaswerte zu erzielen und so konkurrenzfähigere Automobile anzubieten. Dabei wurden sowohl Störsysteme als auch an- und abschaltbare, mechanische Einrichtungen verbaut und installiert.

Zeitweise wurden Strafen diskutiert, welche für die Existenz des Automobilkonzerns als durchaus grenzwertig einzuordnen waren. Diese Phase lässt sich gut am rechten Rand des Charts erkennen, eine Kurslücke ist erkennbar – panisch verkauften Investoren ihre Anteile: „Das Blut floss“ sprichwörtlich auf der Straße. Wer hier Fälle der Vergangenheit analysiert hat und sich nicht einschüchtern ließ, konnte gut Kasse machen – mit Kursen um die 100€-Marke war auch aus fundamentalen Gesichtspunkten eine Talsohle erreicht. Dieser Kursbereich war dabei zweimal über einen Abstand von fast drei Monaten erreicht worden und öffnete mutigen, nüchternen Investoren Tür und Tor für satte Renditen.

Hierbei war es jedoch wichtig, den Markt aktiv zu beobachten, sowie die fundamentalen Umstände und Kennzahlen zu kennen und sich mit vergleichbaren Rechtsfällen auseinanderzusetzen, um so ein eigenes Urteil fällen zu können. Dies ist je nach Berufsgruppe und familiärer Situation nicht für jedermann möglich – wer zeitlich stark eingebunden ist, kann nicht auch für die Aktienanalyse noch Stunden einplanen. Daher ist unser Fazit – selektive Aktieninvestments in kurzfristig prekären Situationen bieten große Chancen für Personen mit ausreichend Fachwissen und Zeitbudget.

Fachwissen kann man sowohl im Eigenstudium hier bei InsideTrading unter der Rubrik „Know how“ oder auch gezielt über die Suchfunktion finden – für eine gezieltere Ausbildung bietet Findedeinentradingcoach.de die richtige Anlaufstelle.

Ein Sektor stürzt ab – Leicht gestreut investieren

Wer nun nicht das Interesse hat, in einzelne Titel zu investieren, kann stattdessen auch einen ganzen Sektor durch einen ETF kaufen.

So gerieten in der Vergangenheit beispielsweise Banken als ganze Branche unter Druck, sobald eines der global relevanten Institute Probleme bekam. Dies hängt mit der der Tatsache zusammen, dass Unternehmen innerhalb einer Branche stark vernetzt sind. Bekommt ein Unternehmen Probleme, leiden die anderen zumeist auch dadurch. Gründe dafür sind unter anderem Image-Verlust, Vertrauenskrisen im Interbankenmarkt (Liquiditäts-Knappheit) und im schlimmsten Fall gar politische Interventionen.

Je nach Branche und Geschehnis äußert sich dies unterschiedlich. Ganz unabhängig davon, wie und was die genauen Hintergründe sind, lässt sich hier durch eine rein qualitative Analyse bereits eine erste Aussage darüber treffen, ob eine Erholung des Marktes auf mittlere und lange Frist realistisch erscheint.

So sind Banken, solange für ihre gesellschaftlich wichtige Funktion der Fristen- und Losgrößentransformation kein Ersatz gefunden wurde, aus unserem Wirtschaftskreislauf nicht wegzudenken. Die Vergabe von Krediten ist maßgeblich für das Wirtschaftswachstum notwendig. De facto sind günstige Kaufkurse für Unternehmen im Finanzsektor eine durchaus interessante Option. Wichtig: Wir sprechen hier von Finanzprodukten, die den Sektor abbilden und nicht von einem Einzeltitel.

Eine so qualitative Analyse wäre beim Kauf von Einzelaktien bei weitem nicht ausreichend. Gerade in Krisenzeiten kann man hier ins Messer greifen und eine Detailanalyse ist notwendig. Wenn man jedoch in verschiedene Unternehmen innerhalb eines Sektors investiert, reduziert sich das Risiko selbst dann, wenn ein oder zwei der Unternehmen auch längerfristig Probleme bekommen. So können die anderen dies durchaus auffangen – der Portfolioeffekt bzw. die Diversifikation schützen uns in diesem Fall.

Sowohl für die Sektoren- als auch die Länder-Indizes liefern wir in unserem Memberbereich tägliche Updates, sowie monatlich in unserem Newsletter.

Eine Blase platzt – jeder schreit, kaum einer sieht die Chancen

Die letzte Möglichkeit und die wohl alltagstauglichste ist, noch einen Schritt zurück zu treten und nicht nur die Sektoren, sondern ganze Länder zu betrachten.

Dies ist am einfachsten, risikoärmsten und am wenigsten zeitintensiv. Durch die starke Diversifikation und Neugewichtungen, welche mit den Aktienindizes ganzer Länder einhergehen, ist man als Investoren mit einer langfristig orientierten, qualitativen Analyse oftmals bereits ausreichend gut bedient.

Die Grafik zeigt den Kursverlauf des IShares Large Cap China ETFs zwischen April 2015 und Juni 2017

Wer sich nicht in einer großen Intensität mit Aktien beschäftigt, kann auch in Stesssituationen die Ruhe bewahren. So boten sich in China nach dem Platzen der Blase 2015/ 2016 wunderbare Einstiegschancen. Wer bei seiner Analyse zu dem Schluss kam, dass langfristig gesehen China ein wichtiger Spieler auf den Weltmärkten bleiben wird, freute sich über kurzfristige Verwerfungen unter dem Aspekt der günstigen Einstiegskurse hinsichtlich der langfristigen Vision.

So war der Kurs, zu welchem wir nach unserem CostAverage 2.0 Sparplan gekauft hätten, bei 0,65*150€ = 97,50€. Unter diesem Kurs konnten wir eine Sparplanausführung zum 15ten des Monats in folgenden Monaten erzielen:

Monat Januar 2016 Februar 2016 März 2016 Mai 2016 Juni 2016
Kurs am 15ten 85,85€ 82,55€ 93,05€ 91,83€ 94,84€
Sparvolumen 500€ 500€ 500€ 500€ 500€
Gekaufte Stücke 5,82 6,07 5,37 5,45 5,27
Gewichtung des Kaufkurses 0,2080 0,2169 0,1919 0,1948 0,1883

Somit konnten wir 5 Ausführungen erzielen, welche zu einem Durchschnittskurs von 89,37€, bei einem konstanten Sparplan-Volumen von 500€ geführt hätte. Die Performance (Stand 27.06.2017) läge bei 29,5%; bei der beispielhaften Sparsumme von 500€ entspräche dies einem Bruttoprofit von 2500€*0,295 = 737,50€.

Die Idee, die hinter diesem Ansatz steckt, beschreiben wir im Detail in unserem Artikel Costaverage 2.0.

Die zugehörigen Signale dazu finden sich in unserem Memberbereich als tägliche Updates sowie monatlich in unserem Newsletter.

Wie kaufe ich die Krise am besten?

Wir setzen bei langfristigen Investitionen stark auf den Costaverage-Effekt. Dabei kaufen wir regelmäßig Anteile von einem Fonds, ETF oder auch einer Aktie. Fällt der Titel, so kauft man günstiger nach und ist bei steigenden Kursen schnell im Gewinn. Steigt die Aktie, so gewinnt man an der Wertentwicklung. Mit dieser Art des Investierens setzt man auf einen langfristig steigenden Markt.

Wie diese Form des Ansparens / des Vermögensaufbaus im Detail funktioniert, kann man in den folgenden Artikeln genauer nachlesen:

by Jul 15, 2017 Keine Kommentare
Wie Unternehmen legal die Bilanz aufhübschen

Wie Unternehmen legal die Bilanz aufhübschen

all

Analysten orientieren sich am Gewinn je Aktie, Anleger meistens an Kennziffern, wie dem KGV oder der Dividenden-Rendite, und Banken an der EK-Quote eines Unternehmens. Doch Unternehmen haben einen massiven Spielraum, wie sie ihre Bilanzen verändern, aufbessern und manipulieren können. Und das ganz legal. Ich möchte dir die gängigsten und einflussreichsten Tricks aufzeigen. Selbst geübte Analysten haben teils Schwierigkeiten die Wahrheit in den komplexen und komplizierten Berichten von Großkonzernen herauszulesen. Eine halbe Armee aus Betriebswirten und Juristen beschäftigt sich damit unschöne Wahrheiten und Zahlen in einem Gewirr aus Berechnungen und Bezeichnungen zu verstecken. Doch ein waches und kritisches Auge sollte man immer haben, wenn man Bilanzen, Finanzdaten und Kennzahlen liest und analysiert. Was einem die Konzerne vorsetzen ist definitiv nicht immer genießbar!

 

Pensionsverpflichtungen verschieben

Pensionsverpflichtungen belasten das Eigenkapital, da sie als Fremdkapital bzw. Schuld gegenüber anderen in der Bilanz geführt werden. Mittlerweile lagern die meisten Unternehmen diese Rückstellungen für Pensionsaufwendungen in so genannte Contractual Trust Arrangements (CTA) aus. Diese vom Unternehmen gegründete Penionstreuhand ist mit einem Pensionsfond vergleichbar. Das Unternehmen kann nun Pensionsrückstellungen auszahlen. Gewinn wird in das CTA eingezahlt, welches das Geld verwaltet, anlegt und die Pensionskosten trägt. In der Bilanz des Unternehmens tauchen dann nur noch die nicht ausgezahlten Pensionsrückstellungen auf. Beispielsweise parkt Evonik derzeit (Stand 2015) 8,7 Milliarden Euro außerhalb der Bilanz. Lediglich 3,4 Milliarden nicht ausfinanzierte Pensionsrückstellungen stehen in der Bilanz.

 

Unrentable Bereiche auslagern

Was die Bilanz runterzieht muss weg. Am liebsten werden diese Bereiche dann als Tochtergesellschaft ausgelagert und nicht mehr in die Bilanz einbezogen. So lagern derzeit RWE und EoN ihr Kerngeschäft aus. Die Sparten Kohle & Gas werden in Tochtergesellschaften abgespalten. Übrig bleiben sollen die grünen, sauberen und gewinnbringenden Bereiche des Unternehmens als neue Hauptfelder. Aus den Augen aus dem Sinn? Vielleicht. Was Anleger dann aber schnell übersehen: die verlustbringenden und überschuldeten Unternehmensbereiche sind weiterhin risikoreich, denn die Muttergesellschaft haftet weiterhin für die Schulden und Kosten. Zumeist bleiben beide Konzerne anfangs verbunden und trennen sich erst nach und nach. Wie beispielweise Bayer anfangs über 30% an der ausgelagerten Kunststoff-Sparte Covestro hielt und dies Schritt für Schritt mit Teilverkäufen reduziert.

 

Firmenwerte verkaufen

Steigen die Sorgen um die Zahlungssicherheit dann verkaufen Unternehmen gerne ihre Immobilien und mieten sie sofort darauf zurück (sale-and-lease-back). Der Effekt ist klar: Es kommt sehr viel Geld bzw. Liquidität in das Unternehmen und die Bilanz sieht wieder liquide und gut aus. Das zuvor gebundene Kapital ist wieder liquide. Der Nachteil ist jedoch, dass man dies nicht zu oft machen kann und die Mietkosten daraufhin den Gewinn belasten. Auch können Mietkosten nun steigen. Thomas Middelhoff konnte die Immobilien von Arcandor beispielsweise für stolze 4,5 Milliarden verkaufen und das Unternehmen war daraufhin quasi schuldenfrei. Genützt hat dies Nichts, denn die steigenden Mitkosten führten das Unternehmen schlussendlich in die Pleite.

 

Kitchen-Sinking

Um den eigenen Job und den Aktienkurs zu retten verschleiern Chefs die Kosten, verschieben Aufwendungen und drücken Abschreibungen. Ewig können diese Lasten nicht verschoben werden. Übernimmt dann ein neuer Chef die Leitung des meist angeschlagenen Konzerns ist zu erkennen, dass diese im ersten Jahr hohe Verluste machen. Bewusst! Denn der neue Chef räumt in der Bilanz auf und deckt alle Schummeleien auf und bereinigt die Bilanz. Verwendet wird für dieses Verhalten der Fachbegriff „Kitchen-Sinking“. Der neue Chef nutzt die erste Phase seiner Amtszeit, um die Altlasten seines Vorgängers aufzuräumen. So machte beispielsweise auch die Deutsche Bank unter John Cryan schnell mehrere historisch hohe Quartalsverluste. Ist der Chef dann länger im Amt, so fällt jedes Quartalsergebnis in seine Verantwortung. Nun fängt er an Verluste zu vermeiden und schleppt Probleme mit sich. Bis ein neuer Chef das Amt übernimmt und erneut aufräumt …

Anleger können sich merken, dass nach dem Amtsantritt neuer CEOs möglicherweise überraschend schlechte Quartalsergebnisse drohen.

 

Kosten wegrechnen

Lagert ein Unternehmen einen unrentablen Bereich nicht aus, so versteckt es trotzdem gern die Kosten. Die Commerzbank beispielsweise präsentiert meist stolz die Rendite der Kernbank, welche doppelt so hoch ist wie die der Gesamt-Bank. Den Markt kann man so hervorragend blenden und von den Erfolgen sprechen. Diese Angaben hoher Renditen sind zwar richtig, aber zeigen nicht das ganze Bild des gesamten Konzerns. Bilanzen kann man stets so drehen und präsentieren, dass alles halb so wild bzw. auch gut aussieht.

 

Kennziffern erfinden

Es gibt zwar vorgeschriebene Formen, wie eine Bilanz auszusehen hat. Doch während ein Unternehmen eine Mindest-Anzahl von Angaben leisten muss, so gibt es nach oben hinaus keine Grenze. Es gibt keine maximale Grenze an Angaben oder eine vorgeschriebene nutzbare Anzahl an Kennziffern. Unternehmen sind daraus resultierend erfinderisch mit den Kennziffern und Bezeichnungen. Seit ungefähr 10 Jahren ist das Ebitda populär. Dies ist der Gewinn ohne Steuern, Zinsen und Abschreibungen. Unternehmen mit hoher Steuerlast und misslungenen Zukäufen präsentieren also lieber das Ebitda, welches die schlimme Bilanz verschönert. Große Kostenpunkte werden nicht beachtet. Auch sprechen die Unternehmen von Gewinnen der Segmente, Bereiche, von nachhaltigen Gewinnen oder bereinigten. Jeder erfindet neue Namen für neue Kennziffern. Analysten und Anleger können nur schwerlich die Übersicht behalten und müssen meist die vorgesetzten Zahlen der Unternehmen einfach hinnehmen. Immer wieder werden hierbei neue Kennzahlen erfunden.

Weitere Tricks, wie Unternehmen den eigenen Aktienkurs treiben, beschönigen und/oder manipulieren können (legal!!) habe ich hier beschrieben.

 

Goodwill

Kauft ein Unternehmen ein anderes teurer ein, als dieses laut Bilanz wert ist, dann ist die Differenz dessen der Goodwill. Siemens kaufte beispielsweise das Unternehmen Dresser-Rand (Bilanzieller Wert: 2 Milliarden Euro) für 6 Milliarden Euro zu. Siemens konnte daraufhin nicht nur das zugekaufte Unternehmen mit 2 Milliarden Euro in der Bilanz führen, sondern auch die vier Milliarden Euro Goodwill wurden in der Bilanz verbucht. Zwar wird diese Summe Jahr für Jahr überpüft, basiert diese Überprüfung jedoch auf der Einschätzung des Managements. Der Goodwill ist nicht an realwirtschaftliche Bedingungen oder Prüfungen gebunden. Siemens könnte ein Jahr später den Goodwill auf 5 Milliarden erhöhen oder auch senken. Je nachdem, wie man es für die jeweilige Bilanz für die Anleger benötigt. Das Problem: Ewig kann man das nicht machen. Irgendwann ist auch den Finanzprüfern klar, dass das gekaufte Unternehmen nicht das Wert ist, als was es taxiert wird vom Unternehmen. Daraufhin folgen meist schmerzhafte und milliardenschwere Abschreibungen. Der Goodwill (also diese aus der Luft gegriffene Fantasie-Bewertung des Managements) muss korrigiert werden.

 

Eigenkapital aufplustern

VW nutze den Goodwill bei der Übernahme von Porsche aus. Für 4 Milliarden Euro erwarb VW 50% von Porsche plus der Option weitere 50% des Konzern für weitere 4 Milliarden Euro kaufen zu dürfen. In der Folge gab VW bewusst äußerst positive Erwartungen für Porsche raus und steigerte den Goodwill der eigenen Anteile kräftig. Als VW dann die Option zog und die zweiten 50% für 4 Milliarden erwarb, wurde jedoch auch der Goodwill angepasst bzw. ausgeweitet. Durch diese Spielereien der Bewertung und Aussichten des Managements konnte VW trotz der „lediglich“ überwiesenen 8,4 Milliarden für Porsche 27 Milliarden Euro in seiner Bilanz verbuchen. Allein basierend auf überzogenen Bewertungen/Aussichten wurden 19 Milliarden Euro Goodwill erstellt und verbucht. Werte, welche es so eigentlich nicht gibt und VW auch eigentlich nicht zur Verfügung standen und doch in das Eigenkapital einflossen. Im Jahr 2012 fuhr Volkswagen dann auch mit 22 Milliarden Euro den größten Unternehmens-Gewinn der deutschen Geschichte ein. Ein Schelm wer böses denkt …

 

Abschreibungen strecken

Abschreibungen schmälern den Gewinn. Vor dem Finanzamt werden Abschreibungen also besonders hoch angesetzt, denn weniger Gewinn bedeutet weniger Steuern. Vor dem Markt, Banken und Anlegern soll jedoch der Gewinn glänzen. Und so kann man beispielsweise Spielräume bei der Abschreibung nutzen und Wertgegenstände nicht in 8 sondern in 10 Jahren abschreiben. Die jährliche Belastung des Gewinns sinkt. Der Gewinn steigt. Die Anleger freuen sich, obwohl der Gewinn eigentlich nicht gestiegen ist. Die Kosten wurden nur verteilt und umgerechnet.

 

Sondereffekte verschweigen

Sondereffekte sind Einnahmen und Ausgaben, welche Unternehmen erzielen, obwohl diese nicht zum organischen Geschäft gehören. Wenn ein Bäcker-Meister und Bäckerei-Besitzer seinen Firmenwagen verkauft, dann macht er in diesem Jahr vielleicht einen besonders hohen Gewinn. Dies ist aber lediglich dem Sondereffekt des Autoverkaufs zu verdanken. Nicht dem (organischen) Kerngeschäft der Bäckerei. Die Einnahmen der Bäckerei sind eventuell sogar gesunken. Diesen Spielraum nutzen Unternehmen gerne aus. Vor Allem werden die Effekte von Übernahmen verschwiegen bzw. nur im Kleingedruckten beschrieben. Wachsen Unternehmen kaum noch organisch, dann kaufen sie verstärkt Unternehmen zu, um weiter zu wachsen. So rühmte sich Allergan beispielsweise mit 74% Umsatzwachstum. Was die Anleger nicht wussten oder vergaßen nachzuschauen: Das Wachstum war fast auschließlich auf eine Fusion mit Actavis zurückzuführen. Organisch wuchsen beide Unternehmen tatsächlich nur 3%. Das hätte den Anlegern sicherlich nicht gefallen.

by Nov 22, 2016 Keine Kommentare
„Kaufen, wenn in den Straßen Blut fließt“

„Kaufen, wenn in den Straßen Blut fließt“

all

Baron Rothschild soll einmal gesagt haben: “Man muss kaufen, wenn in den Straßen Blut fließt“. Ganz so drastisch würde ich es vielleicht nicht ausdrücken, doch er hatte erkannt, dass sich Wenden in Strömungen und Trends oftmals durch kriegerische Konflikte abzeichnen.

Durch die damit einhergehende wirtschaftliche Rezession werden Waren wie Lebensmittel sehr teuer, aber Kapital wie Maschinen oder Produktionsstätten  werden eher günstig zu erwerben sein (aufgrund der politischen Unsicherheit, mangelnder Nachfrage und Geldnot). Es sind dieselben Gründe, die auch heute bei fallenden Aktienkursen angegeben werden.

Was hat aber eine solche Weisheit mit unserer heutigen Zeit zu tun?

Und noch viel wichtiger: Welchen Einfluss hat das auf die eigenen Investments?

Die richtige Antwort ist: Nichts und gegebenenfalls doch alles!!!!!

Denn heute wird der Konflikt  zum Glück zumeist nur noch im Orderbuch (Auflistung der Kauf- und Verkaufsaufträge für ein bestimmtes Wertpapier) ausgefochten.

Wir haben in einem anderen Artikel bereits den Trendaufbau nach Markttechnik näher betrachtet. Dabei wurde angesprochen, dass Trends ineinander verschachtelt sein können und man damit Einstiege finden und Geld verdienen kann.

Rothschild sagte, dass Kriege und Brüche in aktuellen Entwicklungen ein gutes Indiz für eine Wende im Trend seien …und was früher die Weltkriege waren, sind heute der Fall einer Bank oder Fonds.

Doch nun wollen wir das anhand des Trends selbst bestimmen!

DAX D1

Bilder zum zoomen anklicken.

Ich habe hier den Dax(30) auf Tagesbasis mit eingezeichnetem Trendverlauf nach Markttechnik vorbereitet. Bei diesem habe ich eine Wendestelle markiert. Diese ist nicht ganz optimal verlaufen, da danach der Markt noch einmal korrigierte. Aber die untergeordneten Trends, auf die ich eingehen möchte, waren sehr klar zu erkennen.

Mir ist wichtig, dass man folgenden Zusammenhang möglichst gut versteht. Daher habe ich ein kurzes Video dazu erstellt.

Der Dax befindet sich im oberen Bild ganz unverkennbar in einem Aufwärtstrend, wie an den höheren Hoch- und höheren Tiefpunkten zu erkennen ist.

Wir wollen nun zeigen, wie man auf eben diesen Trend aufspringen kann und dabei durch eine kleine Ineffizienz einen guten Einstieg findet. (Korrektur im Trend – wie Rothschild, nur kurzfristiger, wir denken ja nicht in Generationen :-)).

Den untergeordnetenTrend erkennen:

DAX H1

Wenn man nun in die Wendestelle „hineinzoomt“ und sich den Preisverlauf auf Stundenbasis anschaut, so erkennt man, dass hier die kurze Korrektur klar als Abwärtstrend erkennbar ist. Dieser bildet dann einen Boden und kehrt sich in einen Aufwärtstrend um. Man erkennt gut die zu Beginn fallenden Hochs und fallenden Tiefs, die sich dann nach einer kurzen Phase der Uneinigkeit in steigende Hoch- und steigende Tiefpunkte umwandelt. Aus dem Artikel zum Thema Preisentstehung, wissen wir, dass Preise Angebot und Nachfrage widerspiegeln. Je kleiner die Zeiteinheiten werden, desto mehr sieht man den Einfluss jedes einzelnen Kauf- und Verkauf-Auftrages.

Ich will noch eine Stufe tiefer gehen und mit dem M5 das gesamte Bild vervollständigen.

Die kleinen Trends erkennen:

DAX M5 & H1

Hier sieht man, dass sich jede Korrektur des Stundencharts weiter aufspalten lässt und es auf dem 5 Minuten Chart wieder Bewegungen und Korrekturen gibt, welche sich wiederum weiter in kleineren Trends darstellen ließen. Dieses Spiel könnte ich nun so lange fortsetzen, bis wir auf dem Tick Chart und somit der Verbildlichung der Times and Sales Liste angekommen wären. Die Times und Sales Liste ist quasi der Kassenbon der Börse. Auf ihr werden alle Umsätze sowie die zugehörigen Preise verzeichnet. Jede Verbildlichung des Preises ist auf ihr begründet.

Kombinieren wir nun unser bisher erlangtes Wissen, können gut getimte Ein- und Ausstiege gefunden und/oder Hedges aufgelöst werden! (Wie funktioniert das Hedging?| unser Hedge-Rechner)

Zurück zum Thema: Erinnern wir uns noch einmal kurz an den Trendaufbau zurück.

Der Trend wurde definiert durch steigende Hoch- und Tiefpunkte, oder fallende Hoch- und Tiefpunkte. Die Zeiteinheit und Trendgröße ist dabei vollkommen irrelevant.

Wenn wir nun alles zusammen in ein Bild bringen dann wird schnell klar, dass die kleinen Trends in die Großen hineinlaufen. Daraus resultiert, dass man mit engen Stopps und kleinem Risiko an den großen Bewegungen partizipieren kann und hohe Vielfache des eigenen Risikos (also ein hohes CRV) verdienen kann und oder man durch Trailing-Stops dem Markt einfach folgt.

Die Übergänge erkennen:

Wie Trends ineinander Greifen - Ballkönigin

Ich habe hier erneut das Bild mit Stunden- und 5 Minuten Trend.

Wissentlich, dass der Tageschart sich in einem Aufwärtstrend befindet (siehe erstes Bild), suchen wir hier nach Aufwärtstrends in den kleineren Zeiteinheiten. Das untere, große weiße Rechteck, markiert das erste höhere Hoch im 5 Minuten Chart. Sobald der Markt dieses durchbricht, hat er begonnen eine Folge aus höheren Hochs und Tiefs auf dieser Trendgröße zu bilden. Damit wären der Tageschart und der M5 beide long ausgerichtet.

Das obere, längliche Rechteck markiert das erste höhere Hoch auf der Trendgröße des Stundencharts. Sobald der Markt dieses durchbricht, hat er begonnen auf dieser Trendgröße das Muster eines Aufwärtstrends zu bilden. Das kleine Rechteck in der Mitte ist das erste höhere Hoch des korrigierenden 5 Minuten Charts.

Möchte man nun zum Beispiel die Trendwende auf dem Stundenchart vorweg nehmen und den Ausbruch über das erste Hoch mit handeln (diese können beizeiten enorme Volatilität mit sich bringen, wenn short positionierte Marktteilnehmer sich ausstoppen und neue unpositionierte Händler den jungen Trend zu kaufen beginnen) so kann man einfach den kleineren 5 Minuten Trend handeln und schauen, ob man so in den Stunden- und Tagestrend hineinkommt. Diese Form von Handel braucht sehr viel Feingefühl, lässt sicher aber genauso gut in großen Zeiteinheiten handeln (und ist damit nicht den Intra-Day Traden vorbehalten).

Außerdem lassen sich solche Trendumbrüche wunderbar in Kerzen-Formationen erkennen. Wieso, weshalb, warum würde ich gerne nächstes Mal besprechen, da es für den Handel aus dem Chart essentiell ist, Trends und Trendgrößen zu verstehen. Es ist vollkommen normal, dass man dieses Thema eher überspringt, da es zu der trockeneren Materie des Handelns und Investierens gehört.
Aber wie wir alle wissen, hat ein Großteil der Marktteilnehmer zu kämpfen und da ein Großteil sich nicht kümmert…..^^

Wir finden, das muss nicht sein.

Daher sind wir auf dem Weg zu mehr Insight.
Liebe Grüße,
InsideTrading

by Jun 13, 2015 Keine Kommentare