26#ifndef quantlib_sabr_interpolated_smile_section_hpp
27#define quantlib_sabr_interpolated_smile_section_hpp
29#include <ql/handle.hpp>
30#include <ql/patterns/lazyobject.hpp>
31#include <ql/termstructures/volatility/smilesection.hpp>
32#include <ql/math/interpolations/sabrinterpolation.hpp>
33#include <ql/time/daycounters/actual365fixed.hpp>
45 const Date& optionDate,
47 const std::vector<Rate>& strikes,
48 bool hasFloatingStrikes,
55 bool isAlphaFixed =
false,
56 bool isBetaFixed =
false,
57 bool isNuFixed =
false,
58 bool isRhoFixed =
false,
59 bool vegaWeighted =
true,
60 ext::shared_ptr<EndCriteria>
endCriteria = ext::shared_ptr<EndCriteria>(),
61 ext::shared_ptr<OptimizationMethod> method = ext::shared_ptr<OptimizationMethod>(),
66 const Date& optionDate,
68 const std::vector<Rate>& strikes,
69 bool hasFloatingStrikes,
71 const std::vector<Volatility>& vols,
76 bool isAlphaFixed =
false,
77 bool isBetaFixed =
false,
78 bool isNuFixed =
false,
79 bool isRhoFixed =
false,
80 bool vegaWeighted =
true,
81 ext::shared_ptr<EndCriteria>
endCriteria = ext::shared_ptr<EndCriteria>(),
82 ext::shared_ptr<OptimizationMethod> method = ext::shared_ptr<OptimizationMethod>(),
126 mutable std::vector<Volatility>
vols_;
133 const ext::shared_ptr<OptimizationMethod>
method_;
Actual/365 (Fixed) day count convention.
Shared handle to an observable.
Framework for calculation on demand and result caching.
virtual void calculate() const
Real atmLevel() const override
const Handle< Quote > forward_
Market data.
void performCalculations() const override
const ext::shared_ptr< EndCriteria > endCriteria_
bool isAlphaFixed_
Sabr interpolation settings.
Real minStrike() const override
EndCriteria::Type endCriteria() const
ext::shared_ptr< SABRInterpolation > sabrInterpolation_
void createInterpolation() const
Creates the mutable SABRInterpolation.
std::vector< Rate > actualStrikes_
Only strikes corresponding to valid market data.
const ext::shared_ptr< OptimizationMethod > method_
Real varianceImpl(Rate strike) const override
Real alpha_
Sabr parameters.
std::vector< Volatility > vols_
std::vector< Rate > strikes_
const Handle< Quote > atmVolatility_
Real maxStrike() const override
std::vector< Handle< Quote > > volHandles_
Volatility volatilityImpl(Rate strike) const override
interest rate volatility smile section
virtual Rate shift() const
Real Volatility
volatility