23#ifndef quantext_black_variance_surface_stddevs_hpp
24#define quantext_black_variance_surface_stddevs_hpp
26#include <ql/math/interpolations/linearinterpolation.hpp>
27#include <ql/termstructures/volatility/equityfx/blackvoltermstructure.hpp>
28#include <ql/termstructures/yieldtermstructure.hpp>
29#include <ql/time/daycounters/actual365fixed.hpp>
30#include <ql/termstructures/yieldtermstructure.hpp>
43 const std::vector<Real>& stdDevs,
44 const std::vector<std::vector<Handle<Quote> > >& blackVolMatrix,
45 const DayCounter& dayCounter,
const QuantLib::ext::shared_ptr<EqFxIndexBase>& index,
46 bool stickyStrike =
false,
bool flatExtrapMoneyness =
false);
54 static void populateVolMatrix(
const QuantLib::Handle<QuantLib::BlackVolTermStructure>& termStructre,
55 std::vector<std::vector<Handle<QuantLib::Quote> > >& quotesToPopulate,
56 const std::vector<Real>& times,
const std::vector<Real>& stdDevPoints,
57 const QuantLib::Interpolation& forwardCurve,
58 const QuantLib::Interpolation atmVolCurve);
61 virtual Real
moneyness(Time t, Real strike)
const override;
62 QuantLib::ext::shared_ptr<EqFxIndexBase>
index_;
Black volatility surface based on forward moneyness.
Abstract Black volatility surface based on moneyness (moneyness defined in subclasses)
std::vector< QuantLib::Real > moneyness() const
Interpolation atmVarCurve_
QuantLib::ext::shared_ptr< EqFxIndexBase > index_
Interpolation forwardCurve_
std::vector< Time > atmTimes_
std::vector< Real > forwards_
std::vector< Real > atmVariances_
static void populateVolMatrix(const QuantLib::Handle< QuantLib::BlackVolTermStructure > &termStructre, std::vector< std::vector< Handle< QuantLib::Quote > > > "esToPopulate, const std::vector< Real > ×, const std::vector< Real > &stdDevPoints, const QuantLib::Interpolation &forwardCurve, const QuantLib::Interpolation atmVolCurve)
bool flatExtrapolateMoneyness_
A common base class for the FX and Equity Indices. Provides a forecast fixing method for time so the ...