### A free/open-source library for quantitative finance

Public Member Functions
VanillaOption Class Reference
Financial instruments

Vanilla option (no discrete dividends, no barriers) on a single asset. More...

`#include <ql/instruments/vanillaoption.hpp>`

Inheritance diagram for VanillaOption:
[legend]

List of all members.

## Public Member Functions

| VanillaOption (const boost::shared_ptr< StrikedTypePayoff > &, const boost::shared_ptr< Exercise > &)
Volatility | impliedVolatility (Real price, const boost::shared_ptr< GeneralizedBlackScholesProcess > &process, Real accuracy=1.0e-4, Size maxEvaluations=100, Volatility minVol=1.0e-7, Volatility maxVol=4.0) const

## Detailed Description

Vanilla option (no discrete dividends, no barriers) on a single asset.

Examples:
  EquityOption.cpp.

## Member Function Documentation

Volatility impliedVolatility | ( | Real | price,
|  | const boost::shared_ptr< GeneralizedBlackScholesProcess > & | process,
|  | Real | accuracy = `1.0e-4`,
|  | Size | maxEvaluations = `100`,
|  | Volatility | minVol = `1.0e-7`,
|  | Volatility | maxVol = `4.0`
| ) |  | const

Warning:
  currently, this method returns the Black-Scholes implied volatility using analytic formulas for European options and a finite-difference method for American and Bermudan options. It will give unconsistent results if the pricing was performed with any other methods (such as jump-diffusion models.)

Warning:
  options with a gamma that changes sign (e.g., binary options) have values that are not monotonic in the volatility. In these cases, the calculation can fail and the result (if any) is almost meaningless. Another possible source of failure is to have a target value that is not attainable with any volatility, e.g., a target value lower than the intrinsic value in the case of American options.