Wenn Physik auf Finanzen trifft: KI zur Lösung der Black-Scholes-Gleichung
So verwenden Sie physikbasierte neuronale Netzwerke zum Lösen von Finanzmodellen mit Python.
Haftungsausschluss : Dies ist keine Finanzberatung. Ich habe einen Doktortitel in Luft- und Raumfahrttechnik mit Schwerpunkt auf maschinellem Lernen; ich bin kein Finanzberater. Dieser Artikel soll lediglich die Leistungsfähigkeit physikbasierter neuronaler Netze (PINNs) im Finanzkontext veranschaulichen.
Als ich 16 Jahre alt war, verliebte ich mich in die Physik. Der Grund war einfach, aber wirkungsvoll: Ich glaubte, die Physik sei gerecht.
Ich habe in keiner Übung einen Fehler gemacht, weil sich die Lichtgeschwindigkeit über Nacht geändert hat oder weil e<sup> x</sup> plötzlich negativ sein konnte. Jedes Mal, wenn ich eine Physikarbeit las und dachte: „Das ergibt keinen Sinn“, stellte sich heraus, dass ich es war, der es nicht verstanden hatte.
Daher ist die Physik immer gerecht und aus diesem Grund auch immer perfekt . Die Physik beweist diese Perfektion und Gerechtigkeit durch ihre Regelwerke, die als Differentialgleichungen bekannt sind.

Die einfachste mir bekannte Differentialgleichung ist diese:

Es ist ganz einfach: Wir beginnen hier, x₀ = 0, zum Zeitpunkt t = 0, und bewegen uns dann mit einer konstanten Geschwindigkeit von 5 m/s. Das bedeutet, dass wir nach einer Sekunde 5 Meter (oder Meilen, wenn Sie so wollen) vom Startpunkt entfernt sind; nach zwei Sekunden 10 Meter; nach 43128 Sekunden… Ich denke, Sie verstehen das.
Wie bereits erwähnt, ist es in Stein gemeißelt: perfekt, absolut und unbestreitbar. Doch stellen Sie sich das einmal im echten Leben vor. Stellen Sie sich vor, Sie gehen spazieren oder fahren Auto. Selbst wenn Sie sich bemühen, eine bestimmte Geschwindigkeit zu halten, werden Sie diese nie konstant beibehalten können. Ihre Gedanken werden abschweifen; Sie könnten sich ablenken lassen, an einer roten Ampel anhalten – und höchstwahrscheinlich eine Kombination aus all dem. Daher ist die einfache Differentialgleichung, die wir vorhin erwähnt haben, möglicherweise nicht ausreichend. Wir können jedoch versuchen, Ihre Position in der Differentialgleichung mithilfe künstlicher Intelligenz vorherzusagen . Dieses Konzept ist entscheidend für die Modellierung komplexer Systeme.
Dieses Prinzip findet Anwendung in physikbasierten neuronalen Netzen (PINNs). Wir werden sie später genauer beschreiben, aber im Grunde versuchen wir, die Daten mit den Erkenntnissen aus der Differentialgleichung, die das Phänomen beschreibt, in Einklang zu bringen. Das bedeutet, dass wir unsere Lösung so anpassen, dass sie im Allgemeinen unseren physikalischen Erwartungen entspricht. Ich weiß, das klingt kompliziert, aber ich verspreche Ihnen, dass es im Laufe dieses Artikels viel verständlicher wird.
Nun die große Frage:
Was hat Finanzen mit Physik und physikbasierten neuronalen Netzwerken zu tun?
Es stellt sich heraus, dass Differentialgleichungen nicht nur für diejenigen nützlich sind, die sich für die Gesetze des natürlichen Universums interessieren; sie können auch in Finanzmodellen Anwendung finden . Beispielsweise verwendet das Black-Scholes -Modell eine Differentialgleichung, um unter bestimmten strengen Annahmen den Preis einer Call-Option zu bestimmen und so ein risikofreies Portfolio zu erhalten.
Diese sehr komplexe Einführung hatte zwei Ziele:
- Verwirre dich ein wenig, damit du weiterlesen kannst :)
- Seien Sie neugierig genug, um zu sehen, wohin das alles führt.
Ich hoffe, es ist mir gelungen 😁. Wenn Sie dies tun, folgt der Rest des Artikels diesen Schritten:
- Wir werden diskutieren Black-Scholes-Modell, seine Annahmen und seine Differentialgleichung
- Wir sprechen über Physikbasierte neuronale Netzwerke (PINNs), woher es kommt und warum es nützlich ist
- Wir werden unseren eigenen Algorithmus entwickeln, der PINN auf Black-Scholes trainiert, indem wir Python Und Laterne Und OOP.
- Wir zeigen die Ergebnisse unseres Algorithmus.
Ich bin begeistert! Ab ins Labor! 🧪
1. Das Black-Scholes-Modell: Ein genauerer Blick
Wenn Sie die Originalveröffentlichung zum Black-Scholes-Modell lesen möchten, finden Sie sie hier . Absolut lesenswert! 🙂
Okay, jetzt müssen wir die Finanzwelt, in der wir uns befinden, verstehen , welche Variablen es gibt und welche Regeln sie bestimmen. Es ist entscheidend, die Grundlagen der Finanzwissenschaft und ihren Bezug zum Black-Scholes-Modell zu verstehen.
Zunächst einmal gibt es im Finanzwesen ein mächtiges Instrument namens Call- Option . Eine Call-Option gibt Ihnen das Recht (aber nicht die Pflicht), eine Aktie zu einem bestimmten Preis in der Zukunft (sagen wir in einem Jahr) zu kaufen, der als Ausübungspreis bezeichnet wird.
Lassen Sie uns nun einen Moment darüber nachdenken, einverstanden? Angenommen, der Aktienkurs beträgt heute 100 $. Nehmen wir außerdem an, wir besitzen eine Kaufoption mit einem Ausübungspreis von 100 $. Nehmen wir nun an, dass der Aktienkurs innerhalb eines Jahres auf 150 $ steigt. Das ist großartig! Mit dieser Call-Option können wir die Aktie kaufen und anschließend sofort wieder verkaufen! Wir haben gerade einen Gewinn von 150 $ - 100 $ = 50 $ gemacht. Wenn der Aktienkurs hingegen innerhalb eines Jahres auf 80 US-Dollar fällt, können wir das nicht tun. Eigentlich ist es für uns besser, unser Kaufrecht gar nicht erst auszuüben, um kein Geld zu verlieren.
Wenn man genauer darüber nachdenkt, erscheint die Idee , eine Aktie zu kaufen und gleichzeitig eine Option zu verkaufen, durchaus sinnvoll . Ich meine damit, dass die Zufälligkeit des Aktienkurses (sein Auf und Ab) durch das Halten der richtigen Anzahl an Optionen tatsächlich abgemildert werden kann . Dies nennt man Delta-Hedging, und es ist eine grundlegende Risikomanagementstrategie.
Auf Basis bestimmter Annahmen lässt sich ein fairer Optionspreis ableiten , um ein risikofreies Portfolio zu erhalten . Dieses Konzept ist grundlegend für das Black-Scholes-Modell.
Ich möchte Sie nicht mit allen Einzelheiten der Herleitung langweilen (ehrlich gesagt ist es im Originalpapier nicht schwer, ihr zu folgen), aber die Differentialgleichung für das risikofreie Portfolio lautet wie folgt:

Wo:
Cist der Optionspreis zum Zeitpunkt tsigmaEs ist die Volatilität der Aktie.rEs handelt sich um den risikofreien Zinssatz.tist die Zeit (mit t=0 jetzt und T am Enddatum)Sist der aktuelle Aktienkurs
Aus dieser Gleichung können wir den fairen Preis einer Call-Option für ein risikofreies Portfolio ableiten. Die Gleichung ist geschlossen und analytisch und sieht folgendermaßen aus:

mit:

wobei N(x) die kumulative Verteilungsfunktion (CDF) der Standardnormalverteilung, K der Ausübungspreis und T das Verfallsdatum ist.
Dies ist beispielsweise ein Diagramm, das den Aktienkurs (x) im Vergleich zur Call-Option (y) gemäß dem Black-Scholes-Modell darstellt.

Das klingt ja alles großartig, aber was hat das mit Physik und PINN zu tun? Die Gleichung scheint analytisch zu sein, warum also PINN? Warum künstliche Intelligenz? Warum lese ich das überhaupt? Die Antwort finden Sie weiter unten 👇:
2. Physikalisch fundierte neuronale Netzwerke
Wenn Sie sich für physikbasierte neuronale Netze (PINNs) interessieren, können Sie die Originalveröffentlichung hier einsehen . Sie ist wirklich lesenswert. 🙂
Die obige Gleichung ist analytisch , stellt aber – wie bereits erwähnt – einen fairen Preis in einem idealen Szenario dar. Was passiert, wenn wir dies kurz außer Acht lassen und versuchen, den Optionspreis anhand des Aktienkurses und der Zeit zu schätzen? Beispielsweise könnten wir ein Feedforward-Neuronales Netzwerk verwenden und es mit Backpropagation trainieren. Dieser Ansatz bildet die Grundlage für die Verwendung neuronaler Netze bei der Optionspreisberechnung.
In diesem Trainingsmechanismus minimieren wir den Fehler:
L = |Estimated C - Real C|:

Das ist gut und der einfachste Ansatz mit neuronalen Netzwerken, den Sie verfolgen können. Das Problem hierbei ist, dass wir die Black-Scholes-Gleichung völlig ignorieren. Gibt es also eine andere Möglichkeit? Können wir sie zusammenführen?
Natürlich können wir das, wenn wir den Fehler folgendermaßen festlegen:
L = |Estimated C - Real C|+ PDE(C,S,t)
wobei PDE(C,S,t) ist:

Es sollte so nahe wie möglich bei 0 liegen:

Aber die Frage bleibt weiterhin bestehen. Warum ist dies „besser“ als die einfache Black-Scholes-Gleichung? Warum verwenden wir nicht einfach die Differentialgleichung? Nun, weil es im Leben manchmal vorkommt, dass das Lösen einer Differentialgleichung nicht garantiert, dass Sie die „wahre“ Lösung erhalten. Die Physik nähert sich den Dingen normalerweise an, und zwar auf eine Art und Weise, die zu einem Unterschied zwischen dem, was wir erwarten, und dem, was wir sehen, führen kann. Aus diesem Grund sind physikbasierte neuronale Netzwerke (PINNs) ein so erstaunliches und wunderbares Werkzeug: Sie versuchen, die Physik nachzubilden, achten aber strikt darauf, dass die Ergebnisse mit dem übereinstimmen müssen, was Sie in Ihrem Datensatz „sehen“. Diese Integration des physikalischen Modells und der experimentellen Daten ist das Besondere an diesem Ansatz.
In unserem Fall kann es sein, dass wir, um ein risikofreies Portfolio zu erhalten, feststellen, dass das theoretische Black-Scholes-Modell nicht perfekt mit den verrauschten, verzerrten oder unvollständigen Marktdaten übereinstimmt, die wir beobachten. Vielleicht ist die Volatilität nicht konstant. Vielleicht ist der Markt nicht effizient. Vielleicht sind die Annahmen hinter der Gleichung nicht haltbar. Hier kann ein Ansatz wie PINN nützlich sein. Wir finden nicht nur eine Lösung, die die Black-Scholes-Gleichung erfüllt, sondern wir „vertrauen“ auch dem, was wir aus den Daten erkennen. Dies ermöglicht ein flexibleres Modell, das sich besser an die tatsächlichen Marktbedingungen anpassen lässt.
Okay, genug Theorie. Lass uns programmieren. 👨💻
3. Praktische Anwendung mit Python
Den vollständigen Code, eine ausführliche README.md-Datei, ein hervorragendes Arbeitsbuch und einen sehr übersichtlichen Benchmark-Code finden Sie hier . Dieser Code wurde speziell für die Lösung der Black-Scholes-Gleichung mithilfe von PINN-Neuronalen Netzen entwickelt – einer fortschrittlichen Technik im Bereich der Finanzmodellierung.
Hinweis: Dieser Teil wird etwas intensiver (viel Code), und wenn Sie sich nicht für Software interessieren, können Sie gerne zum nächsten Kapitel springen. Ich werde die Ergebnisse auf einfachere Weise zeigen :)
Vielen Dank, dass du es bis hierher geschafft hast ❤️
Mal sehen, wie wir das umsetzen können. Sehen wir uns nun an, wie diese Technik zum Lösen von Black-Scholes-Gleichungen angewendet wird, wobei wir uns auf die praktischen und detaillierten Aspekte konzentrieren.
3.1 Config.json-Datei
Der gesamte Code kann mithilfe einer sehr einfachen Konfigurationsdatei ausgeführt werden, die ich config.json genannt habe.
Sie können es platzieren, wo immer Sie möchten, wie wir später sehen werden.
Diese Datei ist wichtig, da sie alle Parameter definiert, die unsere Simulation, Datengenerierung und Modellschulung steuern. Lassen Sie mich kurz erklären, was jeder Wert darstellt:
K: Ausführungspreis – Der Preis, zu dem die Option Ihnen das Recht gibt, die Aktie in der Zukunft zu kaufen.T: Zeit bis zum Fälligkeitsdatum, in Jahren. ErlaubnisT = 1.0Dies bedeutet, dass die Option in einer Einheit (z. B. einem Jahr) abläuft.r: risikofreier Zinssatz Wird verwendet, um zukünftige Werte abzuzinsen. Dies ist der Zinssatz, den wir in unserer Simulation angeben.sigma: Fluktuation Der Bestand, der bestimmt, wie schwierig es ist, den Aktienkurs vorherzusagen oder wie „riskant“ er ist. Auch hier handelt es sich um einen Simulationsparameter.N_data: Nummer synthetische Datenpunkte Die wir für das Training erstellen möchten. Dadurch wird auch die Größe des Musters bestimmt.min_SUndmax_S: Aktienkursspanne Welche wir beim Erstellen synthetischer Daten abtasten möchten. Unser minimaler und maximaler Aktienkurs.bias: Optionaler Ausgleich zu Optionspreisen hinzugefügt, um eine systematische Verschiebung der Daten zu simulieren. Dies geschieht, um einen Kontrast zwischen der realen Welt und den Black-Scholes-Daten zu schaffen.noise_variance: Geräuschpegel Wird zu Optionspreisen hinzugefügt, um Messungen oder Marktrauschen zu simulieren. Dieser Parameter wird aus demselben Grund wie zuvor hinzugefügt.epochs: Nummer Wiederholungen mit denen das Modell trainiert wird.lr: Lernrate Für den Wohltäter. Dadurch wird gesteuert, wie schnell das Modell während des Trainings aktualisiert wird.log_interval:Die Anzahl der Male (in Bezug auf das Alter), die wir wollen Datensätze drucken Zur Überwachung des Trainingsfortschritts.
Jeder dieser Parameter spielt eine bestimmte Rolle. Einige prägen die von uns simulierte Finanzwelt, während andere steuern, wie unser neuronales Netzwerk mit dieser Welt interagiert. Kleine Änderungen können hier zu einem völlig anderen Verhalten führen und diese Datei sowohl leistungsstark als auch sensibel machen. Das Ändern der Werte dieser JSON-Datei wird die Ausgabe Ihres Codes radikal verändern.
3.2 main.py (main.py-Datei)
Sehen wir uns nun an, wie der restliche Code diese Konfiguration in der Praxis verwendet.
Der Hauptteil unseres Codes stammt aus main.py , um Ihr PINN-Netzwerk mit Torch zu trainieren, und black_scholes.py.
Dies ist die Datei main.py:
Sie können also Folgendes tun:
- Erstellen Sie Ihre eigene config.json-Datei
- Führen Sie den Befehl aus
python main.py --config config.json
Die Datei main.py wird von vielen anderen Dateien verwendet.
3.3 black_scholes.py und seine Helfer
Die Anwendung des Black-Scholes-Modells befindet sich in der Datei black_scholes.py :
Diese Datei kann zum Erstellen, Trainieren, Exportieren und Vorhersagen des Modells verwendet werden.
Die Funktion verwendet auch einige Hilfsdateien wie data.py, loss.py und model.py.
In der Datei befindet sich eine Torch-Vorlage. model.py:
Der Datenkonstruktor (siehe Konfigurationsdatei) befindet sich in der Datei data.py :
Die integrierte Verlustfunktion, die den Schiefewert berücksichtigt, befindet sich in loss.py. Diese Funktion ist unerlässlich, um die Genauigkeit des Modells zu verbessern.
4. Ergebnisse
Wenn wir main.py ausführen, wird unser Feedforward-Neuralnetzwerk (FFNN) trainiert und wir erhalten Folgendes:

Wie Sie sehen, beträgt der Modellfehler nicht genau 0, aber die PDE-Gleichung des Modells ist viel kleiner als die Daten. Dies bedeutet, dass das Modell (natürlich) unsere Vorhersagen stark dazu zwingt, die Differentialgleichungen zu erfüllen. Dies ist genau das, was wir zuvor gesagt haben: Wir verbessern die Leistung im Hinblick auf die uns zur Verfügung stehenden Daten und im Hinblick auf das Black-Scholes-Modell.
Wir können qualitativ eine hohe Übereinstimmung zwischen dem verrauschten + verzerrten (ziemlich realistischen) realen Datensatz und dem PINN-Netzwerk beobachten.

Dies sind die Ergebnisse, wenn t = 0 ist und sich der Aktienkurs mit der Call-Option bei einem festen Wert von t ändert. Ziemlich cool, nicht wahr? Aber es ist noch nicht vorbei! Sie können die Ergebnisse mit dem obigen Code auf zwei Arten untersuchen:
- Spielen mit vielen Parameter befindet sich in config.json
- Vorhersagen ansehen unter t> 0
Ich höre zu! :)
5. Schlussfolgerungen
Vielen Dank, dass Sie hierher gekommen sind. Wirklich, das war eine lange Reise 😅
Folgendes haben wir in diesem Artikel behandelt:
- Wir haben mit Physik angefangen., und wie seine Gesetze, geschrieben als Differentialgleichungen, fair, schön und (normalerweise) vorhersehbar sind.
- Wir sind in den Finanzbereich gewechseltUnd wir haben das Black-Scholes-Modell kennengelernt – eine Differentialgleichung, die darauf abzielt, Optionen risikofrei zu bewerten.
- Wir haben physikbasierte neuronale Netzwerke (PINNs) untersucht., eine Art neuronales Netzwerk, das nicht nur Daten anpasst, sondern auch die zugrunde liegende Differentialgleichung berücksichtigt. PINNs sind ein leistungsfähiges Werkzeug zur Modellierung komplexer Systeme.
- Wir haben alles in Python gemacht.Verwenden Sie PyTorch und eine saubere Benchmark-Datenbank, mit der Sie Parameter optimieren, synthetische Daten generieren und Ihre eigenen PINNs trainieren können, um die Black-Scholes-Gleichung zu lösen.
- Wir haben die Ergebnisse fotografiert. Wir haben gesehen, wie das Netzwerk gelernt hat, nicht nur die verrauschten Daten, sondern auch das von der Black-Scholes-Gleichung erwartete Verhalten zuzuordnen.
Ich weiß, dass es nicht einfach ist, all das auf einmal zu erfassen. An manchen Stellen musste ich mich kurzfassen, vielleicht sogar kürzer als nötig. Für ein besseres Verständnis empfehle ich Ihnen jedoch, einen Blick in den GitHub-Ordner zu werfen. Selbst wenn Sie sich nicht für die Software interessieren, finden Sie dort eine übersichtliche README.md-Datei und ein einfaches Beispiel (example/BlackScholesModel.ipynb) , das das Projekt Schritt für Schritt erklärt.
Kommentarfunktion ist geschlossen.