Black volatility surface that implies an ATM vol based on triangulation. More...
#include <qle/termstructures/blacktriangulationatmvol.hpp>
Public Member Functions | |
BlackTriangulationATMVolTermStructure (const Handle< BlackVolTermStructure > &vol1, const Handle< BlackVolTermStructure > &vol2, const Handle< CorrelationTermStructure > &rho, const bool staticVol2=false) | |
Constructor takes two BlackVolTermStructure and a correlation. More... | |
TermStructure interface | |
const Date & | referenceDate () const override |
Date | maxDate () const override |
Natural | settlementDays () const override |
Calendar | calendar () const override |
Observer interface | |
void | update () override |
VolatilityTermStructure interface | |
Real | minStrike () const override |
Real | maxStrike () const override |
Visitability | |
virtual void | accept (AcyclicVisitor &) override |
virtual Volatility | blackVolImpl (Time t, Real) const override |
Black volatility surface that implies an ATM vol based on triangulation.
This class is used when one wants to proxy a volatility like XAU/EUR using XAU/USD, EUR/USD and a correlation. It uses the cosing rule. The correlation can be implied from a vol (if you had XAU/EUR) or historically estimated. This class is just ATM, otherwise there is a degree of freedom in selecting strikes.
One application of this is SIMM sensis, where the vol for XAU/EUR must be broken down into XAU/USD and EUR/USD.
Other methods for building a full surface exist, but to keep things simple we just do ATM
BlackTriangulationATMVolTermStructure | ( | const Handle< BlackVolTermStructure > & | vol1, |
const Handle< BlackVolTermStructure > & | vol2, | ||
const Handle< CorrelationTermStructure > & | rho, | ||
const bool | staticVol2 = false |
||
) |
Constructor takes two BlackVolTermStructure and a correlation.
Attributes like referenceDate, settlementDays, Calendar, etc are taken from vol1