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

Public Types | Public Member Functions | Protected Member Functions
BlackVarianceSurface Class Reference

Black volatility surface modelled as variance surface. More...

`#include <ql/termstructures/volatility/equityfx/blackvariancesurface.hpp>`

Inheritance diagram for BlackVarianceSurface:
[legend]

List of all members.

## Public Types

enum | Extrapolation { ConstantExtrapolation, InterpolatorDefaultExtrapolation }

## Public Member Functions

| BlackVarianceSurface (const Date &referenceDate, const Calendar &cal, const std::vector< Date > &dates, const std::vector< Real > &strikes, const Matrix &blackVolMatrix, const DayCounter &dayCounter, Extrapolation lowerExtrapolation=InterpolatorDefaultExtrapolation, Extrapolation upperExtrapolation=InterpolatorDefaultExtrapolation)
TermStructure interface
DayCounter | dayCounter () const
| the day counter used for date/time conversion
Date | maxDate () const
| the latest date for which the curve can return values
VolatilityTermStructure interface
Real | minStrike () const
| the minimum strike for which the term structure can return vols
Real | maxStrike () const
| the maximum strike for which the term structure can return vols
Modifiers
template<class Interpolator >
void | setInterpolation (const Interpolator &i=Interpolator())
Visitability
virtual void | accept (AcyclicVisitor &)

## Protected Member Functions

virtual Real | blackVarianceImpl (Time t, Real strike) const
| Black variance calculation.

## Detailed Description

Black volatility surface modelled as variance surface.

This class calculates time/strike dependent Black volatilities using as input a matrix of Black volatilities observed in the market.

The calculation is performed interpolating on the variance surface. Bilinear interpolation is used as default; this can be changed by the setInterpolation() method.

Possible enhancements:
  check time extrapolation