Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Der Dataismus besagt, dass das Universum aus Datenströmen besteht und der Wert jedes Phänomens oder jeder Entität durch seinen Beitrag zur Datenverarbeitung bestimmt wird....Der Dataismus hebt damit die Barriere zwischen Tieren [Menschen] und Maschinen auf und erwartet, dass elektronische Algorithmen irgendwann biochemische Algorithmen entschlüsseln und übertreffen werden.1

Yuval Noah Harari

Den richtigen Algorithmus zu finden, um automatisch und erfolgreich an den Finanzmärkten zu handeln, ist der heilige Gral der Finanzwelt. Noch vor nicht allzu langer Zeit war der algorithmische Handel nur institutionellen Akteuren mit tiefen Taschen und viel verwaltetem Vermögen vorbehalten und möglich. Jüngste Entwicklungen in den Bereichen Open Source, Open Data, Cloud Compute und Cloud Speicherung sowie Online-Handelsplattformen haben das Spielfeld für kleinere Institutionen und Einzelhändler/innen geebnet und ermöglichen den Einstieg in diese faszinierende Disziplin, wenn man nur mit einem typischen Notebook oder Desktop-Computer und einer zuverlässigen Internetverbindung ausgestattet ist.

Heutzutage ist Python und sein Ökosystem aus leistungsstarken Paketen die Technologieplattform der Wahl für den algorithmischen Handel. Mit Python kannst du unter anderemeffiziente Datenanalysen durchführen (mit pandaszum Beispiel), maschinelles Lernen für Börsenprognosen (zum Beispiel mit scikit-learnzum Beispiel) oder sogar Googles Deep-Learning-Technologie nutzen (mit TensorFlow.

Dies ist ein Buch über Python für den algorithmischen Handel, vor allem im Zusammenhang mit Alpha generierenden Strategien (sieheKapitel 1). Ein solches Buch am Schnittpunkt zweier großer und spannender Bereiche kann kaum alle relevanten Themen abdecken. Es kann jedoch eine Reihe von wichtigen Metathemen ausführlich behandeln.

Zu diesen Themen gehören:

Finanzdaten

Finanzdaten sind der Kern eines jeden algorithmischen Handelsprojekts. Python und Pakete wie NumPy und pandas eignen sich hervorragend für den Umgang mit strukturierten Finanzdaten jeglicher Art (Tagesende, Intraday,Hochfrequenz).

Backtesting

Es sollte keinen automatisierten algorithmischen Handel geben, ohne die einzusetzende Handelsstrategie gründlich zu testen. Das Buch befasst sich unter anderem mit Handelsstrategien, die auf einfachen gleitenden Durchschnitten, Momentum, Mean-Reversion und maschineller bzw. Deep-Learning-basierter Vorhersage basieren.

Daten in Echtzeit

Algorithmischer Handel erfordert den Umgang mit Echtzeitdaten, darauf basierende Online-Algorithmen und Visualisierung in Echtzeit. Das Buch bietet eine Einführung in die Socket-Programmierung mit ZeroMQ und Streaming-Visualisierung.

Online-Plattformen

Kein Handel kann ohne eine Handelsplattform stattfinden. Das Buch behandelt zwei beliebte elektronische Handelsplattformen: Oanda und FXCM.

Automatisierung

Die Schönheit, aber auch einige große Herausforderungen des algorithmischen Handels ergeben sich aus der Automatisierung des Handels. Das Buch zeigt, wie man Python in der Cloud einsetzt und eine geeignete Umgebung für den automatisiertenalgorithmischen Handel einrichtet.

Das Buch bietet eine einzigartige Lernerfahrung mit den folgenden Merkmalen undVorteilen:

Abdeckung der relevanten Themen

Dies ist das einzige Buch, das die für den algorithmischen Handel relevanten Themen in Python in dieser Breite und Tiefe abdeckt (siehe unten).

Eigenständige Codebasis

Das Buch wird von einem Git-Repository begleitet, das alle Codes in einer eigenständigen, ausführbaren Form enthält. Das Repository ist auf der Quant-Plattform verfügbar.

Reales Handeln als Ziel

Durch die Behandlung von zwei verschiedenen Online-Handelsplattformen wird der Leser in die Lage versetzt, sowohl den Papier- als auch den Live-Handel effizient zu starten. Zu diesem Zweck stattet das Buch den Leser mit relevantem, praktischem und wertvollem Hintergrundwissen aus.

Do-it-yourself und selbstbestimmtes Vorgehen

Da das Material und der Code in sich geschlossen sind und nur auf Standard-Python-Pakete zurückgreifen, hat der Leser die volle Kenntnis und Kontrolle darüber, was vor sich geht, wie die Code-Beispiele zu verwenden sind, wie sie zu ändern sind und so weiter. Es ist nicht nötig, sich auf Plattformen von Drittanbietern zu verlassen, um z. B. das Backtesting durchzuführen oder eine Verbindung zu den Handelsplattformen herzustellen. Mit diesem Buch kann der/die Leser/in all das in seinem/ihrem eigenen Tempo erledigen und hat dazu jede einzelne Codezeile zur Verfügung.

Benutzerforum

Obwohl der Leser in der Lage sein sollte, nahtlos zu folgen, sind der Autor und The Python Quants da, um zu helfen. Der Leser kann jederzeit Fragen und Kommentare im Benutzerforum auf der Quant-Plattform stellen (Accounts sind kostenlos).

Online-/Videotraining (kostenpflichtiges Abonnement)

Die Python Quants bieten umfassende Online-Trainingsprogramme an, die auf die im Buch vorgestellten Inhalte zurückgreifen und zusätzliche Inhalte hinzufügen, die wichtige Themen wie Financial Data Science, künstliche Intelligenz im Finanzwesen, Python für Excel und Datenbanken sowie zusätzliche Python-Tools und -Kenntnisse abdecken.

Inhalt und Struktur

Hier ist ein kurzer Überblick über die Themen und Inhalte, die in den einzelnen Kapiteln vorgestellt werden.

Kapitel 1, Python und Algorithmischer Handel

Das erste Kapitel ist eine Einführung in das Thema algorithmischer Handel, d.h. der automatisierte Handel mit Finanzinstrumenten auf der Grundlage von Computeralgorithmen. Es behandelt grundlegende Begriffe in diesem Zusammenhang und geht unter anderem darauf ein, welche Voraussetzungen für die Lektüre des Buches erfüllt sein sollten.

Kapitel 2, Python-Infrastruktur

Dieses Kapitel legt die technischen Grundlagen für alle folgenden Kapitel, indem es zeigt, wie man eine richtige Python-Umgebung einrichtet. In diesem Kapitel wird hauptsächlich conda als Paket- und Umgebungsverwaltung verwendet. Es veranschaulicht die Bereitstellung von Python über Docker-Container und in der Cloud.

Kapitel 3, Arbeiten mit Finanzdaten

Finanzielle Zeitreihendaten sind für jedes algorithmische Handelsprojekt von zentraler Bedeutung. In diesem Kapitel erfährst du, wie du Finanzdaten aus verschiedenen öffentlichen und proprietären Datenquellen abrufen kannst. Außerdem wird gezeigt, wie du Finanzzeitreihendaten effizient mit Python speichern kannst.

Kapitel 4, Beherrschen des vektorisierten Backtestings

Die Vektorisierung ist ein leistungsstarker Ansatz für numerische Berechnungen im Allgemeinen und für Finanzanalysen im Besonderen. Dieses Kapitel führt in die Vektorisierung mit NumPy und pandas ein und wendet diesen Ansatz auf das Backtesting von SMA-basierten, Momentum- und Mean-Reversion-Strategien an.

Kapitel 5, Vorhersage von Marktbewegungen mit maschinellem Lernen

Dieses Kapitel widmet sich der Erstellung von Marktprognosen mit Hilfe von maschinellem Lernen und Deep Learning-Ansätzen. Indem wir uns hauptsächlich auf vergangene Renditebeobachtungen als Merkmale stützen, werden Ansätze zur Vorhersage der morgigen Marktrichtung unter Verwendung von Python-Paketen wie Keras in Kombination mit TensorFlow und scikit-learn.

Kapitel 6, Aufbau von Klassen fürereignisbasiertes Backtesting

Vektorisiertes Backtesting hat zwar Vorteile, wenn es um die Prägnanz des Codes und die Leistung geht, ist aber in Bezug auf die Darstellung bestimmter Marktmerkmale von Handelsstrategien begrenzt. Das ereignisbasierte Backtesting hingegen, das technisch mit Hilfe objektorientierter Programmierung umgesetzt wird, ermöglicht eine detailliertere und realistischere Modellierung solcher Merkmale. In diesem Kapitel werden eine Basisklasse sowie zwei Klassen für das Backtesting von Long-Only- und Long-Short-Handelsstrategien vorgestellt und detailliert erläutert.

Kapitel 7, Arbeiten mit Echtzeitdaten und Sockets

Die Notwendigkeit, mit Echtzeit- oder Streaming-Daten umzugehen, ist selbst für den ambitionierten einzelnen algorithmischen Trader eine Realität. Das Mittel der Wahl ist die Socket-Programmierung, die in diesem Kapitel vorgestellt wird ZeroMQ als eine leichtgewichtige und skalierbare Technologie vorstellt. Das Kapitel zeigt auch, wie man mit Plotly ansprechende, interaktive Streaming-Diagramme erstellen kann.

Kapitel 8, CFD-Handel mit Oanda

Oanda ist eine Handelsplattform für Devisen (Forex, FX) und Contracts for Difference (CFD), die eine breite Palette von handelbaren Instrumenten anbietet, z. B. solche, die auf Devisenpaaren, Aktienindizes, Rohstoffen oder Zinsinstrumenten (Benchmark-Anleihen) basieren. In diesem Kapitel findest du eine Anleitung, wie du automatisierte algorithmische Handelsstrategien mit Oanda implementieren kannst, indem du das Python-Wrapper-Paket verwendest tpqoa.

Kapitel 9, FX Trading mit FXCM

FXCM ist eine weitere Forex- und CFD-Handelsplattform, diekürzlich eine moderne RESTful-API für den algorithmischen Handel veröffentlichthat. Die verfügbaren Instrumente decken mehrere Anlageklassen ab, z. B. Devisen, Aktienindizes oderRohstoffe. Ein Python-Wrapper-Paket, das den algorithmischen Handel auf der Grundlage von Python-Code sehr bequem und effizient macht, ist verfügbar(http://fxcmpy.tpq.io).

Kapitel 10, Automatisierung von Handelsgeschäften

In diesem Kapitel geht es um Kapitalmanagement, Risikoanalyse und -management sowie um typische Aufgaben bei der technischen Automatisierung von algorithmischen Handelsoperationen. Es behandelt z.B. das Kelly-Kriterium für die Kapitalallokation und denLeverage im Detail.

Anhang A, Python, NumPy, matplotlib, pandas

Der Anhang bietet eine prägnante Einführung in die wichtigsten Python-, NumPy und pandas Themen im Zusammenhang mit dem in den Hauptkapiteln vorgestellten Material. Er stellt einen Ausgangspunkt dar, von dem aus man sein eigenes Python-Wissen mit der Zeit erweitern kann.

Abbildung P-1 zeigt die Ebenen des algorithmischen Handels, die in den Kapiteln von unten nach oben behandelt werden. Sie beginnt notwendigerweise mit der Python-Infrastruktur(Kapitel 2) und fügt Finanzdaten(Kapitel 3) sowie Strategie- und vektorisierten Backtesting-Code (Kapitel 4 und 5) hinzu. Bis zu diesem Punkt werden die Datensätze als Ganzes verwendet und manipuliert. Das ereignisbasierte Backtesting führt zum ersten Mal die Idee ein, dass Daten in der realen Welt inkrementell ankommen(Kapitel 6). Es ist die Brücke, die zur verbindenden Codeschicht führt, die die Socket-Kommunikation und die Echtzeit-Datenverarbeitung abdeckt(Kapitel 7). Darüber hinaus werden Handelsplattformen und ihre APIs benötigt, um Aufträge erteilen zu können (Kapitel 8 und 9). Schließlich werden wichtige Aspekte der Automatisierung und des Einsatzes behandelt(Kapitel 10). In diesem Sinne beziehen sich die Hauptkapitel des Buches auf die in Abbildung P-1 dargestellten Ebenen, die eine natürliche Abfolge der zu behandelnden Themen bieten.

pfat 0001
Abbildung P-1. Die Schichten von Python für den algorithmischen Handel

Für wen dieses Buch ist

Dieses Buch richtet sich an Studierende, Akademiker und Praktiker gleichermaßen, die Python im faszinierenden Bereich des algorithmischen Handels anwenden wollen. Das Buch setzt voraus, dass der Leser zumindest grundlegende Kenntnisse sowohl in der Python-Programmierung als auch im Finanzhandel hat. Zum Nachschlagen und Wiederholen werden im Anhang A wichtige Python-, NumPy, matplotlib und pandas Themen vorgestellt. Die meisten Leser werden davon profitieren, dass sie zumindest Zugang zu Hilpisch (2018) als Referenz haben. Zu den Ansätzen des maschinellen Lernens und des Deep Learning, die auf den algorithmischen Handel angewendet werden, bietet Hilpisch (2020) eine Fülle von Hintergrundinformationen und eine größere Anzahl konkreter Beispiele. Hintergrundinformationen zu Python in den Bereichen Finanzen, Finanzdatenwissenschaft und künstliche Intelligenz findest du in denfolgenden Büchern:

Hintergrundinformationen über den algorithmischen Handel findest du z.B. in diesen Büchern:

Viel Spaß bei deiner Reise durch die Welt des algorithmischen Handels mit Python und melde dich per E-Mail an py4at@tpq.io, wenn du Fragen oder Anmerkungen hast.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings und innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wörtlich eingegeben werden muss.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Dieses Element steht für einen Tipp oder eine Anregung.

Dieses Element steht für einen allgemeinen Hinweis.

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Du kannst den Code, der dem Buch beiliegt, auf der Quant-Plattform unter https://py4at.pqp.io aufrufen und ausführen , wofür nur eine kostenlose Registrierung erforderlich ist.

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, schreibe bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teildes Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eineGenehmigung erforderlich.

Wir freuen uns über eine Namensnennung, verlangen sie aber in der Regel nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Dieses Buch kann zum Beispiel wie folgt benannt werden: "Python for Algorithmic Trading " von Yves Hilpisch (O'Reilly). Copyright 2021 Yves Hilpisch, 978-1-492-05335-4."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

  • O'Reilly Media, Inc.
  • 1005 Gravenstein Highway Nord
  • Sebastopol, CA 95472
  • 800-998-9938 (in den Vereinigten Staaten oder Kanada)
  • 707-829-0515 (international oder lokal)
  • 707-829-0104 (Fax)

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/py4at aufrufen .

Schreib eine E-Mail an , um Kommentare oder technische Fragen zu diesem Buch zu stellen.

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter http://oreilly.com.

Finde uns auf Facebook: http://facebook.com/oreilly

Folge uns auf Twitter: http://twitter.com/oreillymedia

Schau uns auf YouTube: http://youtube.com/oreillymedia

Danksagungen

Ich möchte mich bei den technischen Gutachtern - Hugh Brown, McKlayne Marshall, Ramanathan Ramakrishnamoorthy und Prem Jebaseelan - bedanken, die hilfreiche Kommentare abgegeben haben, die zu vielen inhaltlichen Verbesserungen des Buches führten.

Ein besonderes Dankeschön geht wie immer an Michael Schwed, der mich in allen technischen Belangen, ob einfach oder hochkomplex, mit seinem breiten und tiefgreifenden Technik-Know-how unterstützt.

Auch die Teilnehmer der Zertifikatsprogramme in Python for Computational Finance und Algorithmic Trading haben zur Verbesserung dieses Buches beigetragen. Ihr ständiges Feedback hat es mir ermöglicht, Fehler und Irrtümer auszumerzen und den Code und die Notizbücher zu verfeinern, die in unseren Online-Schulungen und nun endlich auch in diesem Buch verwendet werden.

Ich möchte auch dem gesamten Team von O'Reilly Media - insbesondere Michelle Smith, Michele Cronin, Victoria DeRose und Danny Elfanbaum - dafür danken, dass sie alles möglich gemacht und mir geholfen haben, das Buch auf so viele Arten zu verbessern.

Natürlich sind alle verbleibenden Fehler allein meine.

Außerdem möchte ich dem Team von Refinitiv - insbesondere Jason Ramchandani - für die kontinuierliche Unterstützung und den Zugang zu Finanzdaten danken. Die wichtigsten Daten, die in diesem Buch verwendet und den Lesern zur Verfügung gestellt wurden, stammen auf die eine oder andere Weise aus den Daten-APIs von Refinitiv.

Mit Liebe an meine Familie. Ich widme dieses Buch meinem Vater Adolf, der mich und unsere Familie nun schon seit fast fünf Jahrzehnten unterstützt.

1 Harari, Yuval Noah. 2015. Homo Deus: Eine kurze Geschichte des Morgens. London: Harvill Secker.

Get Python für den algorithmischen Handel now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.