# Avoiding negative volatility when applying Heston model

When applying the Heston model to generate the sample volatility surface, some of the volatility value will be negative. I am just wondering what do practioners normally do with these negative value. Do you

1. simply ignore it;
2. set negatives to 0; or
3. square it, take absolute values, or something else?
-

It is not necessarily something that must be wrong with your model. Inherent in the Heston discretization methods of its continuous time dynamics is the possibility of negative values in the variance process.

Here are couple solutions you can look at in order to "fix" your problem:

• Usage of different Euler schemes, such as the Full Truncation scheme.
• Making the discretization grid smaller.
• approximate Fourier inversions needed to simulate the integrated variance process.
• Moment-matching techniques (for example, approximating the non-centrally chi-squared distribution by a related distribution whose moments are (locally) matched with those of the exact distribution).
• Using drift interpolation instead of Fourier inversion
-

Negative volatility means something some where along the lines something is inherently wrong with your model, double check your code and theory

-
Thanks for the answer but why you can't have negative vol when, say, in Heston model, vol is just a SDE? –  AZhu Jan 22 '13 at 2:41
@AZhu it's usually standard in the model, you either forgot the discretization step or are using a unreasonably small sample size if its still negative after the discretization. –  pyCthon Jan 22 '13 at 2:52
The Heston model does not generate negative volatility, but an Euler discretization does. It is not a problem of the model. It is a problem of the numerical scheme. –  Christian Fries Jan 22 '13 at 10:48

First, to make that clear: The Heston model does not generate negative volatility, but - for example - an Euler discretization of the Heston model may generate negative volatility (or variance). It is not a problem of the model. It is a problem of the numerical scheme.

If you use an Euler scheme which generates negative volatility and then use any of the methods quoted in you question (e.g. floor volatility, take absolute value of volatility, etc.), then you are effectively modifying the model. As a consequence, the calibration quality of the model may suffer since analytic formulas are no longer valid. Working with a finer time-discretization may heal this, since the probability to hit zero gets smaller.

That said, I assume the question here rather is: Which numerical scheme should be used for Heston model?

Here it may be useful to take a look at the paper by Broadi and Kaya:

Broadie, M.; Kaya, O.: Exact Simulation of Stochastic Volatility and other Affine Jump Diffusion Processes. Operations Research, 2006, Vol.54, No.2, 217-231.

-