Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/api/sp/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ This page gives an overview of all stochastic processes available in the library
| Process | Description |
|---|---|
| [Heston][quantflow.sp.heston.Heston] | Classical square-root stochastic volatility model |
| [RoughHeston][quantflow.sp.rough_heston.RoughHeston] | Rough (fractional) Heston model with Hurst exponent H < 1/2 |
| [HestonJ][quantflow.sp.heston.HestonJ] | Heston model with compound Poisson jumps |
| [DoubleHeston][quantflow.sp.heston.DoubleHeston] | Two independent Heston variance processes |
| [DoubleHestonJ][quantflow.sp.heston.DoubleHestonJ] | Double Heston with compound Poisson jumps on the first component |
Expand Down
3 changes: 3 additions & 0 deletions docs/api/sp/rough_heston.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Rough Heston process

::: quantflow.sp.rough_heston.RoughHeston
16 changes: 16 additions & 0 deletions docs/bibliography.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,14 @@ Wang X., He X., Zhao Y., Zuo Z. (2017) [Parameter Estimations of Heston Model Ba

<div class="bib-entry" markdown>

#### eleuch_rosenbaum

Omar El Euch, Mathieu Rosenbaum. (2019) [The characteristic function of rough Heston models](https://doi.org/10.1111/mafi.12173){target="_blank" rel="noopener"}, Mathematical Finance, 29(1):3-38

</div>

<div class="bib-entry" markdown>

#### gamma-ou

P. Sabino, C. Petroni. (2021) [Gamma Related Ornstein-Uhlenbeck Processes and their Simulation](https://doi.org/10.1080/00949655.2020.1842408){target="_blank" rel="noopener"}, Journal of Statistical Computation and Simulation, 91(6)
Expand All @@ -102,6 +110,14 @@ Jim Gatheral, Antoine Jacquier. (2014) [Arbitrage-free SVI volatility surfaces](

<div class="bib-entry" markdown>

#### gatheral_jaisson_rosenbaum

Jim Gatheral, Thibault Jaisson, Mathieu Rosenbaum. (2018) [Volatility is rough](https://doi.org/10.1080/14697688.2017.1393551){target="_blank" rel="noopener"}, Quantitative Finance, 18(6):933-949

</div>

<div class="bib-entry" markdown>

#### gatheral_svi

Jim Gatheral. (2004) [A parsimonious arbitrage-free implied volatility parameterization with application to the valuation of volatility derivatives](https://faculty.baruch.cuny.edu/jgatheral/madrid2004.pdf){target="_blank" rel="noopener"}
Expand Down
37 changes: 37 additions & 0 deletions docs/examples/rough_heston_pricer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
"""Rough Heston: price a short-maturity smile and compare with the Heston model.

The rough model (Hurst H < 1/2) produces a steeper short-maturity skew than the
classical Heston model with the same parameters, without adding jumps.
"""

from quantflow.options.inputs import OptionType
from quantflow.options.pricer import OptionPricer, OptionPricingMethod
from quantflow.sp.heston import Heston
from quantflow.sp.rough_heston import RoughHeston

TTM = 0.1

rough = OptionPricer(
model=RoughHeston.create(vol=0.5, kappa=1.5, sigma=0.7, rho=-0.6, hurst=0.1),
method=OptionPricingMethod.COS,
)
heston = OptionPricer(
model=Heston.create(vol=0.5, kappa=1.5, sigma=0.7, rho=-0.6),
method=OptionPricingMethod.COS,
)


def implied_vol(pricer: OptionPricer, strike: float) -> float:
option_type = OptionType.PUT if strike < 100.0 else OptionType.CALL
price = pricer.price(option_type=option_type, strike=strike, forward=100.0, ttm=TTM)
return float(price.black.iv)


print(f"Short-maturity smile at ttm={TTM} (forward=100)")
print(f"{'strike':>8}{'rough IV':>12}{'heston IV':>12}")
for strike in (90.0, 95.0, 100.0, 105.0, 110.0):
print(
f"{strike:>8.1f}"
f"{implied_vol(rough, strike):>12.4f}"
f"{implied_vol(heston, strike):>12.4f}"
)
22 changes: 22 additions & 0 deletions docs/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,17 @@ @article{ekf
url={https://www.sciencedirect.com/science/article/pii/S2405896317324758},
}

@article{eleuch_rosenbaum,
title={The characteristic function of rough Heston models},
author={Omar El Euch and Mathieu Rosenbaum},
journal={Mathematical Finance},
year={2019},
volume={29},
number={1},
pages={3--38},
url={https://doi.org/10.1111/mafi.12173},
}

@article{gamma-ou,
title={Gamma Related Ornstein-Uhlenbeck Processes and their Simulation},
author={Sabino, P. & Petroni, C.},
Expand All @@ -111,6 +122,17 @@ @article{gatheral_jacquier
url={https://doi.org/10.1080/14697688.2013.819986},
}

@article{gatheral_jaisson_rosenbaum,
title={Volatility is rough},
author={Jim Gatheral and Thibault Jaisson and Mathieu Rosenbaum},
journal={Quantitative Finance},
year={2018},
volume={18},
number={6},
pages={933--949},
url={https://doi.org/10.1080/14697688.2017.1393551},
}

@misc{gatheral_svi,
title={A parsimonious arbitrage-free implied volatility parameterization
with application to the valuation of volatility derivatives},
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ nav:
- Jump Diffusion: api/sp/jump_diffusion.md
- Ornstein-Uhlenbeck: api/sp/ou.md
- Poisson Process: api/sp/poisson.md
- Rough Heston Model: api/sp/rough_heston.md
- Wiener Process: api/sp/wiener.md
- Copulas: api/sp/copula.md
- Timeseries Analysis:
Expand Down
Loading
Loading