Skip to content

Commit 99edc32

Browse files
committed
QPR-10041 bwd compatible add results report
1 parent fc3e95a commit 99edc32

4 files changed

Lines changed: 12 additions & 11 deletions

File tree

OREData/ored/scripting/models/blackscholes.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ void BlackScholes::generatePaths() const {
156156
drift, sqrtCov);
157157
}
158158

159-
setAdditionalResults();
159+
setAdditionalResults(false);
160160
} // generatePathsBs()
161161

162162
void BlackScholes::populatePathValues(const Size nSamples, std::map<Date, std::vector<RandomVariable>>& paths,

OREData/ored/scripting/models/blackscholeslocalvolbase.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,24 +113,26 @@ void BlackScholesLocalVolBase::performCalculationsFd(const bool localVol) const
113113

114114
// 6 set additional results
115115

116-
setAdditionalResults();
116+
setAdditionalResults(localVol);
117117
}
118118

119-
void BlackScholesLocalVolBase::setAdditionalResults() const {
119+
void BlackScholesLocalVolBase::setAdditionalResults(const bool localVol) const {
120+
121+
std::string label = localVol ? "LocalVol" : "BlackScholes";
120122

121123
Matrix correlation = getCorrelation();
122124

123125
for (Size i = 0; i < indices_.size(); ++i) {
124126
for (Size j = 0; j < i; ++j) {
125-
additionalResults_["BlackScholes.Correlation_" + indices_[i].name() + "_" + indices_[j].name()] =
127+
additionalResults_[label + ".Correlation_" + indices_[i].name() + "_" + indices_[j].name()] =
126128
correlation(i, j);
127129
}
128130
}
129131

130132
std::vector<Real> calibrationStrikes = getCalibrationStrikes();
131133

132134
for (Size i = 0; i < calibrationStrikes.size(); ++i) {
133-
additionalResults_["BlackScholesLocalVolBase.CalibrationStrike_" + indices_[i].name()] =
135+
additionalResults_[label + ".CalibrationStrike_" + indices_[i].name()] =
134136
(calibrationStrikes[i] == Null<Real>() ? "ATMF" : std::to_string(calibrationStrikes[i]));
135137
}
136138

@@ -143,11 +145,10 @@ void BlackScholesLocalVolBase::setAdditionalResults() const {
143145
Real volatility = model_->generalizedBlackScholesProcesses()[i]->blackVolatility()->blackVol(
144146
t, (calibrationStrikes.empty() || calibrationStrikes[i] == Null<Real>()) ? forward
145147
: calibrationStrikes[i]);
146-
additionalResults_["BlackScholesLocalVolBase.Volatility_" + indices_[i].name() + "_" +
147-
ore::data::to_string(d)] = volatility;
148+
additionalResults_[label + ".Volatility_" + indices_[i].name() + "_" + ore::data::to_string(d)] =
149+
volatility;
148150
}
149-
additionalResults_["BlackScholesLocalVolBase.Forward_" + indices_[i].name() + "_" +
150-
ore::data::to_string(d)] = forward;
151+
additionalResults_[label + ".Forward_" + indices_[i].name() + "_" + ore::data::to_string(d)] = forward;
151152
++timeStep;
152153
}
153154
}

OREData/ored/scripting/models/blackscholeslocalvolbase.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class BlackScholesLocalVolBase : public AssetModel {
4141
Real compoundingFactor(const Size indexNo, const Date& d1, const Date& d2) const override;
4242

4343
void performCalculationsFd(const bool localVol) const;
44-
void setAdditionalResults() const;
44+
void setAdditionalResults(const bool localVol) const;
4545
};
4646

4747
} // namespace data

OREData/ored/scripting/models/localvol.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ void LocalVol::generatePaths() const {
107107
correlation, sqrtCorr, deterministicDrift, eqComIdx, t, dt, sqrtdt);
108108
}
109109

110-
setAdditionalResults();
110+
setAdditionalResults(true);
111111
} // generatePathsLv()
112112

113113
void LocalVol::populatePathValuesLv(const Size nSamples, std::map<Date, std::vector<RandomVariable>>& paths,

0 commit comments

Comments
 (0)