Why the rotation count algorithm works

The characteristic functions of many affine jump-diffusion models, such as Heston’s stochastic volatility model and all of its extensions, involve multivalued functions such as the complex logarithm. If we restrict the logarithm to its principal branch, as is done in most software packages, the characteristic function can become discontinuous, leading to completely wrong option prices if options are priced by Fourier inversion. In this paper we prove under non-restrictive conditions on the parameters that the rotation count algorithm of Kahl and Jäckelchooses the correct branch of the complex logarithm. Under the same restrictions we prove that in an alternative formulation of the characteristic function the principal branch is the correct one. Seen as this formulation is easier to implement and numerically more stable than Heston’s formulation, it should be the preferred one. The remainder of this paper shows how complex discontinuities can be avoided in the Schöbel-Zhu model and the exact simulation algorithm of the Heston model, recently proposed by Broadie and Kaya. Finally, we show that Matytsin’s SVJJ model has a closed-form characteristic function, though the complex discontinuities that arise there due to the branch switching of the exponential integral cannot be avoided under all circumstances.