Skip to content

Alex-Rib/CPPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CPPI - Constant Proportion Portfolio Insurance

Python Status

Description

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.

Objectives

  • 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

Model Summary

CPPI rule

Cushion and risky allocation:

$$C_t = \max(V_t - F_t, 0), \quad e_t = \min(m C_t, V_t)$$

Implemented variants

  • 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

Reference parameters

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: $\lambda = 1$, $p = 0.6$, $\eta^- = 10$, $\eta^+ = 25$.

Key results (high level)

  • 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:

$$P^{\mathrm{BF}}_{\mathrm{Kou}} = 1 - \exp\left[-T,\lambda,p,(1 - 1/m)^{\eta^-}\right]$$

Repository Structure

  • 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

Outputs

Running the scripts generates:

  • results/table_kou_theo_emp.csv
  • results/arrays.pkl
  • figures/fig1_mechanism.pdf — CPPI mechanism (cushion, exposure)
  • figures/fig2_paths.pdf — CPPI vs Buy & Hold vs 100% risky
  • figures/fig3_plsf_bs.pdf — Local and global breach probabilities under BS
  • figures/fig4_heston.pdf — Heston stress paths and instantaneous vol
  • figures/fig5_kou.pdf — BS vs Kou terminal distributions
  • figures/fig6_heatmap_kou.pdf — Breach probability vs (m, lambda) under Kou
  • figures/fig7_dyn_m.pdf — Dynamic VaR+EWMA multiplier
  • figures/fig8_hedging.pdf — OTM put hedging

How to reproduce

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

References

  • 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.

Author

Alexandre R. - Université Paris Cité

About

CPPI gap risk modeling: closed-form, Monte Carlo, dynamic VaR multipliers, and put hedging under BS, Heston, and Kou

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages