1
$\begingroup$

Im currently working on constructing the risk neutral probability distribution of a stock, based on the option prices. In doing so, i calculate the implied volatilities from the option prices, and then construct densities.

I have not yet normalized the densities in the plot below.

As the expiration date increases, more of the right-tail disappears.

My Question: How do i fit/model the "missing" tails in these densities?

enter image description here

When looking for solutions online, i only encounter examples where we have some dataset X, and then fit a density() to that, but given the problem here, i dont have a dataset, and therefore have to "extend" the density, by fitting some relationship, to extrapolate.

The work i am trying to replicate from matlab is: https://se.mathworks.com/company/newsletters/articles/estimating-option-implied-probability-distributions-for-asset-pricing.html where in matlab the author uses:

for k = 1:numel(T0)
    pdfFitsCall{k} = fit(pdfK, approxCallPDFs(:, k), 'linear');
end

This is my first question, so hopefully there is enough information in my question.

Thank you in advance

$\endgroup$
  • $\begingroup$ Can you elucidate what you used to interpolate the density in the first place? The prices are not available across a contiguous set of strikes, so there must be an assumption somewhere in your code. $\endgroup$ – Arshdeep Singh Duggal Jun 19 at 9:29
  • $\begingroup$ I fit a polynomial model to my calculated implied volatilities, with respect to the strike price, and then use the fitted model to calculate alot of implied volatilities for a sequence of strike prices. This way i get more data: smile_model <- lm(data[[i]]$implied.volatility ~ data[[i]]$Strikes + I(data[[i]]$Strikes^2)) $\endgroup$ – Emil Bille Jun 19 at 10:09
  • $\begingroup$ I see. Can you not extrapolate by using the same polynomial? (I'm not recommending this, but I'm trying to see what your criteria of a good fit would be). $\endgroup$ – Arshdeep Singh Duggal Jun 19 at 10:11
  • $\begingroup$ I could try and do that. I know its not the most sophisticated approach. I just tried solving the problem as the matlab code i linked, where it seems like the author extends the densities strictly by fitting something to the densities, and not the implied volatility model. But i will go with this for now. Thank you for a quick response. :) $\endgroup$ – Emil Bille Jun 19 at 10:14
  • $\begingroup$ Sure thing. Just make sure there is no arbitrage - this could come into play as the slope of the IV smile is bounded by some no arbitrage restrictions if I remember correctly. All you need to do is check that the density is non negative, call prices are decreasing with strike, and convex in strike. $\endgroup$ – Arshdeep Singh Duggal Jun 19 at 10:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.