@@ -78,7 +78,7 @@ createSwaptionHelper(const E& expiry, const T& term, const Handle<SwaptionVolati
7878 settlementDays, averagingMethod);
7979 auto sd = swaptionData (helper);
8080
81- // ensure point 1 from above
81+ // ensure fallback rule 1
8282
8383 Real atmStdDev = svts->volatility (sd.timeToExpiry , sd.swapLength , sd.atmForward ) * std::sqrt (sd.timeToExpiry );
8484 if (vt == ShiftedLognormal) {
@@ -99,35 +99,6 @@ createSwaptionHelper(const E& expiry, const T& term, const Handle<SwaptionVolati
9999 fallbackType = ore::data::LgmBuilder::FallbackType::FallbackRule1;
100100 }
101101
102- // ensure point 2 from above
103-
104- auto mv = std::abs (helper->marketValue ());
105- if (mv < ore::data::LgmBuilder::mmv) {
106- DLOG (" Helper with expiry " << expiry << " and term " << term << " has an absolute market value of "
107- << std::scientific << mv << " which is lower than minimum market value "
108- << ore::data::LgmBuilder::mmv << " so switching to helper with atm rate "
109- << sd.atmForward );
110- strike = sd.atmForward ;
111- helper = QuantLib::ext::make_shared<SwaptionHelper>(expiry, term, vol, iborIndex, fixedLegTenor, fixedDayCounter,
112- floatDayCounter, yts, errorType, strike, 1.0 , vt, shift,
113- settlementDays, averagingMethod);
114- fallbackType = ore::data::LgmBuilder::FallbackType::FallbackRule2;
115- }
116-
117- // ensure point 3 from above
118-
119- mv = std::abs (helper->marketValue ());
120- if (errorType != BlackCalibrationHelper::PriceError && mv < ore::data::LgmBuilder::smv) {
121- errorType = BlackCalibrationHelper::PriceError;
122- DLOG (" Helper with expiry " << expiry << " and term " << term << " has an absolute market value of "
123- << std::scientific << mv << " which is lower than " << ore::data::LgmBuilder::smv
124- << " so switching to a price error helper." );
125- helper = QuantLib::ext::make_shared<SwaptionHelper>(expiry, term, vol, iborIndex, fixedLegTenor, fixedDayCounter,
126- floatDayCounter, yts, errorType, strike, 1.0 , vt, shift,
127- settlementDays, averagingMethod);
128- fallbackType = ore::data::LgmBuilder::FallbackType::FallbackRule3;
129- }
130-
131102 DLOG (" Created swaption helper with expiry " << expiry << " and term " << term << " : vol=" << vol->value ()
132103 << " , index=" << iborIndex->name () << " , strike=" << strike
133104 << " , shift=" << shift);
0 commit comments