24 :
CPIVolatilitySurface(source->settlementDays(), source->calendar(), source->businessDayConvention(),
25 source->dayCounter(), source->observationLag(), source->frequency(),
26 source->indexIsInterpolated()),
27 source_(source), decayMode_(decayMode), originalReferenceDate_(source->referenceDate()) {
29 enableExtrapolation(source->allowsExtrapolation());
42 return Date(std::min(Date::maxDate().serialNumber(), referenceDate().serialNumber() -
44 source_->maxDate().serialNumber()));
47 QL_FAIL(
"unexpected decay mode (" <<
decayMode_ <<
")");
55 Date m = referenceDate() + int(floor(365.25 * length)) * Days;
61 "ForwardVariance not yet supported for DynamicCPiVolatilityStructure");
68 QL_FAIL(
"Unexpected decay mode (" <<
decayMode_ <<
")");
Rate maxStrike() const override
Rate minStrike() const override
DynamicCPIVolatilitySurface(const QuantLib::ext::shared_ptr< CPIVolatilitySurface > &source, ReactionToTimeDecay decayMode=ConstantVariance)
ReactionToTimeDecay decayMode_
Volatility volatilityImpl(Time length, Rate strike) const override
Date maxDate() const override
const Date originalReferenceDate_
const QuantLib::ext::shared_ptr< CPIVolatilitySurface > source_
dynamic zero inflation volatility structure
ReactionToTimeDecay
Reaction to Time Decay.