This repository contains the final project for CSCI 5244: Quantum Computation and Information.
The goal of this project is to reproduce the methodology of the paper "Option Pricing using Quantum Computers" (Stamatopoulos et al., 2019). We implement an end-to-end workflow—from financial theory to quantum hardware execution—using Qiskit.
The project benchmarks Quantum Amplitude Estimation (QAE) against Classical Monte Carlo methods to investigate the theoretical quadratic speedup in pricing European Call Options.
-
Option_Pricing.ipynb: The main notebook containing:- Financial Model: Setup of Black-Scholes parameters and Log-Normal distribution.
- Classical Benchmark: A full Monte Carlo simulation implemented in NumPy.
- Quantum Simulation: Qiskit implementation of QAE.
- Hardware Execution: Code to run simplified circuits on real IBM Quantum hardware.
-
Analysis: Convergence plots comparing
$O(M^{-1})$ vs$O(M^{-1/2})$ scaling.
-
environment.yml: Configuration file to replicate the exact Python environment (Conda).
Goal: Map the spot price of an asset to a quantum state using a LogNormalDistribution circuit and encode the option payoff into qubit amplitudes.
Goal: Compare the error scaling of the two methods to demonstrate the theoretical quantum advantage:
-
Classical Monte Carlo: Expected error scaling
$\epsilon \propto \frac{1}{\sqrt{M}}$ -
Quantum Amplitude Estimation: Expected error scaling
$\epsilon \propto \frac{1}{M}$ (Quadratic Speedup)
Goal: Execute a simplified version of the algorithm on the IBM Quantum backend to analyze the impact of noise (decoherence and gate errors) on deep amplitude estimation circuits in the NISQ era.
We use Conda to ensure a stable, reproducible environment using the provided environment.yml file.
-
Clone the repository:
git clone [https://github.com/Astatium5/Quantum-Option-Pricing.git](https://github.com/Astatium5/Quantum-Option-Pricing.git) cd Quantum-Option-Pricing -
Create the environment: This command reads
environment.yml, installs Python 3.11, and sets up all required libraries automatically.conda env create -f environment.yml
-
Activate the environment:
conda activate quantum
To run the hardware execution section, you must provide your IBM Quantum API Token securely.
-
Create a file named
.envin the root directory of this project. -
Add your token to the file in the following format:
IBM_QUANTUM_KEY=your_actual_api_key_here IBM_QUANTUM_INSTANCE=your_ibm_quantum_instance_name_here
-
Launch Jupyter: Make sure your
quantumenvironment is active.jupyter notebook
-
Run the Analysis: Open
Option_Pricing.ipynband run all cells.- Note for Google Colab Users: The notebook includes a
!pip installcell at the top. Uncomment and run this cell if you are using Colab instead of a local Conda environment.*
- Note for Google Colab Users: The notebook includes a
- [1] Stamatopoulos, N., et al. "Option Pricing using Quantum Computers." arXiv preprint arXiv:1905.02666 (2019).
- [2] Qiskit Finance Tutorials: Option Pricing
- Dima Golubenko - Quantum Implementation Specialist
- Navnith Bharadwaj - Classical & Analysis Specialist