Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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%


Volatility: 30%

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

share|improve this question
up vote 3 down vote accepted

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++

share|improve this answer
Thank you for the C# code. It works ! – Jeson Martajaya Mar 20 '14 at 16:10
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. – Jacob M. Morley Mar 22 '14 at 7:15

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.

share|improve this answer
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 – Jeson Martajaya Mar 20 '14 at 16:41
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 – Probilitator Mar 20 '14 at 18:25

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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