Rough volatility · teaching module · roughvol_core.py

The trusted engine —
and why we test it.

Every result in RoughVolLab is built on one path generator: roughvol_core.py, the κ=0 Volterra engine. It exists because an earlier engine had a silent bug — its variance was normalised wrong, so any analysis built on it would measure the bug, not the market. This tool lets you drive the real engine, and see the bug it was built to prevent.

Start here — a two-minute guided tour

hide ▲
01 · the engine

Two paths, one model

The engine produces a variance path (how choppy the market is) and the asset price it drives. Roughness in the variance is what shapes the price. Watch both react as you move the dials.

02 · the dials

Feel each parameter

Drag H for roughness, η for how violent the vol swings are, ρ for the leverage effect (down moves raising vol), ξ₀ for the baseline variance level.

03 · the point

Open the Advanced panel

There you can flip on the old bug and run the engine's own test. The paths look the same — but the test tells you the truth. That's why the module exists.

rough Bergomi — full simulation H=0.10 · η=1.0 · ρ=−0.70
Variance V(t) — the market's choppiness
Asset price S(t) — driven by that variance
t = 0time →t = T
The engine's parameters
RoughnessH0.10
low = rough vol · 0.5 = ordinary · high = smooth
Vol of volη1.00
how violently the variance swings
Correlationρ−0.70
the leverage effect (negative = down→more vol)
Base varianceξ₀0.040
the long-run variance level
Same noise
Isolate each dial's effect

Advanced — the bug, and the test that catches it

WHY IT'S TESTED show ▼
κ=0 Volterra scheme · faithful port of roughvol_core.py · runs entirely in your browser