- 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.
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.
- 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
data_processing.cpp
: Handles data loading, cleaning, and preprocessingoption_pricing.cpp
: Implements different option pricing modelsgpu_kernels.cu
: Contains CUDA kernels for GPU accelerationmain.cpp
: Orchestrates the overall process and performance evaluation
- CUDA Toolkit
- Eigen (linear algebra library)
- Boost (for data structures and algorithms)
- Install dependencies (CUDA Toolkit, Eigen, and Boost)
- Run
cmake
to generate build files - Build the project using
make
or your preferred build system
- Implement GPU acceleration for Binomial Tree and Monte Carlo models
- Add support for different option types (e.g., put options, American options)
- Implement Greeks calculation (Delta, Gamma, Theta, Vega, Rho)
- Develop calibration techniques for model parameters
- Optimize memory usage and data transfer between CPU and GPU
- Implement error handling and input validation
- Add unit tests and integration tests
- Explore advanced pricing models (e.g., Heston model, Local Volatility model)
- Investigate distributed computing for handling extremely large datasets
- Improve documentation and add usage examples
Contributions are welcome! Please feel free to submit a Pull Request.
Undecided at this time.
- References to relevant papers or resources used in the project will be included here.