I am trying to compute the BKM implied moments (Bakshi, Kapadia and Madan 2003) in python by following this paper:
Neumann, Skiadopoulos: Predictable Dynamics in Higher Order Risk-Neutral Moments: Evidence from the S&P 500 Options, Journal of Financial and Quantitative Analysis (JFQA), 2013, p947-977 link
which in page 7 and 8, describe the integrals for variance, skewness and kurtosis by equations (8), (9) and (10).
In page 8 part B. Empirical implementation, the authors go on about their methodology of extracting the implied moments. What I don't understand is:
a) Why they have to interpolate across the implied volatilities as a function of delta (by creating an artificial 'delta grid'), and just to convert these deltas back to the respective strikes afterwards via BS? They say the integrals require 'a continuum of OTM call and put options across strikes', and that we only observe discrete strike prices, hence the reason for using 'delta space'. Why does interpolating in delta space make it any more 'continuous'?
b) From page 9 of the paper:
Then, we compute the constant maturity moments [equations (5), (6), (7)] by evaluating the integrals in formulae (8), (9), and (10) using trapezoidal approximation. How do you evaluate those definite integrals in python? I am stuck staring at those 3 integrals not knowing how to continue in python.
Example (part of eq (8)):