# Fitting stochastic variance distributions to index return data

I want to calculate option prices based on a realistic distribution of the underlying. The underlying is a liquid index such as Eurostoxx50. I think of two aproaches, both of them incorporate assumption of Markov Chains/independet returns:

1) calcualate option prices by monte carlo simulation with historical returns 2) get option prices by montecarlo simulation, simulating returns with a random number generator based on a stochastic variance distribution, such as generalized hyperbolic distribution, that is fitted to historical index returns.

For both approaches I see the problem of how to deal with the vola of the underlying. I assume that in reality vola realisiations are not totally independent from past values. That means that extreme vola changes will occur with both simulation methods more often than in reality. Using the overall historical vola as an estimator for

What is your opinion? Assuming vola being totally random and applying a distribution parameter fit made by using the whole avaiable index history or rather fitting time windows of the index?

Fot the latter I see the problem of how to estimate the whole set of parameters (up to 4) when using only a small dataset (I think of using something like the historical one month vola, but one month of data isn't enough at all to fit a hyperbolic model nor to apply the historical returns itself to simulation). Therefore I would need to scale the simulated returns by local historical vola. Since none of the distribution parameters are directly related to the vola/standard deviation, I would use the following scaling method for simmulated returns:

return scaled = simulated return * (sigma local historic vola) / (sigma calculated from fitted distribution parameters)

Would that be ok or a "no go"?

Furthermore, I didn't find any ready programmed estimators in Python or Scilab, that can fit any of the hyperbolic distributions or Heston like models to emprical returns. Aren't there any? And, I coudln't find any function, that calculates random numbers from the generalized hyperbolic distribution. Isn't there any? If not, how can it be derived from the densitiy function, using Python?

This is a huge bulk of questions, I just emerged myself into those things and need some "hints" into which direction to go. THanks a lot in advance.

Historical returns are not to be used 'untreated' for the calculation of option prices.

The expectation that you will be using in Monte Carlo will take the form $$C(K,T) = E^Q\{D(T)\ \max[0, S_T-K, 0]\}$$ where $T$ is the maturity, $K$ is the strike price, $S$ is the stock price and $D$ is the discount factor. But the expectation is taken under the 'risk neutral' or, perhaps more accurately, the 'risk adjusted' probability measure (hence the $Q$ in $E^Q$). The historical returns are drawn from the 'real world' or 'physical' or 'objective' probability measure, say $E^P$.

The difference between the two reflect a number of factors, including risk preferences and arbitrage (but that is not in the scope of this question). At a minimum, you would like discounted stock prices to be martingales, therefore the expected return of the stock price has to be 'overriden' to match the discount factor. More accurately you would like to apply the 'Radon-Nikodym derivative' or 'state price density' or 'marginal rate of substitution' or 'pricing kernel' to express the option price as an expectation under the 'real world' mesure from which you sample, namely $$C(K,T) = E^Q\{D(T)\ \max[0, S_T-K, 0]\} = E^P\{m(X_T)\ \max[0, S_T-K, 0]\}$$ where $X$ is a state vector that includes $S$ and $D$ amongst other things (potentially).

But say you follow the minimal approach, then you have to override the mean of your distribution. Hence the number of free parameters goes down from 4 to 3. Then I cannot see why you cannot use the empirical distribution, which the caveat that you will be underpricing OTM puts and overpricing OTM calls with respect to the market.

Now regarding the actual estimation, you mention Hyperbolic Distributions and Heston's model (a Stochastic Volatility model). Although they both are Gaussian models with randomized variance, they are completely different. Hyperbolic Distribution models are 'static' while Stochastic Volatility models are 'dynamic', in terms of the volatility. The former can be estimated using MLE, at least in principle, but they will need a large sample to identify the higher moment parameters. The latter are a real pain to estimate from historical spot prices alone, and also need a long sample to identify the latent volatility dynamics (but you can Goggle for the work of Jacquier, Polson and Rossi/ Eraker, Johannes and Polson/ Bates/ Doucet and Johansen). Or you can use a Garch-type filter instead for the time series, which can give you the spot volatility value.