Casey


Total Posts: 4 
Joined: Apr 2020 


Hi all, I believe this is my first post here, although I've been lurking forever. I am working on some code to parameterize the implied volatility smile by delta and I'm running into a bit of a snag. It's probably something obvious that I'm missing.
I'm looking at American exercise equity options. I'm estimating HV using carefully constructed estimators from Filthy's volatility trading book and using those plus info from my brokers option chains to estimate Implied Volatility (BSM Process, American Exercise, Vanilla Payoff).
I can use those numbers to construct a smile, but in Filthy's book he talks about parameterizing the smile by delta, and dividing by the ATM implied volatility at each expiry to get a smile that is remarkably consistent over time.
So I'm fitting a polynomial to the smile and using a simple minimization routine in python to find the "strikes" that correspond to 5, 10, ... , 50 delta. The problem is that when I look at my broker, the "strikes" that I am coming up with are wildly different in terms of delta.
I can get the delta values close if I use the broker supplied values for IV to compute Delta. This does not seem correct to me. Why would they compute delta using IV?
Is there something else that I'm missing? Thanks in advance for your time, I'm happy to paste code, data, or clarify any other assumptions that I may have missed.
Casey 



ronin


Total Posts: 648 
Joined: May 2006 


> Why would they compute delta using IV?
Yes, that is a bit of a snag. The delta depends on the IV, but the IV depends on the delta. It's an implicit problem  you have to solve for both at the same time.
One way around it is to use a single vol like the ATM vol or the varswap vol to approximate the delta, as they do in fx. Your delta will be a bit off, but it will be reasonable. The skewier the surface, the more off you will be.
> So I'm fitting a polynomial to the smile
That is probably also not helping. Polynomials are pretty much he worst possible thing to interpolate smiles with. You will probably find that your interpolation has tons of strike arbitrage as well.
You are better off using something like tension splines, plus some arb removal. 
"There is a SIX am?"  Arthur 

Casey


Total Posts: 4 
Joined: Apr 2020 


ronin  thank you for the input. I was doing it on SPY this week which was heavily skewed, so that likely didn't help.
I will look into the tension splines and move away from polynomial 



ronin


Total Posts: 648 
Joined: May 2006 


> SPY this week which was heavily skewed, so that likely didn't help.
The skew doesn't hurt the interpolation. It just messes with the interpretation of strikes in terms of delta. So the strike you think of as 10 delta may really be 5 delta or 15 delta or something else. But the vol will be fine, what ever the strike is in terms of delta. 
"There is a SIX am?"  Arthur 

gagyang


Total Posts: 1 
Joined: Jun 2020 


Unless you need the fitting to be very precise per strike, a natural cubic spline should fit it decently (https://docs.scipy.org/doc/scipy1.1.0/reference/generated/scipy.interpolate.CubicSpline.html#scipy.interpolate.CubicSpline). You can set the knots of the splines to be some reasonable delta numbers, 57 knots should most likely be enough as well.
For the arb checks, SPY data should be clean enough to fit something arb free out of the box most of the time for quite a large range of delta/moneyness, if you need to extrapolate the wings then there might be arb issues. 



Baltazar


Total Posts: 1776 
Joined: Jul 2004 


Here is a old dusty post giving a practical view of the problem (for equity):
http://gosmej1977.blogspot.com/2013/05/skewfitting.html 
Qui fait le malin tombe dans le ravin 

Casey


Total Posts: 4 
Joined: Apr 2020 


> Baltazar  thank you that's a great resource. I will have to spend a lot of time there :)




ronin


Total Posts: 648 
Joined: May 2006 


The natural cubic spline will fit any nodes you give it, but it may generate wiggles between the nodes. And wiggles are not good.
The tension parameter is there to fine tune that sort of thing. 
"There is a SIX am?"  Arthur 
