Hi
Baozi
I can explain an approach we take and maybe it will help. Before starting, you should set your purpose of this effort: is it risk management? is it for finding trading opportunities? For us it is both.
The first step is cleaning the quotes and applying good inputs to our modified binomial pricing engine.
Next, we calculate a residual yield based on the put-call parity formula (and sometimes slope the yield as there are different dividend/interest assumptions on high strikes vs low strikes). Applying the residual yield rate process helps with summarizing hard-to-borrow stocks or stocks with differing dividend assumptions. The effect is to line up the call and put implied volatilities.
Next, using the call and put mid-price IVs weighted for moniness and bid-ask width, a non-arbitrageable smooth curve is fit through the strike implied volatilities. Importantly, we use delta as a variable. This smoothing system produces theoretical values and option Greeks, critical for risk management and trading.
We also compute an earnings effect that produces the best fit term structure.
For example, you mention NVDA Jan 31st 2014.
https://gyazo.com/d67f085cff70a8755eb1bbf4a657fe5b
It might be hard to see in this screenshot but the vol50 is the IV at the 50 delta, and using these for each expiration we solve to the earnings effects in the rightmost column. Feb-14 expiration has an earnings effect of 14%.
We also calculate a slope and derivative for each month.
Once we have a slope, the good thing about using delta is you can compare to other stocks and historically. Here's a graph of NVDA slope around the date in question:
https://gyazo.com/031ace84e4f02bb3dcd9d946a15b89d2
A neat thing in this new graph we have built is to show the stock performance given entry and exit points of indicators like slope. Above if you would have bought NVDA each time the slope crossed below -.25 and sold when it hit .5, you would have had a daily return of 0.072% which translates into an annual return of 26.15%.
For your question about the surface if the spot moves, we handle that by trying to predict what the IV will do on various moves. For example, I have a picture of ZAYO below that shows what happens to IV30 day for historical moves in the stock.
https://gyazo.com/e11ba173b1afe19dfa284e173a2987e7
This shows, not surprisingly, that for each percentage change in the stock the IV30 will change -0.75. We do this type of analysis for IV2year, slope, derivative (skewness, kurtosis) and so we can model what might happen to the IV surface given changes in stock price.
I hope this helps.
Matt