1
$\begingroup$

I am trying to recreate the CBOE's SKEW Index in Python. I need to calculate the errors terms that are adjustment terms for the differences between the atm strike and the forward.

enter image description here

My formula's

error_term_1 = -1 * (1 + np.log(forward / atm_strike) - (forward / atm_strike))
error_term_2 = 2 * np.log(atm_strike / forward) * ((forward / atm_strike) - 1) + ((np.log(atm_strike / forward) ** 2) / 2)
error_term_3 = 3 * (np.log(atm_strike / forward) ** 2) * ((np.log(atm_strike / forward) / 3) - 1 + (forward / atm_strike))

According to the example when the forward is equal to 1106.85 and the atm_strike is equal to 1105, the correct values are:

epilson_1 = 1.40E-06
epilson_2 = -4.2E-0.6
epilson_3 = 1.176E-11

My first and second formula gives the correct answer. My third formula doesn't however. What do I need to change?

I see in different source that the definition is as follows:

enter image description here

Still I am getting a different result when I remove 3.. Please help!

$\endgroup$
2
$\begingroup$

In the third equation they somehow did not put the 1/3 in front of the second ln-term.

Without the 1/3, the equation looks at follows:

error_term_3 = 3 * (np.log(atm_strike / forward) ** 2) * (np.log(atm_strike / forward) - 1 + (forward / atm_strike))

Filling in F0 = 1106.85 and K0 = 1105 gives Epsilon3 = 1.1752170209137409e-11, which is the answer you are looking for.

$\endgroup$

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.