Skip to content

Commit 9079515

Browse files
Merge branch 'QPR-11181' into 'master'
QPR-11181 more additional results for touch engine Closes QPR-11181 See merge request qs/quantlib!30
2 parents 19630a3 + 97b46a3 commit 9079515

1 file changed

Lines changed: 17 additions & 4 deletions

File tree

ql/pricingengines/vanilla/analyticdigitalamericanengine.cpp

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,21 @@ namespace QuantLib {
5757
Rate riskFreeDiscount =
5858
process_->riskFreeRate()->discount(ex->lastDate());
5959

60+
Real t_ex = process_->blackVolatility()->timeFromReference(ex->lastDate());
61+
Real forward = spot / riskFreeDiscount * dividendDiscount;
62+
6063
results_.additionalResults["spot"] = spot;
64+
results_.additionalResults["forward"] = forward;
6165
results_.additionalResults["strike"] = payoff->strike();
6266
results_.additionalResults["variance"] = variance;
67+
results_.additionalResults["volatility"] = std::sqrt(variance / t_ex);
68+
results_.additionalResults["timeToExpiry"] = t_ex;
6369
results_.additionalResults["riskFreeDiscount"] = riskFreeDiscount;
64-
results_.additionalResults["dividendDiscount"] = dividendDiscount;
65-
70+
results_.additionalResults["dividendDiscount"] = dividendDiscount;
71+
6672
if(ex->payoffAtExpiry()) {
6773
AmericanPayoffAtExpiry pricer(spot, riskFreeDiscount,
68-
dividendDiscount, variance,
74+
dividendDiscount, variance,
6975
payoff, knock_in());
7076
results_.value = pricer.value();
7177
} else {
@@ -81,7 +87,14 @@ namespace QuantLib {
8187
arguments_.exercise->lastDate());
8288
results_.rho = pricer.rho(t);
8389
}
90+
91+
auto coo = ext::dynamic_pointer_cast<CashOrNothingPayoff>(payoff);
92+
Real payout = coo != nullptr ? coo->cashPayoff() : forward;
93+
Real valueToPayoutRatio = results_.value / payout;
94+
95+
results_.additionalResults["payout"] = payout;
96+
results_.additionalResults["discountedTouchProbability"] =
97+
knock_in() ? valueToPayoutRatio : 1.0 - valueToPayoutRatio;
8498
}
8599

86100
}
87-

0 commit comments

Comments
 (0)