Implied Volatility from Black-Scholes price
Dan Stefanica and Rados Radoicic propose a quite good initial guess in their very recent paper An Explicit Implied Volatility Formula. Their formula is simple, fast to compute and results in an implied volatility guess with a relative error of less than 10%.
It is more robust than the rational fraction from Minquiang Li: his rational fraction is only valid for a fixed range of strikes and maturities. The new approximation is mathematically proved accurate across all strikes and all maturities. There is only the need to be careful in the numerical implementation with the case where the price is very small (a Taylor expansion of the variable C will be useful in this case).
As mentioned in an earlier post, Peter Jäckel solved the real problem by providing the code for a fast, very accurate and robust solver along with his paper Let’s be rational. This new formula used as initial guess to Minquiang Li SOR-TS solver provides an interesting alternative: the resulting code is very simple and efficient. The accuracy, relative or absolute can be set to eventually speedup the calculation.
Below is an example of the performance on a few different cases for strike 150, forward 100, time to maturity 1.0 year and a relative tolerance of 1E-8 using Go 1.8.
Original volatility | Method | Implied Volatility | Time |
---|---|---|---|
64% | Jäckel | 0.6400000000000002 | 1005 ns |
64% | Rational | 0.6495154924570236 | 72 ns |
64% | SR | 0.6338265040549524 | 200 ns |
64% | Rational-Li | 0.6400000010047917 | 436 ns |
64% | SR-Li | 0.6400000001905617 | 568 ns |
16% | Rational | 0.1575005551326285 | 72 ns |
16% | SR | 0.15117970813645165 | 200 ns |
16% | Jäckel | 0.16000000000000025 | 1323 ns |
16% | Rational-Li | 0.16000000000219483 | 714 ns |
16% | SR-Li | 0.16000000000018844 | 1030 ns |
4% | Rational | 0.1528010258201771 | 72 ns |
4% | SR | 0.043006234681405076 | 190 ns |
4% | Jäckel | 0.03999999999999886 | 1519 ns |
4% | Rational-Li | 0.040000000056277685 | 10235 ns |
4% | SR-Li | 0.040000000000453895 | 2405 ns |
The case 4% was an example of a particularly challenging setting in a Wilmott forum. It results in a very small call option price (9E-25).