Knupp, Jonas and Hindermann, Thomas (2022) Faster Stock Option Pricing. Other thesis, OST Ostschweizer Fachhochschule.
FS 2022-BA-EP-Hindermann-Knupp-Faster Stock Option Pricing.pdf - Supplemental Material
Download (7MB)
Abstract
Die numerische Bewertung von Optionen ist rechenintensiv, da der Optionswert vom zukünftigen Preis des Basiswertes abhängt. Europäische Optionen können mittels Monte-Carlo-Simulation bewertet werden, wobei der Rechenaufwand linear steigt, während amerikanische Optionen durch das Binomialmodell mit quadratischer Laufzeit bewertet werden können. Es existieren zahlreiche Webapplikationen zur Optionsbewertung, die es dem Nutzer allerdings nicht erlauben, den Optionswert parallelisiert mittels Multithreading auf der CPU oder der GPU berechnen zu lassen. Ausserdem müssen die Optionen oft manuell erfasst werden und es ist häufig nicht möglich, mehrere Optionen auf einmal bewerten zu lassen.
In einem ersten Schritt wurde eine Domänenanalyse durchgeführt, um die Monte-Carlo-Simulation und das Binomialmodell in Pseudocode-Algorithmen zu formalisieren. Anschliessend wurden die Anforderungen an die Webapplikation ermittelt. Aus den Anforderungen hat sich ergeben, dass die Applikation als verteiltes System konzipiert wird, da je nach Parallelisierungsansatz unterschiedliche Anforderungen an die Hardware bestehen. So wurde für die parallelisierten Berechnungen auf der CPU und GPU jeweils ein Microservice in C++ erstellt. Die Programmierung der GPU erfolgte mit dem CUDA Toolkit. Um Funktionen wie unter anderem Benutzerverwaltung, Input-Validierung, Persistenz und Kommunikation mit Yahoo Finance zu realisieren, wurde ein API-Gateway mittels NestJS implementiert. Das Frontend wurde mit React umgesetzt. Die Kommunikation zwischen den Backend-Diensten findet über einen RabbitMQ Message Broker statt, während das Frontend mit dem API-Gateway über REST kommuniziert. Um bei den parallelisierten Modellen einen möglichst grossen Speedup zu erreichen, wurden jeweils verschiedene Ansätze ausprobiert.
Das Ergebnis dieser Bachelorarbeit ist eine Webapplikation die eine parallelisierte Bewertung von europäischen und amerikanischen Optionen ermöglicht. Dem Nutzer stehen zahlreiche Konfigurationsmöglichkeiten zur Verfügung. Zusätzlich zur Möglichkeit einzelne Optionen bewerten zu lassen, gibt es mit dem “Profit-Spotter“ die Möglichkeit alle Optionen einer Aktie, die auf Yahoo Finance verfügbar ist, bewerten zu lassen. Beim “Profit-Spotter“ werden ausschliesslich amerikanische Optionen bewertet, da alle Optionen auf Yahoo Finance amerikanisch sind. Um einen maximalen Speedup zu erreichen, wird nicht jede Option einzeln bewertet, sondern unter dem Begriff “Multibinomialmodell“ Varianten erstellt, die auf die gleichzeitige Bewertung von mehreren Optionen optimiert sind. Da die parallelisierten Modelle in Software-Bibliotheken ausgelagert wurden, können diese auch in anderen Applikationen verwendet werden. Die Benchmarks für die CPU Varianten wurden auf einem Intel Core i7-11370H Prozessor mit vier echten Kernen und die Benchmarks für die GPU Varianten auf einer NVIDIA Tesla V100 PCIe durchgeführt. Für die Monte-Carlo-Simulation mit 10'000'000 Preispfaden wurde mit Multithreading und Vector Extensions ein Speedup von 40 erreicht, während auf der GPU ein Speedup von 179 erreicht wurde. Beim Binomialmodell mit 1'023 Zeitabschnitten wurde auf der CPU kein nennenswerter und auf der GPU ein Speedup von 9 erreicht. Beim Multibinomialmodell mit 1'023 Zeitabschnitten konnte ein Speedup von 4 auf der CPU und 900 auf der GPU erreicht werden.
Item Type: | Thesis (Other) |
---|---|
Subjects: | Topics > Software > Performance Area of Application > Banking & Finance Area of Application > Web based Technologies > Programming Languages > C++ Technologies > Parallel Computing Technologies > Parallel Computing > CUDA (Compute Unified Device Architecture) Brands > nVidia Technologies > Frameworks and Libraries > React Metatags > IFS (Institute for Software) |
Divisions: | Bachelor of Science FHO in Informatik > Bachelor Thesis |
Depositing User: | OST Deposit User |
Contributors: | Contribution Name Email Thesis advisor Purandare, Mitra UNSPECIFIED |
Date Deposited: | 19 Sep 2022 07:37 |
Last Modified: | 19 Sep 2022 07:37 |
URI: | https://eprints.ost.ch/id/eprint/1048 |