Skip to content

Commit d1faca6

Browse files
damienbarkerjenkins
authored andcommitted
QPR-11370 move proxy surface check to scenariosimmarket
1 parent e80aaf2 commit d1faca6

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

OREAnalytics/orea/scenario/scenariosimmarket.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <orea/scenario/scenariosimmarket.hpp>
2626
#include <orea/scenario/simplescenario.hpp>
2727
#include <qle/termstructures/credit/basecorrelationstructure.hpp>
28+
#include <qle/termstructures/proxyoptionletvolatility.hpp>
2829
#include <ql/instruments/makecapfloor.hpp>
2930
#include <ql/math/interpolations/loginterpolation.hpp>
3031
#include <ql/termstructures/credit/interpolatedsurvivalprobabilitycurve.hpp>
@@ -1064,6 +1065,10 @@ ScenarioSimMarket::ScenarioSimMarket(
10641065
} else {
10651066
string decayModeString = parameters->capFloorVolDecayMode();
10661067
ReactionToTimeDecay decayMode = parseDecayMode(decayModeString);
1068+
1069+
QL_REQUIRE(!boost::dynamic_pointer_cast<ProxyOptionletVolatility>(wrapper),
1070+
"DynamicOptionletVolatilityStructure does not support ProxyOptionletVolatility surface.");
1071+
10671072
boost::shared_ptr<OptionletVolatilityStructure> capletVol =
10681073
boost::make_shared<DynamicOptionletVolatilityStructure>(*wrapper, 0, NullCalendar(),
10691074
decayMode);

QuantExt/qle/termstructures/dynamicoptionletvolatilitystructure.cpp

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
*/
1818

1919
#include <qle/termstructures/dynamicoptionletvolatilitystructure.hpp>
20-
#include <qle/termstructures/proxyoptionletvolatility.hpp>
2120

2221
namespace QuantExt {
2322
DynamicOptionletVolatilityStructure::DynamicOptionletVolatilityStructure(
@@ -48,9 +47,7 @@ Date DynamicOptionletVolatilityStructure::maxDate() const {
4847
QL_FAIL("unexpected decay mode (" << decayMode_ << ")");
4948
}
5049

51-
void DynamicOptionletVolatilityStructure::update() {
52-
if (boost::dynamic_pointer_cast<ProxyOptionletVolatility>(source_))
53-
QL_FAIL("DynamicOptionletVolatilityStructure does not support ProxyOptionletVolatility surface for moving evalution date.");
50+
void DynamicOptionletVolatilityStructure::update() {
5451
TermStructure::update();
5552
}
5653

0 commit comments

Comments
 (0)