Wrapper class for a BlackVolTermStructure that allows us to proxy one equity vol surface off another. More...
#include <qle/termstructures/blackvolsurfaceproxy.hpp>
Public Member Functions | |
BlackVolatilitySurfaceProxy (const QuantLib::ext::shared_ptr< BlackVolTermStructure > &proxySurface, const QuantLib::ext::shared_ptr< EqFxIndexBase > &index, const QuantLib::ext::shared_ptr< EqFxIndexBase > &proxyIndex, const QuantLib::ext::shared_ptr< BlackVolTermStructure > &fxSurface=nullptr, const QuantLib::ext::shared_ptr< FxIndex > &fxIndex=nullptr, const QuantLib::ext::shared_ptr< CorrelationTermStructure > &correlation=nullptr) | |
Constructor. This is a floating term structure (settlement days is zero) More... | |
TermStructure interface | |
DayCounter | dayCounter () const override |
Date | maxDate () const override |
Time | maxTime () const override |
const Date & | referenceDate () const override |
Calendar | calendar () const override |
Natural | settlementDays () const override |
VolatilityTermStructure interface | |
Rate | minStrike () const override |
Rate | maxStrike () const override |
Inspectors | |
QuantLib::ext::shared_ptr< BlackVolTermStructure > | proxySurface_ |
QuantLib::ext::shared_ptr< EqFxIndexBase > | index_ |
QuantLib::ext::shared_ptr< EqFxIndexBase > | proxyIndex_ |
QuantLib::ext::shared_ptr< BlackVolTermStructure > | fxSurface_ |
QuantLib::ext::shared_ptr< FxIndex > | fxIndex_ |
QuantLib::ext::shared_ptr< CorrelationTermStructure > | correlation_ |
QuantLib::ext::shared_ptr< BlackVolTermStructure > | proxySurface () const |
QuantLib::ext::shared_ptr< EqFxIndexBase > | index () const |
QuantLib::ext::shared_ptr< EqFxIndexBase > | proxyIndex () const |
Volatility | blackVolImpl (Time t, Real strike) const override |
Wrapper class for a BlackVolTermStructure that allows us to proxy one equity vol surface off another.
This class implements BlackVolatilityTermStructure and takes a surface (well, any BlackVolTermStructure) as an input. It also takes Handles to two EquityIndices (index and proxyIndex), where index is the 'EquityIndex' of the underlying for the surface being constructed and proxyIndex is the 'EquityIndex' for the surface being proxied off.
The vol returned from the new surface is proxied from the base, adjusting by the forward prices to match ATM:
\begin{eqnarray} \sigma_2(K,T) = \sigma_1(\frac{K}{F_2}*F_1,T) \end{eqnarray}
Where
\( \sigma_1 = \text{Volatility of underlying being proxied against}\)
\( \sigma_2 = \text{Volatility of underlying being proxied}\)
\( F_1 = \text{Forward at time T of the underlying being proxied against}\)
\( F_2 = \text{Forward at time T of the underlying being proxied}\)
\( T = \text{Time}\)
Note: This surface only proxies equity volatilities, this is because we are forced to look up the equity fixings using time instead of date and use the forecastFixing method in an EquityIndex. A more general class could be developed if need, using Index instead of EquityIndex, if the time lookup could be overcome.
Definition at line 62 of file blackvolsurfaceproxy.hpp.
BlackVolatilitySurfaceProxy | ( | const QuantLib::ext::shared_ptr< BlackVolTermStructure > & | proxySurface, |
const QuantLib::ext::shared_ptr< EqFxIndexBase > & | index, | ||
const QuantLib::ext::shared_ptr< EqFxIndexBase > & | proxyIndex, | ||
const QuantLib::ext::shared_ptr< BlackVolTermStructure > & | fxSurface = nullptr , |
||
const QuantLib::ext::shared_ptr< FxIndex > & | fxIndex = nullptr , |
||
const QuantLib::ext::shared_ptr< CorrelationTermStructure > & | correlation = nullptr |
||
) |
Constructor. This is a floating term structure (settlement days is zero)
Definition at line 25 of file blackvolsurfaceproxy.cpp.
|
override |
Definition at line 74 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 75 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 76 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 77 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 78 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 79 of file blackvolsurfaceproxy.hpp.
|
override |
Definition at line 77 of file blackvolsurfaceproxy.cpp.
|
override |
Definition at line 81 of file blackvolsurfaceproxy.cpp.
QuantLib::ext::shared_ptr< BlackVolTermStructure > proxySurface | ( | ) | const |
QuantLib::ext::shared_ptr< EqFxIndexBase > index | ( | ) | const |
QuantLib::ext::shared_ptr< EqFxIndexBase > proxyIndex | ( | ) | const |
|
overrideprotected |
Definition at line 42 of file blackvolsurfaceproxy.cpp.
|
private |
Definition at line 100 of file blackvolsurfaceproxy.hpp.
|
private |
Definition at line 101 of file blackvolsurfaceproxy.hpp.
|
private |
Definition at line 101 of file blackvolsurfaceproxy.hpp.
|
private |
Definition at line 102 of file blackvolsurfaceproxy.hpp.
|
private |
Definition at line 103 of file blackvolsurfaceproxy.hpp.
|
private |
Definition at line 104 of file blackvolsurfaceproxy.hpp.