Calibration of the alpha parameter in alpha-stable processes using deep learning, with applications to options pricing under subdiffusive dynamics.
Projet de recherche — Hugo Vigna (neural network) & Massyle Dendene (stochastic processes & pricing)
Standard financial models assume Gaussian returns, but real markets exhibit heavy tails and jumps. Alpha-stable processes provide a framework for modeling these phenomena. This project uses a 1D convolutional neural network to calibrate the stability parameter alpha from observed trajectories, then applies subordinated jump-diffusion pricing.
| Task | Metric | Value |
|---|---|---|
| Alpha calibration (50 classes) | MAE | 0.039 |
| R^2 | 0.903 | |
| Option pricing | MAE | 0.30 EUR |
| Real data validation (KNCT) | Predicted alpha | 0.911 |
| Optimal alpha | 0.917 |
├── README.md
├── methodology.md # Detailed methodology and analysis
├── requirements.txt
├── notebooks/
│ ├── CNN_classification.ipynb # CNN training and evaluation
│ ├── cluster_pricing.ipynb # Clustering analysis and pricing
│ └── best_class_model.h5 # Trained model weights
├── python_code/
│ ├── Subordinators.py # Alpha-stable subordinator simulation
│ ├── ProcessSimulations.py # GBM, Poisson, subordinated processes
│ ├── BaseOptionPricer.py # Standard Black-Scholes pricer
│ ├── FractionalOptionPricer.py # Subordinated jump-diffusion pricer
│ ├── SubdiffusiveBlackScholes.py
│ └── OptionPricerDupire.py
└── results/ # Classification, pricing, and clustering figures
See methodology.md for the full analysis, including:
- CNN architecture design (multi-scale 1D convolutions, 50-class classifier)
- Class discernability analysis via KS distance (inter/intra-class ratios)
- Real data validation on KNCT asset (Bloomberg data)
- Limitations and potential improvements
git clone https://github.com/hugovigna/deep-learning-for-alpha-calibration.git
cd deep-learning-for-alpha-calibration
pip install -r requirements.txtfrom python_code.Subordinators import Subordinators
from python_code.ProcessSimulations import ProcessSimulations
T, alpha, n_steps = 3.0, 0.7, 750
time, S, U, tau = Subordinators.simulate_inverse_alpha_subordinator(T, alpha, n_steps)
time_gbm, gbm = ProcessSimulations.simulate_gbm(S0=100, mu=0.01, sigma=0.25,
T=T, n_steps=n_steps, n_paths=1)
traj = Subordinators.interpolate_subordinate_process(time_gbm, gbm[0], S)See notebooks/CNN_classification.ipynb for the full pipeline:
- 30,000 simulated trajectories with alpha in [0.4, 1.0]
- Multi-scale 1D CNN (kernels 3, 5, 7)
- ~90% classification accuracy, MAE ~ 0.039
from python_code.FractionalOptionPricer import FractionalOptionPricer
pricer = FractionalOptionPricer(S0=100, K=110, T=1, r=0.01, sigma=0.25, alpha=0.7)
call_price = pricer.price_call()- Samorodnitsky, G. & Taqqu, M. (1994). Stable Non-Gaussian Random Processes. Chapman & Hall.
- Carr, P. & Wu, L. (2003). The Finite Moment Log Stable Process and Option Pricing. Journal of Finance.
- Magdziarz, M. (2009). Black-Scholes Formula in Subdiffusive Regime. Journal of Statistical Physics.
MIT License — see LICENSE file.
- Hugo Vigna — Neural network design and calibration (@hugovigna)
- Massyle Dendene — Stochastic process modeling and option pricing (
python_code/)