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
Bitcoin Shorten

Bitcoin Shorten

Analgeinstrumente Investieren

Bitcoin shorten – vom fallenden btc-Kurs profitieren

Der Bitcoin-Hype scheint kein Ende zu kennen und jeder spricht darüber: Taxifahrer, Friseure und Putzmänner. Jeder scheint ein Experte für Kryptowährungen zu sein. Aktuell haben sogar Sido, Kool Savas & Frauenarzt ein Lied zum Thema Veröffentlicht.

Es gibt keine Grenzen für Kursziele und durch die neuen Technologien ist der Traum vom schnellen Geld nun scheinbar in greifbare Nähe gerückt und zum Teil bereits Realität geworden.
Doch wie nachhaltig ist der Trend? Viele Finanzmarktexperten und Fondsmanager sehen die Entwicklung eher skeptisch. Nun bereiten sich zudem viele Hedgefonds auch darauf vor Bitcoin strukturiert zu shorten  – Bloomberg.

Was bedeutet Bitcoins shorten?

Bitcoins zu shorten bedeutet auf fallende Bitcoin Kurse zu setzen. Sie gewinnen also, wenn Bitcoins an Wert verlieren. Bitcoins shortet man, indem man sich zum Beispiel Bitcoins leiht, verkauft und sie zu einem späteren Zeitpunkt zurückgibt. Ist der Kurs des Coins in der Zwischenzeit gefallen, haben Sie einen Gewinn gemacht, andernfalls einen Verlust. Da dies nicht immer so einfach möglich ist, gibt es Finanzprodukte, die diesen Prozess abbilden und es so für den Anleger sehr einfach machen.

Wie können Sie Bitcoins shorten – CFDs oder Futures

Bitcoins lassen sich auf zwei verschiedene Arten und Weisen einfach shorten. Zum einen besteht die Möglichkeit dies über CFDs und zum anderen über einen Future zu machen. Die genauen Hintergründe zu den beiden Möglichkeiten haben wir unten für Sie aufgeschlüsselt. Hier finden Sie eine kurze Zusammenfassung:

  • Bitcoins können Sie bis zu einem Volumen von 10 Bitcoins sehr gut über CFDs shorten. Bei größeren Volumen eignen sich Futures besser, da es keine Volumenbeschränkung pro Trade gibt
  • Bitcoin-Futures werden an regulierten Märkten gehandelt
  • CFDs haben eine negative Balance Protektion und schützen den Anleger vor Nachzahlungen
  • Wenn Sie sich für einen CFD-Broker entscheiden, überprüfen Sie dessen Angebot und gleichen Sie es mit Ihrer Erwartungshaltung ab. Ein Beispiel für eine solche Checkliste finden Sie unten

Lassen Sie uns aber ein wenig mehr ins Detail gehen.

Der Bitcoin-Kursverlauf lässt nichts Gutes ahnen– Bitcoin verkaufen?

Bitcoins haben in der jungen Vergangenheit zu einer Kurs-Rally geführt, die in der Vergangenheit ihres gleichen sucht. Selten waren Kursanstiege so dramatisch und nicht einmal die Mississippi-Blase, kann den Siegeszug des Bitcoins noch übertrumpfen.

Die Historie scheint einen gerade darauf aufmerksam machen zu wollen, dass diese Entwicklung nicht gesund sein kann, denn auch damals hieß es: „so etwas hat es noch nie gegeben, jetzt wird alles anders“.

Daher stellt sich vielen nun die Frage: „Halte ich meine Bitcoin oder verkaufe ich Bitcoin über eine btc exchange und profitiere vom aktuell sehr guten btc to eur Wechselkurs?“
Diese Frage ist höchst individuell zu beantworten. Sicherlich hat Bitcoin noch einiges an Euphorie-Potenzial aber je nach persönlicher finanzieller Situation kann sich ein Ausstieg bereits jetzt nachhaltig für die Familienkasse bemerkbar machen.
Was, wenn Sie zum aktuellen Zeitpunkt keine Bitcoins haben, welche Chancen bieten sich Ihnen dann beim aktuellen btc-Kurs?

Bitcoin shorten – von fallenden btc Kursen profitieren

Anstelle Bitcoins einfach nur zu kaufen und von steigenden Kursen zu profitieren, gibt es auch bei Kryptowährungen die Möglichkeit, auf fallende Bitcoin-Euro-Kursen zu setzen.
Das Konzept ist beim Kryptowhährungshandel dasselbe wie beim Aktienhandel. Ob Bitcoins, Litecoins, Etherium, IOTA oder Aktien: es lassen sich immer beide Seiten des Trends nutzen.

Bei Bitcoins sowie Währungen im Allgemeinen, gibt es dafür viele Wege.Die beiden einfachsten werden in den folgenden zwei Abschnitten diskutiert:

Bitcoin CFD – mit einem CFD auf fallende btc-Kurse setzen

CFDs sind Contract for Difference.Diese haben beim normalen Währungshandel für Privatkunden bereits den Löwenanteil des Marktes für sich beanspruchen können. Diese Produkte sind sehr einfach strukturiert und auch die Wertentwicklung der Position ist einfach nachvollziehbar: anders als zum Beispiel bei Optionen.

CFDs eignen sich durch den Hebel bereits bei kleineren Kontogrößen, um Shortpositionen auf Bitcoin einzunehmen. Wenn Sie Bitcoin shorten, verkaufen Sie vereinfacht gesagt jemandem Bitcoins, die Sie noch nicht besitzen. Dadurch entsteht eine Verpflichtung, diese zu einem späteren Zeitpunkt zu liefern. Fällt nun der Bitcoin-Kurs im Laufe der Zeit, so können Sie ihre Verpflichtungen zu einem günstigeren btc-Kurs ausgleichen. Die Differenz ist Ihr Gewinn.
Geschäfte, die diesen Prozess abbilden, können Sie bei verschiedenen Brokern sehr einfach handeln. Die Auswahl des richtigen Krypto-CFD-Brokers sollten Sie dabei z.B. an den folgenden Kriterien festmachen:

  • Welchen Hebel bietet mir der Broker für Paare wie btc to eur oder eth to eur
  • Wie viele Kryptowährungen sind beim Broker vertreten? Hat er Bitcoin, Litecoin, Etherium, IOTA und die anderen großen alle als CFD im Angebot?
  • Wie hoch sind die Overnight-Gebühren?
  • Welche Meinungen haben die anderen Kunden?
  • Kenne ich Kunden des Brokers?
  • Welche Weiterbildungsmöglichkeiten hat der Broker im Angebot?
  • Gibt es themenspezifische Webinare?

Wie gehen Sie nun aber mit der Situation um, wenn Sie recht viele Bitcoins besitzen oder aber ein großes Budget haben und viel Geld bewegen wollen?

Bitcoin Future – Gewinne durch Bitcoin-Kursverlusten erzielen

Futures könnten in diesem Zusammenhang genau die richtige Lösung für Sie sein. Die CBOE sowie CME hat für den Bitcoin einen eigenen Future aufgelegt. Die Terminkontrakte erlauben es den Händlern sowohl Long- als auch Short-Positionen auf Bitcoin einzunehmen. Somit gibt es eine neue Alternative in Bitcoins auf einen fallenden btc to eur Kurs zu setzen.

Ein Future ist von der Wertentwicklung her vergleichbar mit einem CFD – mit dem Unterschied, dass Futures nur eine beschränkte Laufzeit haben und somit nicht wie ein Bitcoin-CFD als Position unendlich lang gehalten werden kann. Um trotz allem langfristig durch den Future positioniert sein zu können, lassen sich die Kontrakte rollen. Mehr dazu finden Sie in unserem Artikel zur Rolle von Futures.
Futures liefern zudem aufgrund der Tatsache, dass sie die Spielwiese für institutionelle Investoren sind, ausreichendes Volumen um auch mehr als 10 BTC zu handeln. Dieser Wert stellt bei CFD-Brokern oftmals die Obergrenze dar. Dabei ist allerdings die Mindestposition oftmals gleich dem Bitcoin-Future, welcher mit einem Bitcoin pro Kontrakt normiert ist.

Bitcoin-Futures werden zudem an einem regulierten Markt gehandelt, was zusätzliche Sicherheiten verspricht. Im Gegensatz zu den teils weniger renommierten Bitcoin Exchanges unterliegt der Handel der vollen Transparenz, welche auch bei anderen Finanzprodukten vorliegt. Zudem wird der Future auch über Clearing Häuser gecleart. Dies soll das Settlement garantieren und mehr Klarheit zur Abwicklung geben.
Mehr Informationen zum BTC Future findet sich beispielsweise auf der Seite der CBOE.

Bitcoin CFD oder Bitcoin Future zum Shorten von BTC

Ob ein CFD auf Bitcoin oder aber der BTC Future die richtige Lösung für einen Short-Trade in BTC ist, muss individuell entschieden werden. Möchten Sie echte Bitcoin beziehen bzw. über den Terminmarkt veräußern, und ist es für Sie wichtig, dass Sie Bitcoin an einem regulierten Markt handeln und ein standardisiertes, sicheres Clearing (Erfüllung) Ihres Trades haben. Ist dies der Fall, so ist der Future für Sie wahrscheinlich die beste und aktuell einzige Lösung die diese Ansprüche erfüllt.

Möchten Sie schnell handeln und aktiv am Markt sein, so sind unter Umständen CFDs eine gute Wahl. Diese sind oftmals durch den Broker sehr liquide gehalten und können somit auch IntraDay schnell und einfach gehandelt werden. Großer Nachteil könnte für manche die Beschränkung der Positionsgröße auf 10 btc sein, wobei dies eher die Ausnahme der Regel ist. Neben dieser Einschränkung kommt erschwerend die Tatsache hinzu, dass Sie über Bitcoin nicht die Möglichkeit besitzen, auch wirklich Bitcoin zu beziehen, bzw. liefern zu lassen. Somit haben Sie mit CFDs ein Produkt, welches Ihnen erlaubt an der Wertentwicklung von Bitcoin zu partizipieren, nicht aber Bitcoin zukünftig auch als Zahlungsmittel zu nutzen oder Ihre Bitcoins an eine andere Person zu verkaufen.

Somit liegt die endgültige Entscheidung über den richtigen Handelsweg ist bei Ihnen. Sie können Bitcoin nun auf zwei Wegen shorten, bzw. über einen geregelten Markt verkaufen. Sie haben somit einen erweiterten Überblick über die aktuell verfügbaren Möglichkeiten gewonnen und können besser am Markt agieren. Viel Erfolg.

by Dez 17, 2017 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