Skip to content

Optimizing option pricing calculations using C++ and GPU acceleration to handle large datasets efficiently.

Notifications You must be signed in to change notification settings

DiegoLopezInc/High-Performance-Option-Pricing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 

Repository files navigation

High-Performance Option Pricing with C++ and GPU Acceleration

Goals

  • Implement high-performance option pricing models in C++.
  • Utilize GPU acceleration for significant performance improvements.
  • Handle large datasets of option contracts and market data.
  • Explore different pricing models (Black-Scholes, Binomial, Monte Carlo).
  • Build strong foundation in C++, numerical methods, and parallel computing.

Project Overview

This project implements high-performance option pricing calculations using C++ and GPU acceleration to handle large datasets efficiently. The current implementation includes Black-Scholes, Binomial Tree, and Monte Carlo pricing models for European call options.

Current Features

  • Data loading and preprocessing
  • CPU-based implementation of Black-Scholes, Binomial Tree, and Monte Carlo models
  • GPU-accelerated Black-Scholes model using CUDA
  • Performance comparison between CPU and GPU implementations

Code Structure

  • data_processing.cpp: Handles data loading, cleaning, and preprocessing
  • option_pricing.cpp: Implements different option pricing models
  • gpu_kernels.cu: Contains CUDA kernels for GPU acceleration
  • main.cpp: Orchestrates the overall process and performance evaluation

Dependencies

  • CUDA Toolkit
  • Eigen (linear algebra library)
  • Boost (for data structures and algorithms)

Building the Project

  1. Install dependencies (CUDA Toolkit, Eigen, and Boost)
  2. Run cmake to generate build files
  3. Build the project using make or your preferred build system

Future Work

  1. Implement GPU acceleration for Binomial Tree and Monte Carlo models
  2. Add support for different option types (e.g., put options, American options)
  3. Implement Greeks calculation (Delta, Gamma, Theta, Vega, Rho)
  4. Develop calibration techniques for model parameters
  5. Optimize memory usage and data transfer between CPU and GPU
  6. Implement error handling and input validation
  7. Add unit tests and integration tests
  8. Explore advanced pricing models (e.g., Heston model, Local Volatility model)
  9. Investigate distributed computing for handling extremely large datasets
  10. Improve documentation and add usage examples

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Undecided at this time.

Acknowledgements

  • References to relevant papers or resources used in the project will be included here.

About

Optimizing option pricing calculations using C++ and GPU acceleration to handle large datasets efficiently.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published