Skip to content

Commit bcbfefa

Browse files
committed
QPR-11988 fix script engine for fx barrier
1 parent f3dea4a commit bcbfefa

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

OREData/ored/portfolio/builders/fxbarrieroption.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ QuantLib::ext::shared_ptr<ore::data::Trade> FxBarrierOptionScriptedEngineBuilder
3838
std::string startDate = fxKiKoBarrierOption->startDate();
3939
std::string exerciseDate = optionData.exerciseDates().front();
4040

41-
ScheduleRules rule(startDate, exerciseDate, "1D", fxKiKoBarrierOption->calendar(), "Following", "Following", "Backward");
41+
ScheduleRules rule(startDate, exerciseDate, "1D", fxKiKoBarrierOption->calendar(), "Following", "Unadjusted", "Backward");
4242
ScheduleData barrierMonitoringDates(rule);
4343

4444
//! Empty transatlantic barrier
@@ -67,7 +67,7 @@ QuantLib::ext::shared_ptr<ore::data::Trade> FxBarrierOptionScriptedEngineBuilder
6767
std::vector<BarrierData> barriers = fxKiKoBarrierOption->barriers();
6868
auto barrierOption = QuantLib::ext::make_shared<GenericBarrierOption>(
6969
underlying, optionData, barriers, barrierMonitoringDates, transatlanticBarrier, domesticCurrency,
70-
to_string(paymentDate), to_string(qty), to_string(strike), "", "");
70+
to_string(paymentDate), to_string(qty), to_string(strike), "", "KoAlways");
7171

7272
barrierOption->build(engineFactory);
7373
return barrierOption;

OREData/ored/portfolio/fxkikobarrieroption.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,11 @@ void FxKIKOBarrierOption::build(const QuantLib::ext::shared_ptr<EngineFactory>&
8585
QL_REQUIRE(!barriers_[0].overrideTriggered() && !barriers_[1].overrideTriggered(),
8686
"FxKIKOBarrierOption::build(): OverrideTriggered not supported by this instrument type.");
8787

88-
QuantLib::ext::shared_ptr<EngineBuilder> builder = engineFactory->builder("FxOption");
89-
QL_REQUIRE(builder, "No FxOption builder found");
88+
9089
QuantLib::ext::shared_ptr<FxBarrierOptionScriptedEngineBuilder> fxEuropeanBarrierOptionBuilder;
9190
try {
9291
fxEuropeanBarrierOptionBuilder = QuantLib::ext::dynamic_pointer_cast<FxBarrierOptionScriptedEngineBuilder>(
93-
engineFactory->builder(tradeType_));
92+
engineFactory->builder("FxBarrierOption"));
9493
DLOG("FxEuropeanBarrierOptionScriptedEngineBuilder found for trade " << tradeType_);
9594
} catch (...) {
9695
// no delegating builder found
@@ -110,7 +109,8 @@ void FxKIKOBarrierOption::build(const QuantLib::ext::shared_ptr<EngineFactory>&
110109

111110
return;
112111
}
113-
112+
QuantLib::ext::shared_ptr<EngineBuilder> builder = engineFactory->builder("FxOption");
113+
QL_REQUIRE(builder, "No FxOption builder found");
114114

115115
Currency boughtCcy = parseCurrency(boughtCurrency_);
116116
Currency soldCcy = parseCurrency(soldCurrency_);

0 commit comments

Comments
 (0)