SERVING THE QUANTITATIVE FINANCE COMMUNITY

 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Explicit Formula for computing IV

July 29th, 2019, 7:39 am

Working on the fast computation of BS implied volatility. I have read some papers regarding the explicit formula ofr BS IV. Like the Li(2005) paper: A new formula for computing implied volatility. However, I met a very serious problem in their formulas because the terms in the square root bracket can goes to negative is the option price is small enough, the simple formula by Corrado and Miller(1996) also suffers from the same problem. How can I solve this problem?
BTW, the explicit formula only serves as the initial guess for the subsequent numerical methods.
I don't know how to insert image for the formula, sorry.
 
User avatar
Cuchulainn
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: Explicit Formula for computing IV

July 29th, 2019, 10:07 am

There was a long-running discussion on this a while back

https://forum.wilmott.com/viewtopic.php?f=34&t=97812&p=732891&hilit=all+for+iv#p732891

The most robust was least squares AFAIR. The posts have unfortunately been become almost unreadable.

Since this is a nonlinear problem I would be surprised if there is an explicit formula. It would be the first in history.

 terms in the square root bracket can goes to negative is the option price is small enough,
Can happen. It means the (implicit) assumptions/constraints on which the algorithm is based no longer hold.
 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Re: Explicit Formula for computing IV

July 29th, 2019, 10:57 am

There are some approximation IV formulas that are 99.9% accurate. However, the problem is that those formula only works for near-ATM options, for options that are, e.g., 25% ITM/OTM, the formula becomes nonsense. So I just wonder if there are some approximation formulas that does not have this kind of issue.
 
User avatar
FaridMoussaoui
Posts: 412
Joined: June 20th, 2008, 10:05 am
Location: Genève, Genf, Ginevra, Geneva

Re: Explicit Formula for computing IV

July 29th, 2019, 12:27 pm

Isnt' Li formula (15) designed for the deep I(O)TM calls?
 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Re: Explicit Formula for computing IV

July 29th, 2019, 3:21 pm

Do you mean Li(2005) formula?
I don't think so. I have tried this formula and it produces imaginary numbers.
Try the input: S = 2800, K = 3050, T = 1/12, r = 0.02, divi = r, call price = 15.36.
The result is a negative value in the square root bracket.
 
User avatar
Cuchulainn
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: Explicit Formula for computing IV

July 29th, 2019, 6:41 pm

I tried c = 15.3559 and get iv = 0.10979904 using both Differential Evolution (DE) and Brent's method in Boost C++. 
A benign problem, numerically.

//
The approach taken in LI 2005 (Taylor series, >>) does not appeal to me at all.
I've lost count of the number of time that 'explicit formula' is mentioned in the text..
Last edited by Cuchulainn on July 29th, 2019, 7:18 pm, edited 1 time in total.
 
User avatar
FaridMoussaoui
Posts: 412
Joined: June 20th, 2008, 10:05 am
Location: Genève, Genf, Ginevra, Geneva

Re: Explicit Formula for computing IV

July 29th, 2019, 7:15 pm

May be because he treated only two cases (as shown in the appendix derivation) for the "asymptotic" behaviour of the IV.

You can have a look to Quantlib function "blackFormulaImpliedStdDevApproximation" for approximations of IV.
 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Re: Explicit Formula for computing IV

July 29th, 2019, 11:38 pm

As far as the paper I have read, this is an inevitable problem for all formulas that stem from Taylor expansion. All of these formulas works for a small range of option prices and moneyness, which makes them much less useful in practice.
I guess I might just have to read a lot more papers to find the solution.
Last edited by rwang716 on July 30th, 2019, 12:08 am, edited 1 time in total.
 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Re: Explicit Formula for computing IV

July 29th, 2019, 11:44 pm

I tried c = 15.3559 and get iv = 0.10979904 using both Differential Evolution (DE) and Brent's method in Boost C++. 
A benign problem, numerically.

//
The approach taken in LI 2005 (Taylor series, >>) does not appeal to me at all.
I've lost count of the number of time that 'explicit formula' is mentioned in the text..

The iteration methods for computing IV is definitely applicable in all cases, and accurate. However, since in my cases we are looking for the extreme speed-to reduce the time consumption to less than or equal to 1 BS formula time. This makes most numerical solvers methods inappropriate for us.
 
User avatar
Alan
Posts: 9785
Joined: December 19th, 2001, 4:01 am
Location: California
Contact:

Re: Explicit Formula for computing IV

July 30th, 2019, 4:34 am

Please justify the need for extreme speed. What is the application?
 
rwang716
Topic Author
Posts: 12
Joined: July 18th, 2019, 6:18 am

Re: Explicit Formula for computing IV

July 30th, 2019, 6:05 am

I have pretty much solved the problem myself. Anyway, thanks guys for the help.

BTW, by extreme speed, I mean I hope the time for computing the BS implied vol is less than 0.02us, hopefully 0.01us. My current speed is 0.022us on my laptop but I think with further code optimization I can reduce it to 0.015us.
 
User avatar
Cuchulainn
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: Explicit Formula for computing IV

July 30th, 2019, 3:44 pm

I tried c = 15.3559 and get iv = 0.10979904 using both Differential Evolution (DE) and Brent's method in Boost C++. 
A benign problem, numerically.

//
The approach taken in LI 2005 (Taylor series, >>) does not appeal to me at all.
I've lost count of the number of time that 'explicit formula' is mentioned in the text..

The iteration methods for computing IV is definitely applicable in all cases, and accurate. However, since in my cases we are looking for the extreme speed-to reduce the time consumption to less than or equal to 1 BS formula time. This makes most numerical solvers methods inappropriate for us.
Prove it! Sounds a bit waffly...
 
User avatar
haslipg
Posts: 5
Joined: July 11th, 2013, 9:03 am

Re: Explicit Formula for computing IV

August 2nd, 2019, 5:26 pm

I used found this method very reliable https://www.ssrn.com/abstract=2908494
 
User avatar
Cuchulainn
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: Explicit Formula for computing IV

August 4th, 2019, 11:28 am

I used found this method very reliable https://www.ssrn.com/abstract=2908494
Looks good. I am just wondering about multiple calls to exp() and testing for y < 0 etc. AFAIR if-else tests in loops are an issue?
 
User avatar
Cuchulainn
Posts: 59679
Joined: July 16th, 2004, 7:38 am
Location: Amsterdam
Contact:

Re: Explicit Formula for computing IV

August 4th, 2019, 1:16 pm

Another choice is a bisection/Newton combi (reliability/speed) that I find useful if the nonlinear function is unimodal:

1. We can pre-compute the number of iterations (and hence number of function evaluations!) needed for a given tolerance (e.g. 1/10?) with Bisection. The value will be the seed for Newton. Espen Haug in his book how to compute the initial interval/bracket for the solution.

https://en.wikipedia.org/wiki/Bisection_method

2. Since the seed is in the neighbourhood of the true solution, then 2-3 iterations of Newton is enough. all things being equal.

3. More upmarket, we might need to compute the 'initial bracket'.
https://en.wikipedia.org/wiki/Kantorovich_theorem
ABOUT WILMOTT

PW by JB

Wilmott.com has been "Serving the Quantitative Finance Community" since 2001. Continued...


Twitter LinkedIn Instagram

JOBS BOARD

JOBS BOARD

Looking for a quant job, risk, algo trading,...? Browse jobs here...


GZIP: On