Skip to content

Commit 68fdcd5

Browse files
disable escrowed dividend model for path dependent options
1 parent 006e5c5 commit 68fdcd5

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

ql/pricingengines/vanilla/fdblackscholesvanillaengine.cpp

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,11 +90,18 @@ namespace QuantLib {
9090

9191
if (divDate <= exerciseDate && divDate >= settlementDate) {
9292
const Real divAmount = (*divIter)->amount();
93-
const DiscountFactor discount =
94-
process_->riskFreeRate()->discount(divDate) /
95-
process_->dividendYield()->discount(divDate);
9693

97-
spotAdjustment -= divAmount * discount;
94+
if (divAmount != 0.0) {
95+
QL_REQUIRE(arguments_.exercise->type()
96+
== Exercise::European,
97+
"Escrowed dividend model expects an European option");
98+
99+
const DiscountFactor discount =
100+
process_->riskFreeRate()->discount(divDate) /
101+
process_->dividendYield()->discount(divDate);
102+
103+
spotAdjustment -= divAmount * discount;
104+
}
98105
}
99106
}
100107

test-suite/dividendoption.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -827,7 +827,6 @@ void DividendOptionTest::testFdAmericanGreeks() {
827827
Date exDate = today + lengths[i]*Years;
828828
ext::shared_ptr<Exercise> exercise(new AmericanExercise(today,exDate));
829829
testFdGreeks(today,exercise,FdBlackScholesVanillaEngine::Spot);
830-
testFdGreeks(today,exercise,FdBlackScholesVanillaEngine::Escrowed);
831830
}
832831
}
833832

@@ -1028,7 +1027,6 @@ void DividendOptionTest::testFdAmericanWithDividendToday() {
10281027
ext::shared_ptr<Exercise> exercise(new AmericanExercise(today,exDate));
10291028

10301029
testFdDividendAtTZero(today,exercise,FdBlackScholesVanillaEngine::Spot);
1031-
testFdDividendAtTZero(today,exercise,FdBlackScholesVanillaEngine::Escrowed);
10321030
}
10331031

10341032

0 commit comments

Comments
 (0)