1
$\begingroup$

Given call option price, what is the simplest formula to get the volatility value ?

Test Data:

Stock price  : $60
Option strike: $65
Call option price: $1.766
Duration (in year) : 0.25   (equivalent to 63 trading days)
Interest rate: 0.25%

Result:

Volatility: 30%

I am especially looking for a formula that can be programmed into C#.

$\endgroup$

2 Answers 2

4
$\begingroup$

Implied volatility cannot be calculated analytically with a closed formula.

Instead, you have to approximate it numerically.

There are multiple methods to compute IV on an option:

Bi-section method

Newton-Raphson method

Secant method

A quick google search came up with the following code for C++ using bi-section and newton methods:

Implied volatility calculations in C++

$\endgroup$
1
  • $\begingroup$ Something to consider while coding this out: precision and solving methodology may have a non-negligible impact on IV calculations. @Probilitator brings up the important consideration of priority, as often times speed, numerical stability, and precision (and, consequently, accuracy), are pitted against one another. $\endgroup$ Mar 22, 2014 at 7:15
1
$\begingroup$

Theory: First of all you must decide which implied volatility you want. Probably you are looking for the Black and Scholes implied vol. (but one could also caclute Heston implied vols etc)

If we are in a B&S setting one desires to retrieve the implied vol by solving the B&S pricing equation for $\sigma$. Unfortunately there is no analytical solution and you will have to use a numerical root finder.

Delta hedge has already provided some frequently used algorithms. I will also mention Brent's Method here. You will have to decide which one you like best.

In general there are two main criteria you should consider

  • numerical stability
  • speed

(for more see here)


Implementation in C# - for most algorithms you will find pseudocode online which can be easily translated into C# (see e.g. the one for Newton's Method). Every root finder can be coded up in C#. If you are in a hurry just google "root finder c#" and this will give you some already implemented methods.

$\endgroup$
2
  • $\begingroup$ Which method is the most widely used ? I also found this paper that avoid using newtons method papers.ssrn.com/sol3/papers.cfm?abstract_id=952727 $\endgroup$ Mar 20, 2014 at 16:41
  • $\begingroup$ nice find :) - I was not aware of this result. I can't tell you which result is most widely used for I don't know what every body else is using. Newton is the simpelst approach and most prone to error. Everything else is in most cases an improvement. When I need a quick and dirt root finder I often still code up Newton - when I have more time I use something more sophisticated $\endgroup$ Mar 20, 2014 at 18:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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