Kapitel 1. Finanzen und Python
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Die Geschichte der Finanztheorie ist ein interessantes Beispiel für die Wechselwirkung zwischen abstrakter Theoriebildung und praktischer Anwendung.
Frank Milne (1995)
Hedge-Fonds haben in den letzten Jahren zig Milliarden Dollar an Investitionen in gesaugt, die zunehmend durch Technologie unterstützt werden. Die gleiche Technologie kommt auch den Menschen zugute, die bei diesen Organisationen die finanziellen Entscheidungen treffen.
Laurence Fletcher (2020)
Dieses Kapitel gibt einen prägnanten Überblick über die für das Buch relevanten Themen. Es soll sowohl den finanziellen als auch den technologischen Rahmen für die folgenden Kapitel bilden. "Eine kurze Geschichte der Finanzen" gibt zunächst einen kurzen Überblick über die Geschichte und den aktuellen Stand der Finanzen. In "Wichtige Trends im Finanzwesen" werden die wichtigsten Trends erörtert, die die Entwicklung des Finanzwesens im Laufe der Zeit vorangetrieben haben: Mathematik, Technologie, Daten und künstliche Intelligenz. Vor diesem Hintergrund argumentiert "A Four-Languages World", dass das Finanzwesen heute eine Disziplin mit vier eng miteinander verbundenen Sprachen ist: Englisch, Finanzen, Mathematik und Programmierung. Der allgemeine Ansatz des Buches wird in "Der Ansatz dieses Buches" erläutert . "Erste Schritte mit Python" veranschaulicht, wie eine geeignete Python-Umgebung auf dem Computer des Lesers installiert werden kann. Der gesamte Code kann jedoch über einen normalen Webbrowser auf der Quant-Plattform verwendet und ausgeführt werden, sodass später eine lokale Python-Installation eingerichtet werden kann.
Eine kurze Geschichte der Finanzen
Um besser zu verstehen, wie es um das Finanzwesen und die Finanzindustrie bestellt ist, ist es hilfreich, einen Blick darauf zu werfen, wie sie sich im Laufe der Zeit entwickelt haben. Die Geschichte des Finanzwesens als wissenschaftliches Fachgebiet lässt sich nach Rubinstein (2006) grob in drei Perioden einteilen:
- Die alte Zeit (vor 1950)
-
Ein Zeitraum, der hauptsächlich durch informelle Überlegungen, Faustregeln und die Erfahrung von Marktpraktikern geprägt ist.
- Die klassische Periode (1950-1980)
-
Eine Periode gekennzeichnet durch die Einführung formaler Argumente und der Mathematik in diesem Bereich. In dieser Zeit wurden sowohl spezialisierte Modelle (z. B. das Optionspreismodell von Black und Scholes (1973)) als auch allgemeine Rahmenwerke (z. B. der risikoneutrale Preisansatz von Harrison und Kreps (1979)) entwickelt.
- Der moderne Zeitraum (1980-2000)
-
In dieser Zeit ( ) wurden viele Fortschritte in bestimmten Teilbereichen der Finanzwirtschaft (z. B. Computational Finance) erzielt und unter anderem wichtige empirische Phänomene auf den Finanzmärkten wie stochastische Zinssätze (z. B. Cox, Ingersoll und Ross (1985)) oder stochastische Volatilität (z. B. Heston (1993)) behandelt.
Fünfzehn Jahre nach der Veröffentlichung des Buches von Rubinstein (2006) können wir heute eine vierte und fünfte Periode hinzufügen. Diese beiden Perioden sind für den Aufstieg und die derzeitige Omnipräsenz von Python im Finanzwesen verantwortlich:
- Der Berechnungszeitraum (2000-2020)
-
Im Zeitraum von hat sich der Schwerpunkt der Finanzwissenschaft von der Theorie auf die Berechnung verlagert, was durch Fortschritte bei der im Finanzwesen verwendeten Hardware und Software vorangetrieben wurde. Die Arbeit von Longstaff und Schwartz (2001), die einen effizienten numerischen Algorithmus zur Bewertung amerikanischer Optionen durch Monte-Carlo-Simulationen vorstellten, veranschaulicht diesen Paradigmenwechsel sehr gut. Ihr Algorithmus ist sehr rechenintensiv, da in der Regel Hunderttausende von Simulationen und mehrere gewöhnliche Kleinstquadrat-Regressionen erforderlich sind, um nur eine einzige Option zu bewerten (siehe Hilpisch (2018)).
- Die Zeit der künstlichen Intelligenz (nach 2020)
-
Die Fortschritte in der künstlichen Intelligenz (KI) und die damit verbundenen Erfolgsgeschichten haben das Interesse geweckt, die Fähigkeiten der KI im Finanzbereich zu nutzen. Während es bereits erfolgreiche Anwendungen von KI im Finanzbereich gibt (siehe Hilpisch (2020)), kann davon ausgegangen werden, dass es ab 2020 einen systematischen Paradigmenwechsel hin zu AI-first finance geben wird. AI-first finance beschreibt den Wechsel von einfachen, in der Regel linearen Modellen im Finanzbereich hin zur Nutzung fortschrittlicher Modelle und Algorithmen aus der KI - wie z. B. tiefe neuronale Netze oder Reinforcement Learning - um finanzielle Phänomene zu erfassen, zu beschreiben und zu erklären.
Wichtige Trends im Finanzwesen
Wie viele andere Fächer und Branchen hat sich auch das Finanzwesen im Laufe der Zeit zu einer stärker formalisierten wissenschaftlichen Disziplin entwickelt, die durch den zunehmenden Einsatz formaler Mathematik, fortschrittlicher Technologien, die wachsende Verfügbarkeit von Daten und verbesserte Algorithmen, z. B. aus der KI, angetrieben wird. Insgesamt lässt sich die Entwicklung des Finanzwesens im Laufe der Zeit also durch vier große Trends charakterisieren:
- Mathematik
-
Beginnend den 1950er Jahren mit der klassischen Periode hat sich die Finanzwissenschaft mehr und mehr zu einer formalisierten Disziplin entwickelt, die systematisch verschiedene Bereiche der Mathematik nutzt, wie die lineare Algebra oder die stochastische Berechnung. Die Mean-Variance-Portfolio-Theorie (MVP) von Markowitz (1952) kann als bedeutender Durchbruch in der quantitativen Finanzwissenschaft angesehen werden, wenn nicht sogar als ihr Ausgangspunkt - sie ließ die alte Periode, die hauptsächlich durch informelle Überlegungen gekennzeichnet war, hinter sich.
- Technologie
-
Die weit verbreitete Verfügbarkeit und Nutzung von Personalcomputern, Workstations und Servern, die vor allem in den späten 1980er und frühen 1990er Jahren einsetzte, brachte immer mehr Technologie in dieses Gebiet. Während die Rechenleistung und -kapazität anfangs eher begrenzt waren, haben sie heute ein Niveau erreicht, das es uns ermöglicht, selbst die komplexesten Probleme im Finanzwesen mit schierer roher Gewalt anzugehen, wodurch die Suche nach eher spezialisierten, effizienten Modellen und Methoden - die die klassische und moderne Zeit kennzeichneten - oft obsolet wird. Das Credo lautet nun: "Skaliere deine Hardware und verwende moderne Software in Kombination mit geeigneten numerischen Methoden." Andererseits ist die moderne Hardware, die in den meisten Wohnheimen undWohnzimmern zu finden ist, bereits so leistungsfähig, dass selbst hochleistungsfähige Ansätze wie die Parallelverarbeitung in der Regel auf solcher Standardhardware genutzt werden können, was die Einstiegshürden für den Einstieg in Computational Finance und KIenorm senkt.
- Daten
-
Während Forscher/innen und Praktiker/innen in der Antike und in der Antike hauptsächlich auf gedruckte Finanzinformationen und -daten angewiesen waren (man denke nur an das Wall Street Journal oder die Financial Times), sind elektronische Finanzdaten seit der Neuzeit immer häufiger verfügbar. In der Computerzeit ist die Verfügbarkeit von Finanzdaten jedoch explosionsartig gestiegen. Hochfrequente Intraday-Datensätze sind zur Norm geworden und haben die Tagesschlusskurse als Hauptgrundlage für empirische Untersuchungen ersetzt. Eine einzige Aktie kann börsentäglich Intraday-Datensätze mit weit über 100.000 Datenpunkten generieren - das entspricht in etwa dem Wert von 400 Jahren Tagesschlusskursen für dieselbe Aktie (250 Handelstage pro Jahr mal 400 Jahre). In jüngster Zeit ist sogar eine Zunahme offener oder kostenloser Datensätze zu beobachten, was die Einstiegshürden in die Finanzinformatik, den algorithmischen Handel oder die Finanzökonometrie deutlich senkt.
- Künstliche Intelligenz
-
Die Verfügbarkeit von immer mehr Finanzdaten ("Big Financial Data") macht die Anwendung von KI-Algorithmen - wie die des maschinellen Lernens, des Deep Learning oder des Reinforcement Learning (siehe Hilpisch (2020)) - nicht nur möglich, sondern in vielen Fällen heutzutage auch notwendig. Traditionelle statistische Methoden aus der Finanzökonometrie sind oft nicht mehr geeignet, um die Komplexität der heutigen Finanzmärkte zu bewältigen. Angesichts nichtlinearer, multidimensionaler und sich ständig verändernder Finanzumgebungen sind KI-basierte Algorithmen oft die einzige Option, um relevante Beziehungen und Muster zu entdecken, wertvolle Erkenntnisse zu gewinnen und von verbesserten Vorhersagefähigkeiten zu profitieren.
Mit der Lektüre dieses Buches legt der Leser die Grundlagen in den Bereichen der Finanzmathematik und der modernen Technologie, die zur Umsetzung formaler Finanzmodelle verwendet wird. Der Leser erwirbt auch die Fähigkeit, mit typischen Finanzdatensätzen zu arbeiten, die in der Finanzwelt vorkommen. Zusammengenommen bereitet dies den Leser darauf vor, später auch leichter fortgeschrittene Themen im Bereich der Finanzmathematik oder der KI, angewandt auf , zu erforschen.
Python und Finanzen
Mehr und mehr ist das Finanzwesen zu einem Bereich geworden, der von rechenintensiven Algorithmen, einer immer größeren Datenverfügbarkeit und KI angetrieben wird. Python hat sich als die richtige Programmiersprache und Technologieplattform erwiesen, um die Anforderungen und Herausforderungen zu bewältigen, die sich aus den wichtigsten Trends in diesem Bereich ergeben.
Eine viersprachige Welt
Vor diesem Hintergrund ist die Finanzwelt zu einer Welt der vier Sprachen geworden:
- Natürliche Sprache
-
Heutzutage ist die englische Sprache die einzige relevante Sprache in diesem Bereich, wenn es um veröffentlichte Forschungsergebnisse, Bücher, Artikel oder Nachrichten geht.
- Finanzsprache
-
Wie in jedem anderen Bereich gibt es auch in der Finanzwirtschaft ( ) Fachbegriffe, Begriffe und Ausdrücke, die bestimmte Phänomene oder Ideen beschreiben, die in anderen Bereichen normalerweise nicht relevant sind.
- Mathematische Sprache
-
Die Mathematik ist das Mittel und die Sprache der Wahl, wenn es darum geht, die Begriffe und Konzepte des Finanzwesens zu formalisieren.
- Programmiersprache
-
Wie das Zitat am Anfang des Vorworts verdeutlicht, ist Python als Programmiersprache in vielen Ecken der Finanzbranche zur Sprache der Wahl geworden.
Die Beherrschung des Finanzwesens erfordert daher sowohl vom Akademiker als auch vom Praktiker, dass er alle vier Sprachen fließend beherrscht: Englisch, Finanzen, Mathematik und Python. Das heißt nicht, dass zum Beispiel Englisch und Python die einzigen relevanten Natur- oder Programmiersprachen sind. Vielmehr gilt: Wenn du nur wenig Zeit hast, um eine Programmiersprache zu lernen, solltest du dich - neben der Finanzmathematik - am besten auf Python konzentrieren, um das Fach zu beherrschen.
Der Ansatz dieses Buches
Wie geht dieses Buch mit den vier Sprachen um, die man im Finanzwesen braucht? Die englische Sprache ist eine Selbstverständlichkeit - du liest sie ja schon. Dennoch bleiben drei übrig.
Dieses Buch kann zum Beispiel nicht jede einzelne Mathematik im Detail vorstellen, die im Finanzwesen benötigt wird. Genauso wenig kann es jedes einzelne Konzept der (Python-)Programmierung im Detail vorstellen, das in der Finanzmathematik benötigt wird. Es versucht jedoch, verwandte Konzepte aus dem Finanzwesen, der Mathematik und der Programmierung nebeneinander vorzustellen, wann immer dies möglich und sinnvoll ist.
Ab Kapitel 2 führt das Buch einen finanziellen Begriff oder ein Konzept ein und veranschaulicht es dann anhand einer mathematischen Darstellung und der Implementierung in Python. Sieh dir zum Beispiel die folgende Tabelle aus Kapitel 3 an. Die Tabelle listet das Finanzthema, die wichtigsten mathematischen Elemente und die wichtigste Datenstruktur in Python auf, die zur Umsetzung der Finanzmathematik verwendet wird:
Finanzen | Mathematik | Python |
---|---|---|
Ungewissheit |
Wahrscheinlichkeitsraum |
|
Finanzielle Vermögenswerte |
Vektoren, Matrizen |
|
Erreichbare Eventualforderungen |
Spanne der Vektoren, Basis des Vektorraums |
|
Im Folgenden wird ein bestimmtes Beispiel durchgespielt, auf das in späteren Kapiteln näher eingegangen wird. Das Beispiel dient nur zur Veranschaulichung des allgemeinen Ansatzes des Buches an dieser Stelle.
Nehmen wir als Beispiel , das zentrale Konzept der Unsicherheit im Finanzwesen aus der vorangegangenen Tabelle. Ungewissheit bedeutet, dass die zukünftigen Zustände einer Modellwirtschaft nicht im Voraus bekannt sind. Welcher zukünftige Zustand der Wirtschaft eintritt, kann z. B. wichtig sein, um den Auszahlungsbetrag einer europäischen Kaufoption zu bestimmen. Im diskreten Fall hat man es mit einer endlichen Anzahl solcher Zustände zu tun, etwa zwei, drei oder mehr. Im einfachsten Fall von nur zwei zukünftigen Zuständen wird die Auszahlung einer europäischen Kaufoption mathematisch als eine Zufallsvariable dargestellt, die wiederum formal als Vektor dargestellt werden kann dargestellt werden kann, der selbst ein Element des VektorraumsistEin Vektorraum ist eine Sammlung von Objekten, sogenannten Vektoren, für die Addition und skalare Multiplikation definiert sind. Formal schreibt man für einen solchen Vektor zum Beispiel:
Hier wird angenommen, dass beide Elemente des Vektors nichtnegative reelle Zahlen sindKonkret bedeutet dies, dass der unsichere, zustandsabhängige Preis der Aktie, auf die die europäische Kaufoption geschrieben ist, in diesem Zusammenhang wie folgt lautet
und der Ausübungspreis der Option ist beträgt, ist die Auszahlung der europäischen Kaufoption ist gegeben durch
Dies veranschaulicht, wie die Begriffe des unsicheren Preises einer Aktie und der zustandsabhängigen Auszahlung einer europäischen Option mathematisch als Vektor modelliert werden können. Die Disziplin, die sich in der Mathematik mit Vektoren und Vektorräumen beschäftigt, wird lineare Algebra genannt.
Wie lässt sich das alles in die Python-Programmierung übertragen? Erstens werden reelle Zahlen in Python als Fließkommazahlen oder float
Objekte dargestellt:
In
[
1
]
:
vu
=
1.5
In
[
2
]
:
vd
=
3.75
In
[
3
]
:
type
(
vu
)
Out
[
3
]
:
float
In
[
4
]
:
vu
+
vd
Out
[
4
]
:
5.25
Definiert eine Variable mit dem Namen
vu
und dem Wert 1,5.Definiert eine Variable mit dem Namen
vd
und dem Wert 3,75.Schaut nach, von welchem Typ das Objekt
vu
ist - es ist einfloat
Objekt.Addiert die Werte von
vu
undvd
.
Zweitens nennt man Sammlungen von Objekten desselben Typs in der Programmierung normalerweise Arrays. In Python bietet das Paket NumPy
eine Unterstützung für solche Datenstrukturen. Die wichtigste Datenstruktur, die dieses Paket zur Verfügung stellt, heißt ndarray
, was eine Abkürzung ist für -dimensionales Array. Reelle Vektoren sind einfach mit NumPy
zu modellieren:
In
[
5
]
:
import
numpy
as
np
In
[
6
]
:
v
=
np
.
array
(
(
vu
,
vd
)
)
In
[
7
]
:
v
Out
[
7
]
:
array
(
[
1.5
,
3.75
]
)
In
[
8
]
:
v
.
dtype
Out
[
8
]
:
dtype
(
'
float64
'
)
In
[
9
]
:
v
.
shape
Out
[
9
]
:
(
2
,
)
In
[
10
]
:
v
+
v
Out
[
10
]
:
array
(
[
3.
,
7.5
]
)
In
[
11
]
:
3
*
v
Out
[
11
]
:
array
(
[
4.5
,
11.25
]
)
Importiert das Paket
NumPy
.Instanziiert ein
ndarray
Objekt.Druckt die im Objekt gespeicherten Daten aus.
Schlägt den Datentyp für alle Elemente nach.
Sucht nach der Form des Objekts.
Vektorielle Addition illustriert.
Skalarmultiplikation illustriert.
Hier wird gezeigt, wie die mathematischen Konzepte rund um Vektoren in Python dargestellt und angewendet werden. Es ist dann nur noch ein Schritt weiter, diese Erkenntnisse auf die Finanzwelt anzuwenden:
In
[
12
]
:
S
=
np
.
array
(
(
20
,
5
)
)
In
[
13
]
:
K
=
15
In
[
14
]
:
C
=
np
.
maximum
(
S
-
K
,
0
)
In
[
15
]
:
C
Out
[
15
]
:
array
(
[
5
,
0
]
)
Definiert den unsicheren Preis der Aktie als
ndarray
Objekt.Legt den Ausübungspreis als Python-Variable mit einem Integer-Wert fest (
int
Objekt).Berechnet den maximalen Ausdruck elementweise.
Zeigt die resultierenden Daten an, die nun im Objekt
ndarray
C
gespeichert sind.
Das verdeutlicht den Stil und den Ansatz dieses Buches:
-
Begriffe und Konzepte aus dem Finanzwesen werden eingeführt.
-
Es wird eine mathematische Darstellung und ein Modell bereitgestellt.
-
Das mathematische Modell wird in ausführbaren Python-Code übersetzt.
In diesem Sinne motiviert das Finanzwesen den Einsatz von Mathematik, was wiederum den Einsatz der Python-Programmierung Techniken motiviert.
Erste Schritte mit Python
Einer der Vorteile von Python ist, dass es eine Open-Source-Sprache ist, was auch für die absolute Mehrheit der wichtigen Pakete zutrifft. Dies ermöglicht eine einfache Installation der Sprache und der benötigten Pakete auf allen wichtigen Betriebssystemen wie macOS, Windows und Linux. Es gibt nur wenige wichtige Pakete, die neben einem grundlegendenPython-Interpreter für den Code dieses Buches und die Finanzen im Allgemeinen benötigt werden:
NumPy
-
Dieses Paket ermöglicht den effizienten Umgang mit großen, n-dimensionalen numerischen Datensätzen.
pandas
-
Das Paket ist in erster Linie für den effizienten Umgang mit tabellarischen Datensätzen, wie z. B. finanziellen Zeitreihendaten, gedacht. Obwohl es für die Zwecke dieses Buches nicht erforderlich ist, hat sich
pandas
zu einem der beliebtesten Python-Pakete im Finanzbereich entwickelt. SciPy
-
Dieses Paket ist eine Sammlung wissenschaftlicher Funktionen, die z.B. zur Lösung typischer Optimierungsprobleme benötigt werden.
SymPy
-
Dieses Paket ermöglicht symbolische Mathematik mit Python, was manchmal sehr nützlich ist, wenn man sich mit Finanzmodellen und Algorithmen beschäftigt.
matplotlib
-
Dieses Paket ist das Standardpaket in Python für die Visualisierung. Mit ihm kannst du verschiedene Arten von Diagrammen erstellen und anpassen, z. B. Liniendiagramme, Balkendiagramme und Histogramme.
Auch für den Einstieg in die interaktive Python-Programmierung sind nur zwei Werkzeuge erforderlich:
- IPython
-
Dies ist die beliebteste Umgebung, um interaktive Python-Programmierung auf der Kommandozeile (Terminal, Shell) durchzuführen.
- JupyterLab
-
Dies ist die interaktive Entwicklungsumgebung, in der du interaktiv Python im Browser programmieren und entwickeln kannst.
Die technischen Voraussetzungen, um bei der Python-Programmierung mitzukommen, sind minimal. Es gibt grundsätzlich zwei Möglichkeiten, den Python-Code in diesem Buch zu nutzen:
- Quant Plattform
-
Auf findest du mit der Quant Platform, für die du dich kostenlos anmelden kannst, eine vollwertige Umgebung für interaktive Finanzanalysen mit Python. Damit kannst du den in diesem Buch bereitgestellten Python-Code über den Browser nutzen, was eine lokale Installation überflüssig macht. Nach der kostenlosen Anmeldung hast du automatisch Zugriff auf den gesamten Code und alle Jupyter Notebooks, die das Buch begleiten, und du kannst den Code sofort im Browser ausführen.
- Lokale Python-Umgebung
-
Heutzutage ist es auch ganz einfach, eine lokale Python-Umgebung zu installieren, mit der du auf deinem eigenen Computer in die Finanzanalyse und den Code des Buches eintauchen kannst. Dieser Abschnitt beschreibt, wie du das machst.
Lokale Installation versus die Quant-Plattform
Erfahrungsgemäß kann sich die lokale Installation einer geeigneten Python-Umgebung für jemanden, der gerade erst in die Welt der Programmierung einsteigt, manchmal als schwierig erweisen. Deshalb ist es empfehlenswert, dass du am Anfang nicht zu viel Zeit mit der lokalen Installation von Python verbringst, wenn du auf Probleme stößt. Nutze stattdessen die Quant-Plattform und später, mit etwas mehr Erfahrung, kannst du immer noch zurückkehren und Python auf deinem lokalen Rechner installieren.
Ein einfacher und moderner Weg, Python zu installieren, ist die Verwendung des conda
Paket- und Umgebungsmanager (siehe Abbildung 1-1).
Der effizienteste Weg, conda
und einen einfachen Python-Interpreter zu installieren, ist über die Miniconda-Distribution. Auf der Miniconda-Downloadseite werden Installationspakete für die wichtigsten Betriebssysteme und Python-Versionen angeboten (siehe Abbildung 1-2). Zusätzliche Optionen, z. B. für die M1-Chips von Apple ("Apple Silicon"), werden vom Miniforge-Projekt bereitgestellt.
Nachdem du Miniconda oder Miniforge gemäß den Richtlinien für dein Betriebssystem installiert hast, solltest du eine Shell oder Eingabeaufforderung öffnen und überprüfen, ob conda
verfügbar ist. Die folgenden Beispiele basieren auf conda
, wie es über Miniforge auf einem Apple Mac Computer mit dem M1-Chip installiert wurde. Du solltest eine ähnliche Ausgabe wie die folgende erhalten:
(base) minione:finpy yves$ conda --version conda 4.10.3 (base) minione:finpy yves$
Beachte auch den (base)
Teil der Eingabeaufforderung, der typisch für conda
-basierte Python-Installationen ist. Im nächsten Schritt erstellst du eine neue Python-Umgebung wie folgt (und antwortest mit "y", wenn du dazu aufgefordert wirst):
pro:finpy yves$ conda create --name finpy python=3.9 ... Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate finpy # # To deactivate an active environment, use # # $ conda deactivate
Nach dem erfolgreichen Abschluss aktivierst du die Umgebung wie folgt :
(base) minione:finpy yves$ conda activate finpy (finpy) minione:finpy yves$
Beachte, wie sich die Eingabeaufforderung ändert. Als Nächstes installierst du die erforderlichen Tools IPython und JupyterLab wie folgt (und antwortest mit "y", wenn du dazu aufgefordert wirst):
(finpy) minione:finpy yves$ conda install ipython jupyterlab ...
Danach solltest du die wichtigsten Python-Pakete installieren, die im Allgemeinen für die Finanzdatenwissenschaft verwendet werden (das Flag -y
vermeidet die Eingabeaufforderung):
(finpy) minione:finpy yves$ conda install -y numpy pandas matplotlib scipy sympy ...
Hier findest du die wichtigsten Python-Pakete für die Datenanalyse im Allgemeinen und die Finanzanalyse im Besonderen. Du kannst wie folgt überprüfen, ob alles installiert ist:
(finpy) minione:finpy yves$ conda list # packages in environment at /Users/yves/Python/envs/finpy: # # Name Version Build Channel anyio 3.3.0 py39h2804cbe_0 conda-forge appnope 0.1.2 py39h2804cbe_1 conda-forge argon2-cffi 20.1.0 py39h5161555_2 conda-forge ... jupyterlab 3.1.12 pyhd8ed1ab_0 conda-forge ... numpy 1.21.2 py39h1f3b974_0 conda-forge ... python 3.9.7 h54d631c_1_cpython conda-forge ... zipp 3.5.0 pyhd8ed1ab_0 conda-forge zlib 1.2.11 h31e879b_1009 conda-forge zstd 1.5.0 h861e0a7_0 conda-forge (finpy) minione:finpy yves$
Eine interaktive Python-Sitzung wird dann einfach durch die Eingabe von python
gestartet:
(finpy) minione:finpy yves$ python Python 3.9.7 | packaged by conda-forge | (default, Sep 14 2021, 01:14:24) [Clang 11.1.0 ] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> print('Hello Finance World.') Hello Finance World. >>> exit() (finpy) minione:finpy yves$
Eine bessere interaktive Shell bietet IPython, die über ipython
auf der Shell gestartet wird:
(finpy) minione:finpy yves$ ipython Python 3.9.7 | packaged by conda-forge | (default, Sep 14 2021, 01:14:24) Type 'copyright', 'credits' or 'license' for more information IPython 7.27.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: from numpy.random import default_rng In [2]: rng = default_rng(100) In [3]: rng.random(10) Out[3]: array([0.83498163, 0.59655403, 0.28886324, 0.04295157, 0.9736544 , 0.5964717 , 0.79026316, 0.91033938, 0.68815445, 0.18999147]) In [4]: exit (finpy) minione:finpy yves$
Es ist jedoch empfehlenswert - vor allem für Python-Anfänger - mit JupyterLab im Browser zu arbeiten. Gib dazu in der Shell jupyter lab
ein, was eine Ausgabe mit Meldungen ähnlich der folgenden ergeben sollte:
(finpy) minione:finpy yves$ jupyter lab ... [I 2021-09-16 14:18:21.774 ServerApp] Jupyter Server 1.11.0 is running at: [I 2021-09-16 14:18:21.774 ServerApp] http://localhost:8888/lab [I 2021-09-16 14:18:21.774 ServerApp] or http://127.0.0.1:8888/lab [I 2021-09-16 14:18:21.774 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
In der Regel wird automatisch ein neuer Browser-Tab geöffnet, der dir dann die Startseite von JupyterLab anzeigt, ähnlich wie in Abbildung 1-3.
Du kannst dann ein neues Jupyter Notebook öffnen und mit der interaktiven Python-Codierung beginnen, wie in Abbildung 1-4 gezeigt. Um Code in eine Zelle zu schreiben, klicke auf die Zelle. Um den Code auszuführen, drückst du Shift-Return, Ctrl-Return oder Alt-Return (du wirst den Unterschied merken).
Du kannst auch eine der Jupyter-Notebook-Dateien öffnen, die diesem Buch beiliegen (siehe Abbildung 1-5).
Dieser Abschnitt enthält nur die Grundlagen für den Einstieg in Python und verwandte Tools wie IPython und JupyterLab. Weitere Details - zum Beispiel über die Arbeit mit IPython - findest du in dem Buch von VanderPlas (2016), das in Kapitel 7 aufgeführt ist.
Schlussfolgerungen
Die Finanzwirtschaft kann auf eine lange Geschichte zurückblicken. Die Zeit von 1950 bis 1980 ist gekennzeichnet durch die Einführung der strengen mathematischen Analyse in diesem Bereich. Seit den 1980er Jahren und insbesondere seit dem Jahr 2000 hat die Rolle von Computern und Finanzberechnungen enorm an Bedeutung gewonnen. Dieser Trend wird durch die zunehmende Rolle der KI mit ihren rechenintensiven Algorithmen des maschinellen Lernens (ML) und des Deep Learning (DL) noch verstärkt.
Im Finanzbereich werden vier verschiedene Arten von Sprachen verwendet: die natürliche Sprache (Englisch im Allgemeinen), die Finanzsprache (spezielle Begriffe und Ausdrücke für diesen Bereich), die mathematische Sprache (wie lineare Algebra oder Wahrscheinlichkeitstheorie) und die Programmiersprache (wie Python für die Zwecke dieses Buches).
Der Ansatz dieses Buches besteht darin, verwandte Konzepte aus den Bereichen Finanzen, Mathematik und Python-Programmierung nebeneinander vorzustellen. Die notwendigen Voraussetzungen auf der Python-Seite sind minimal, wobei der conda
Paket- und Umgebungsmanager heutzutage oft das Werkzeug der Wahl ist, um Python-Umgebungen zu verwalten.
Jetzt kannst du mit Kapitel 2 fortfahren, in dem das einfachste Finanzmodell des Buches besprochen wird und viele der zentralen Finanzbegriffe eingeführt werden. Die Intuition, die du im einfachsten Finanzmodell gewinnst, sollte sich leicht auf die fortgeschritteneren Modelle und Ansätze übertragen lassen, die ab Kapitel 3 behandelt werden.
Referenzen
Artikel und Bücher, die in diesem Kapitel zitiert werden:
Get Finanztheorie mit Python 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.