This project studies Constant Proportion Portfolio Insurance (CPPI) from Black-Scholes to Kou jumps. It reproduces tables and figures for a report on gap risk, discrete rebalancing, stochastic volatility, and jump risk, with optional VaR-based dynamic multipliers and gap-risk hedging.
- Simulate CPPI under Black-Scholes, Heston, and Kou jump-diffusion models
- Quantify local and global breach probabilities and tail risk metrics
- Compare theoretical bounds to Monte Carlo results
- Visualize CPPI dynamics and sensitivity to rebalancing and jump intensity
Cushion and risky allocation:
- Black-Scholes continuous closed form and discrete rebalancing
- Heston stochastic volatility
- Kou double-exponential jump diffusion
- Kou with dynamic VaR + EWMA multiplier
- Kou with short-dated OTM put hedging
Unless stated otherwise, simulations use:
$V_0 = G = 100$ -
$r = 4%$ ,$\mu = 8%$ ,$\sigma = 20%$ -
$T = 5$ years,$m = 4$ - Transaction costs: 10 bps per rebalancing
-
$N_{\mathrm{mc}} = 20,000$ paths
Kou jump parameters:
- Gap risk is negligible under discrete Black-Scholes and remains negligible under Heston stress; jumps drive material breaches.
- The Kou closed-form breach probability is an upper bound and overestimates empirical results for large
$m$ . - VaR-based dynamic multipliers reduce breach probability but materially lower expected terminal value.
- Short-dated OTM put hedging removes material breaches in simulation but is an idealized benchmark.
Kou theoretical breach probability:
- cppi.py: core models, metrics, and single-path generator
- run_all_tables.py: reproduces all tables and saves intermediate arrays
- make_figures.py: builds figures from saved results
- tests/test_cppi.py: unit tests
- results/: generated tables and arrays
- figures/: generated figures
Running the scripts generates:
results/table_kou_theo_emp.csvresults/arrays.pklfigures/fig1_mechanism.pdf— CPPI mechanism (cushion, exposure)figures/fig2_paths.pdf— CPPI vs Buy & Hold vs 100% riskyfigures/fig3_plsf_bs.pdf— Local and global breach probabilities under BSfigures/fig4_heston.pdf— Heston stress paths and instantaneous volfigures/fig5_kou.pdf— BS vs Kou terminal distributionsfigures/fig6_heatmap_kou.pdf— Breach probability vs (m, lambda) under Koufigures/fig7_dyn_m.pdf— Dynamic VaR+EWMA multiplierfigures/fig8_hedging.pdf— OTM put hedging
pip install -r requirements.txt
python run_all_tables.py # produces results/arrays.pkl + CSVs
python make_figures.py # produces figures/*.pdf
pytest -v # runs unit tests- Kalife, A., Mouti, S. (2018). Optimizing CPPI Investment Strategy for Life Insurance Companies: A Risk-Reward Analysis. Society of Actuaries, Product Matters, no. 111, 11-19.
- Kalife, A., Mouti, S. Portfolio Insurance: A focus on CPPI. Course notes, M2 ISIFAR, Universite Paris Cite.
- Black, F., Jones, R. (1987). Simplifying portfolio insurance. Journal of Portfolio Management, 14(1), 48-51.
- Perold, A. F. (1986). Constant proportion portfolio insurance. Harvard Business School working paper.
- Kou, S. G. (2002). A jump-diffusion model for option pricing. Management Science, 48(8), 1086-1101.
- Heston, S. L. (1993). A closed-form solution for options with stochastic volatility. Review of Financial Studies, 6(2), 327-343.
- Grossman, S. J., Vila, J.-L. (1992). Optimal dynamic trading with leverage constraints. Journal of Financial and Quantitative Analysis, 27(2), 151-168.
- Tankov, P. (2010). Pricing and hedging gap risk. Journal of Computational Finance, 13(3), 33-59.
- Leland, H. E., Rubinstein, M. (1976). The evolution of portfolio insurance. In Dynamic Hedging: A Guide to Portfolio Insurance, Luskin, D. L. (ed.), Wiley.
Alexandre R. - Université Paris Cité