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 pandas
zum Beispiel), maschinelles Lernen für Börsenprognosen (zum Beispiel mit scikit-learn
zum 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
undpandas
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
undpandas
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 mitTensorFlow
undscikit-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
undpandas
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.
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 bookquestions@oreilly.com.
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 permissions@oreilly.com 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 bookquestions@oreilly.com, 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.