Skip to content

Commit 25aa3b5

Browse files
author
Sjogren
committed
Merge remote-tracking branch 'origin/master' into feature/martin_docs1
2 parents 7dea14c + 44d02c0 commit 25aa3b5

6 files changed

Lines changed: 16 additions & 51 deletions

File tree

OREAnalytics/orea/app/analytics/correlationanalytic.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ void CorrelationAnalyticImpl::runAnalytic(const QuantLib::ext::shared_ptr<ore::d
8080
void CorrelationAnalyticImpl::setCorrelationReport(const QuantLib::ext::shared_ptr<ore::data::InMemoryLoader>& loader) {
8181

8282
LOG("Build Correlation Calculator");
83+
QL_REQUIRE(inputs_->benchmarkVarPeriod()!=std::string(), "BenchmarkVarPeriod Required.");
8384
TimePeriod benchmarkVarPeriod(parseListOfValues<Date>(inputs_->benchmarkVarPeriod(), &parseDate),
8485
inputs_->mporDays(), inputs_->mporCalendar());
8586

@@ -98,6 +99,8 @@ void CorrelationAnalyticImpl::setCorrelationReport(const QuantLib::ext::shared_p
9899
*analytic()->configurations().todaysMarketParams, inputs_->continueOnError(), false, true,
99100
inputs_->allowPartialScenarios(), inputs_->iborFallbackConfig(), false, nullptr);
100101

102+
QL_REQUIRE(inputs_->scenarioReader(), "ScenarioReader Required.");
103+
101104
auto scenarios = buildHistoricalScenarioGenerator(
102105
inputs_->scenarioReader(), adjFactors, benchmarkVarPeriod, inputs_->mporCalendar(), inputs_->mporDays(),
103106
analytic()->configurations().simMarketParams, analytic()->configurations().todaysMarketParams,

OREAnalytics/orea/app/analytics/varanalytic.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ void ParametricVarAnalyticImpl::setVarReport(const QuantLib::ext::shared_ptr<ore
103103
varParams, inputs_->getVarSalvagingAlgorithm(), QuantLib::ext::nullopt, std::move(sensiArgs),
104104
inputs_->varBreakDown(), inputs_->useAtParCouponsCurves(), inputs_->useAtParCouponsTrades());
105105
} else {
106+
QL_REQUIRE(inputs_->benchmarkVarPeriod()!=std::string(), "BenchmarkVarPeriod Required.");
106107
TimePeriod benchmarkVarPeriod(parseListOfValues<Date>(inputs_->benchmarkVarPeriod(), &parseDate),
107108
inputs_->mporDays(), inputs_->mporCalendar());
108109

@@ -112,6 +113,8 @@ void ParametricVarAnalyticImpl::setVarReport(const QuantLib::ext::shared_ptr<ore
112113

113114
auto defaultReturnConfig = QuantLib::ext::make_shared<ReturnConfiguration>();
114115

116+
QL_REQUIRE(inputs_->scenarioReader(), "ScenarioReader Required.");
117+
115118
auto scenarios = buildHistoricalScenarioGenerator(
116119
inputs_->scenarioReader(), adjFactors, benchmarkVarPeriod, inputs_->mporCalendar(), inputs_->mporDays(),
117120
analytic()->configurations().simMarketParams, analytic()->configurations().todaysMarketParams,
@@ -159,6 +162,7 @@ void HistoricalSimulationVarAnalyticImpl::setVarReport(
159162
const QuantLib::ext::shared_ptr<ore::data::InMemoryLoader>& loader) {
160163

161164
LOG("Build VaR calculator");
165+
QL_REQUIRE(inputs_->benchmarkVarPeriod()!=std::string(), "BenchmarkVarPeriod Required.");
162166
TimePeriod benchmarkVarPeriod(parseListOfValues<Date>(inputs_->benchmarkVarPeriod(), &parseDate), inputs_->mporDays(), inputs_->mporCalendar());
163167

164168
QuantLib::ext::shared_ptr<ore::data::AdjustmentFactors> adjFactors;
@@ -167,6 +171,8 @@ void HistoricalSimulationVarAnalyticImpl::setVarReport(
167171

168172
auto defaultReturnConfig = QuantLib::ext::make_shared<ReturnConfiguration>();
169173

174+
QL_REQUIRE(inputs_->scenarioReader(), "ScenarioReader Required.");
175+
170176
auto scenarios = buildHistoricalScenarioGenerator(
171177
inputs_->scenarioReader(), adjFactors, benchmarkVarPeriod, inputs_->mporCalendar(), inputs_->mporDays(),
172178
analytic()->configurations().simMarketParams, analytic()->configurations().todaysMarketParams,

OREData/ored/portfolio/fixingdates.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -758,6 +758,12 @@ void FixingDateGetter::visit(CmbCoupon& c) {
758758
void FixingDateGetter::visit(EquityMarginCoupon& c) {
759759
requiredFixings_.addFixingDates(c.fixingDates(), IndexNameTranslator::instance().oreName(c.equityCurve()->name()),
760760
c.date());
761+
for (const auto& d : c.fixingDates()) {
762+
if(c.equityCurve()){
763+
Date endDate = c.equityCurve()->fixingCalendar().advance(d, -1 * Days);
764+
requiredFixings_.addFixingDate(endDate, IndexNameTranslator::instance().oreName(c.equityCurve()->name()), c.date());
765+
}
766+
}
761767
if (c.fxIndex() != nullptr)
762768
requiredFixings_.addFixingDate(c.fixingStartDate(),
763769
IndexNameTranslator::instance().oreName(c.fxIndex()->name()), c.date());

QuantExt/qle/models/piecewiseconstanthelper.cpp

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -119,18 +119,4 @@ PiecewiseConstantHelper3::PiecewiseConstantHelper3(const std::vector<Date>& date
119119
checkTimes(t2_);
120120
}
121121

122-
PiecewiseConstantHelper4::PiecewiseConstantHelper4(const Array& t,
123-
const QuantLib::ext::shared_ptr<Constraint>& constraint)
124-
: t_(t), y_(QuantLib::ext::make_shared<PseudoParameter>(t.size(), *constraint)) {
125-
checkTimes(t_);
126-
}
127-
128-
PiecewiseConstantHelper4::PiecewiseConstantHelper4(const std::vector<Date>& dates,
129-
const Handle<YieldTermStructure>& yts,
130-
const QuantLib::ext::shared_ptr<Constraint>& constraint)
131-
: t_(datesToTimes(dates, yts)),
132-
y_(QuantLib::ext::make_shared<PseudoParameter>(dates.size(), *constraint)) {
133-
checkTimes(t_);
134-
}
135-
136122
} // namespace QuantExt

QuantExt/qle/models/piecewiseconstanthelper.hpp

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -170,30 +170,6 @@ class PiecewiseConstantHelper3 {
170170
mutable std::vector<Real> b_, c_;
171171
};
172172

173-
class PiecewiseConstantHelper4 {
174-
public:
175-
PiecewiseConstantHelper4(const Array& t,
176-
const QuantLib::ext::shared_ptr<QuantLib::Constraint>& constraint = QuantLib::ext::make_shared<QuantLib::NoConstraint>());
177-
PiecewiseConstantHelper4(const std::vector<Date>& dates, const Handle<YieldTermStructure>& yts,
178-
const QuantLib::ext::shared_ptr<QuantLib::Constraint>& constraint = QuantLib::ext::make_shared<QuantLib::NoConstraint>());
179-
180-
const Array& t() const;
181-
const QuantLib::ext::shared_ptr<Parameter> p() const;
182-
/*! this returns the transformed value */
183-
Real y(const Time t) const;
184-
185-
Real direct(const Real x) const;
186-
Real inverse(const Real y) const;
187-
188-
protected:
189-
const Array t_;
190-
/*! y are the raw values in the sense of parameter transformation */
191-
const QuantLib::ext::shared_ptr<PseudoParameter> y_;
192-
193-
private:
194-
mutable std::vector<Real> b_;
195-
};
196-
197173
// inline
198174

199175
inline const Array& PiecewiseConstantHelper1::t() const { return t_; }
@@ -296,14 +272,6 @@ inline void PiecewiseConstantHelper3::update() const {
296272
}
297273
}
298274

299-
inline const Array& PiecewiseConstantHelper4::t() const { return t_; }
300-
301-
inline const QuantLib::ext::shared_ptr<Parameter> PiecewiseConstantHelper4::p() const { return y_; }
302-
303-
inline Real PiecewiseConstantHelper4::direct(const Real x) const { return x * x; }
304-
305-
inline Real PiecewiseConstantHelper4::inverse(const Real y) const { return std::sqrt(y); }
306-
307275
inline Real PiecewiseConstantHelper1::y(const Time t) const {
308276
return rcll_ ? direct(QL_PIECEWISE_FUNCTION(t_, y_->params(), t)) : direct(QL_PIECEWISE_FUNCTION2(t_, y_->params(), t));
309277
}
@@ -320,10 +288,6 @@ inline Real PiecewiseConstantHelper3::y2(const Time t) const {
320288
return direct2(QL_PIECEWISE_FUNCTION(t2_, y2_->params(), t));
321289
}
322290

323-
inline Real PiecewiseConstantHelper4::y(const Time t) const {
324-
return direct(QL_PIECEWISE_FUNCTION2(t_, y_->params(), t));
325-
}
326-
327291
inline Real PiecewiseConstantHelper1::int_y_sqr(const Time t) const {
328292
if (t < 0.0)
329293
return 0.0;

0 commit comments

Comments
 (0)