ActiveX Software for Visual Basic 6/.NET, C++ 6/.NET, Delphi, Borland C++ Builder: Matrix Maths, Time Series
 Home   |   Products   |   Testimonials   |   Prices   |   Support   |   Contact   |   Publications   |   About   |   Buy Now
Quick Links   Home   Purchase   Support
Products   Product Home   ActiveX/COM Components   .NET Components   Version History
Support   Support Home   Installation Help
About Us   Company Info   Clients   Testimonials   Publications   Contact Us

   Volatility Estimator for Option Pricing and Analysis .NET Software

Financial Volatility Estimation .NET Component

Product Features  Download  Product FAQ  Screen Shots!   Prices Buy Now

The Importance of Volatility in Options and Futures Pricing

Did you know that for some put and call options, if you estimate the volatility of a stock or commodity at say 12% when you should have used 10%, then you can end up with an error of up to 55%?

Computing option prices? You need to obtain an accurate estimate volatility to get the best prices and make the best trading decisions possible! Volatility is well known to be very difficult to estimate accurately and is often regarded as the most critical element in options pricing and analysis.

Volatility/NET and Volatility/X provide a range of the best available methods for computing both implied volatility and statistical or historical volatility.

The analysis of options and futures using computer-based methods requires a number of inputs. Arguably, the most important, yet usually the most difficult input to obtain, is the volatility. The volatility of a stock price is usually defined as the standard deviation of the daily price returns of a stock over a set period of time. Often this estimate is annualized, that is, converted to a one year value of volatility by multiplying by a conversion factor.

Small Errors in Volatility Can Give Big Errors in Option Prices

Obtaining accurate estimates for volatility which will provide the most beneficial inputs to the option pricing models used is critical. It has been shown that, based on the Black-Scholes model, a 10% underestimation of the returns variance can lead to a 14.5% underpricing of a 3 month, 15% out of the money option and using the same model, the delta would be estimated as being 8.2% lower than the value found using the correct volatility input [7]. Consider the following examples for a European option calculated using the Black-Scholes model:

Stock Price: $39.45
Strike Price: $40.00
Interest Rate: 5%
Time to maturity: 30 days
Volatility:   10%

Call Price: $0.28

If the volatility is overestimated by 20%, ie Volatility = 0.12, then

Call Price = $0.37 .. A 30% error due to the overestimated volatility!

Stock Price: $39.45
Strike Price: $38.00
Interest Rate: 5%
Time to maturity: 180 days
Volatility:   10%

Put Price: $0.28

If the volatility is overestimated by 20%, ie Volatility = 0.12, then

Put Price = $0.43 .. A 56% error due to the overestimated volatility!

So what can you do to try and overcome these problems?

The solution is to intelligently use the most efficient volatility estimation algorithms, making the best use of the available data to give the most accurate estimates. Then it is up to you to decide the best method to use the various estimates for historical and implied volatility. Hence it is important to use the most reliable and accurate methods for computing volatility as possible.

Volatility/NET implements a number of the best known and well established, highly efficient methods for computing both historical and implied volatility.

Algorithms for Computing Historical and Implied Volatility

There are a few main approaches to computing volatility. These include: a) historical volatility and b) implied volatility. The historical volatility is obtained by using a series of historical prices to estimate the standard deviation over a period of time. The implied volatility is effectively the current estimate of the volatility implied by the market. It is obtained by inverting the current option price estimate. That is, given the inputs for pricing an option and using the current option price, it is possible to invert the model to estimate the volatility.

Volatility/NET provides a range of highly efficient methods for computing both historical and implied volatility. We will describe some of these below:

Garman and Klass define a measure of the efficiency of an estimator as:

Eff = Var(var_o)/Var(y).

The aim is to obtain a method of estimating the volatility which reduces the variance of the estimate for a given amount of data. Or put another way, to achieve the same accuracy, a smaller amount of data is required when using the more efficient algorithms. In contrast to the classical historical volatility estimators, a number of improved methods of computing historical volatility have been proposed which have significantly improved efficiency. These include the Parkinson algorithm which has an efficiency of approximately 5.2 and the Garman-Klass algorithm which has an efficiency of 7.4 or better. While these methods can provide better results than the classical historical volatility estimator, it is also evident that this is a continuing area of research and the performance of the various methods is still being investigated [8].

Please note: these algorithms make a number of assumptions and users must make themselves fully aware of how and when to use these models. Please see the disclaimer and risk statement below and the full terms and conditions of the software license for more details.

Volatility/NET includes the following methods:

Historical Volatility

  • Classical Historical Volatility
  • Parkinson (1980)
  • Garman and Klass (1980)
  • Rogers and Satchell (1991)
  • EWMA

Implied Volatility

  • Exact Bisection - BlackScholes (Call, Put)
  • Exact Bisection - Binomial (Call, Put)
  • M. Li (2006) - (Call)
  • Brenner and Subrahmanyam (1988) - (Call, Put)
  • Brenner and Subrahmanyam (1988)  Vega Refined - (Call, Put)
  • Bharadia (1996) - (Call, Put)
  • Corrado and Miller (1996)  - (Call, Put)
  • Hallerbach (2004)- (Call, Put)
 Volatility Conversion
  • Conversion between different  time periods and scales

With just a few lines of code, it is now possible to load market data and output estimates of the theoretical stock volatilities. The data sources can be any data source that can be accessed from your application and supplied to the functions.   

Volatility/NET .NET Component

Volatility/NET is a .NET DLL Assembly that can be used in wide range of Windows applications. It requires no user interface and can be accessed by any .NET development environment, including Visual Studio .NET 2002-205.

Volatility/NET supports threaded blocking and non-blocking modes. This means for lengthy computations, you can use the control in a program, pass it some data for processing and the program can then run other tasks and respond to user input while the computations are taking place. When processing is complete, an event is fired and the program continues from the data processing step. This blocking/non-blocking mode is under program control. Error codes are returned from the event indicating the success or otherwise of the data processing. The computations can also be interrupted under program control by the user, for example, it is straight forward to implement a "Stop" button to direct the computations to be stopped.

The Volatility/NET Component can be used in applications that support the .NET standard. This includes Visual Basic .NET and Visual C#. The control is written in 100% managed Visual C# with particular attention given to ensuring speed and numerical accuracy. The component is strong named, and can be installed into the GAC (Global Assembly Cache).

Volatility/X Excel Add-In, ActiveX and COM Component

Volatility/X is an Excel Add-In Component can be used in Excel spreadsheets or in your own applications created in Visual Basic 6, VC++ or other languages. We provide full source code demos and backup support to help you.

If you are aiming to develop an option trading system for the stock market, try Options/NET and Volatility/NET. These .NET DLLs will enable you to quickly build your own system.

With the addition of stock quotes, you can create your own option trading software, customized to your own purposes.

Volatility/NET includes sample applications with source code in Visual Basic .NET and Visual C#.

Volatility/NET includes sample applications with source code so you can quickly see just how easy it is to accurately estimate stock or commodity volatility.

Volatility/NET is strong named, so it can be readily added to the GAC (Global Assembly Cache).

Volatility/NET is written in C# with maximum speed and reliability and can be used in a wide range of applications that support the .NET standard. This includes Visual Basic .NET, Visual C# and more.


   Screen shot of an application built in Visual C# using Volatility/NET.

It is well known that the volatility estimate for options pricing is very important and Volatility/NET is a positive step towards obtaining the best values possible. Volatility/NET is a tool for professionals. You need to understand the limitations of the software and use it wisely, but with careful attention to the input data ranges and the results that it gives, ie by using multiple volatilities to ensure only valid estimates are used, Volatility/NET is an excellent choice in obtaining improved volatility inputs to your models.


    1. M. Parkinson, "The Extreme Value Method for Estimating the Variance of the Rate of Return", The Journal of Business, Vol. 53, No. 1, Jan., 1980, pp. 61-65.
    2. M.B. Garman and M.J. Klass, "On the Estimation of Security Price Volatilities from Historical Data, The Journal of Business, Vol. 53, No. 1, Jan., 1980, pp. 67-78.
    3. L. C. G. Rogers, S. E. Satchell, "Estimating Variance From High, Low and Closing Prices", The Annals of Applied Probability, Vol. 1, No. 4, Nov., 1991, pp. 504-512.
    4. J.C. Hull, "Volatility, Futures and Other Derivative Securities", Prentice-Hall, 5th Ed, 2003.
    5. Makridakis, Wheelwright and McGee, Forecasting Methods and Applications, Wiley, 1983.
    6. F.X. Diebold, A. Hickman, A. Inoue and T. Schuermann, "Converting 1-Day Volatility to h-Day Volatility: Scaling by Sqrt(h) Is Worse Than You Think", Working Paper 97-34, The Wharton School, University of Pennsylvania, 1997.
    7. R.C.A. Oomen, "Modelling realized variance when returns are serially correlated", Unpublished paper, Warwick Business School.
    8. J. Duque and D.A. Paxson, "Empirical Evidence On Volatility Estimators", Working Paper, ISEG, Portugal, 1999.