26 const Handle<BlackVolTermStructure>& surface)
27 :
BlackVolTermStructure(0, atm->calendar(), atm->businessDayConvention(), atm->dayCounter()), atm_(atm),
29 enableExtrapolation(atm->allowsExtrapolation());
31 registerWith(surface);
35 return atm_->dayCounter();
39 return atm_->maxDate();
43 return atm_->maxTime();
47 return atm_->referenceDate();
51 return atm_->calendar();
55 return atm_->settlementDays();
72 Real s =
surface_->blackVol(t, strike,
true) -
surface_->blackVol(t, Null<Real>(),
true);
73 Real v =
atm_->blackVol(t, Null<Real>(),
true);
surface that combines an ATM curve and vol spreads from a surface
Calendar calendar() const override
Rate maxStrike() const override
Rate minStrike() const override
void deepUpdate() override
BlackVolatilityConstantSpread(const Handle< BlackVolTermStructure > &atm, const Handle< BlackVolTermStructure > &surface)
const Date & referenceDate() const override
Handle< BlackVolTermStructure > surface_
Natural settlementDays() const override
DayCounter dayCounter() const override
Date maxDate() const override
Handle< BlackVolTermStructure > atm_
Real blackVarianceImpl(Time t, Real strike) const override
Volatility blackVolImpl(Time t, Rate strike) const override
Time maxTime() const override