@@ -31,8 +31,8 @@ namespace QuantExt {
3131BlackVarianceSurfaceMoneyness::BlackVarianceSurfaceMoneyness (
3232 const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times, const std::vector<Real>& moneyness,
3333 const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix, const DayCounter& dayCounter, bool stickyStrike,
34- bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation)
35- : BlackVarianceTermStructure(0 , cal, Following, dayCounter), stickyStrike_(stickyStrike), spot_(spot),
34+ bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation, const VolatilityType type, const Real shift )
35+ : BlackVarianceTermStructure(0 , cal, Following, dayCounter, type, shift ), stickyStrike_(stickyStrike), spot_(spot),
3636 times_ (times), moneyness_(moneyness), flatExtrapMoneyness_(flatExtrapMoneyness),
3737 timeExtrapolation_(timeExtrapolation), quotes_(blackVolMatrix) {
3838 init ();
@@ -42,8 +42,9 @@ BlackVarianceSurfaceMoneyness::BlackVarianceSurfaceMoneyness(
4242 const Date& referenceDate, const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times,
4343 const std::vector<Real>& moneyness, const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix,
4444 const DayCounter& dayCounter, bool stickyStrike, bool flatExtrapMoneyness,
45- BlackVolTimeExtrapolation timeExtrapolation)
46- : BlackVarianceTermStructure(referenceDate, cal, Following, dayCounter), stickyStrike_(stickyStrike), spot_(spot),
45+ BlackVolTimeExtrapolation timeExtrapolation, const VolatilityType type, const Real shift)
46+ : BlackVarianceTermStructure(referenceDate, cal, Following, dayCounter, type, shift),
47+ stickyStrike_(stickyStrike), spot_(spot),
4748 times_(times), moneyness_(moneyness), flatExtrapMoneyness_(flatExtrapMoneyness),
4849 timeExtrapolation_(timeExtrapolation), quotes_(blackVolMatrix) {
4950 init ();
@@ -126,16 +127,17 @@ Real BlackVarianceSurfaceMoneyness::blackVarianceMoneyness(Time t, Real m) const
126127BlackVarianceSurfaceMoneynessSpot::BlackVarianceSurfaceMoneynessSpot (
127128 const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times, const std::vector<Real>& moneyness,
128129 const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix, const DayCounter& dayCounter, bool stickyStrike,
129- bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation)
130+ bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation, const VolatilityType type, const Real shift )
130131 : BlackVarianceSurfaceMoneyness(cal, spot, times, moneyness, blackVolMatrix, dayCounter, stickyStrike,
131- flatExtrapMoneyness, timeExtrapolation) {}
132+ flatExtrapMoneyness, timeExtrapolation, type, shift ) {}
132133
133134BlackVarianceSurfaceMoneynessSpot::BlackVarianceSurfaceMoneynessSpot (
134135 const Date& referenceDate, const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times,
135136 const std::vector<Real>& moneyness, const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix,
136- const DayCounter& dayCounter, bool stickyStrike, bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation)
137+ const DayCounter& dayCounter, bool stickyStrike, bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation,
138+ const VolatilityType type, const Real shift)
137139 : BlackVarianceSurfaceMoneyness(referenceDate, cal, spot, times, moneyness, blackVolMatrix, dayCounter,
138- stickyStrike, flatExtrapMoneyness, timeExtrapolation) {}
140+ stickyStrike, flatExtrapMoneyness, timeExtrapolation, type, shift ) {}
139141
140142Real BlackVarianceSurfaceMoneynessSpot::moneyness (Time, Real strike) const {
141143 if (strike == Null<Real>() || strike == 0 ) {
@@ -157,9 +159,9 @@ BlackVarianceSurfaceMoneynessForward::BlackVarianceSurfaceMoneynessForward(
157159 const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times, const std::vector<Real>& moneyness,
158160 const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix, const DayCounter& dayCounter,
159161 const Handle<YieldTermStructure>& forTS, const Handle<YieldTermStructure>& domTS, bool stickyStrike,
160- bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation)
162+ bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation, const VolatilityType type, const Real shift )
161163 : BlackVarianceSurfaceMoneyness(cal, spot, times, moneyness, blackVolMatrix, dayCounter, stickyStrike,
162- flatExtrapMoneyness, timeExtrapolation),
164+ flatExtrapMoneyness, timeExtrapolation, type, shift ),
163165 forTS_(forTS), domTS_(domTS) {
164166 init ();
165167}
@@ -168,9 +170,10 @@ BlackVarianceSurfaceMoneynessForward::BlackVarianceSurfaceMoneynessForward(
168170 const Date& referenceDate, const Calendar& cal, const Handle<Quote>& spot, const std::vector<Time>& times,
169171 const std::vector<Real>& moneyness, const std::vector<std::vector<Handle<Quote>>>& blackVolMatrix,
170172 const DayCounter& dayCounter, const Handle<YieldTermStructure>& forTS, const Handle<YieldTermStructure>& domTS,
171- bool stickyStrike, bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation)
173+ bool stickyStrike, bool flatExtrapMoneyness, BlackVolTimeExtrapolation timeExtrapolation,
174+ const VolatilityType type, const Real shift)
172175 : BlackVarianceSurfaceMoneyness(referenceDate, cal, spot, times, moneyness, blackVolMatrix, dayCounter,
173- stickyStrike, flatExtrapMoneyness, timeExtrapolation),
176+ stickyStrike, flatExtrapMoneyness, timeExtrapolation, type, shift ),
174177 forTS_(forTS), domTS_(domTS) {
175178 init ();
176179}
0 commit comments