Skip to content

Commit 05a43ba

Browse files
Farah Khashmanjenkins
authored andcommitted
QPR-12288: merge update
2 parents 411dbd7 + 5c3503c commit 05a43ba

1,538 files changed

Lines changed: 17534 additions & 17523 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

App/ore.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ int main(int argc, char** argv) {
7676
string inputFile(argv[1]);
7777

7878
try {
79-
auto params = boost::make_shared<Parameters>();
79+
auto params = QuantLib::ext::make_shared<Parameters>();
8080
params->fromFile(inputFile);
8181
OREApp ore(params, true);
8282
ore.run();

OREAnalytics/orea/aggregation/collateralaccount.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ namespace ore {
3535
using namespace data;
3636
namespace analytics {
3737

38-
CollateralAccount::CollateralAccount(const boost::shared_ptr<NettingSetDefinition>& csaDef, const Date& date_t0)
38+
CollateralAccount::CollateralAccount(const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef, const Date& date_t0)
3939
: csaDef_(csaDef), balance_t0_(0.0) {
4040
accountBalances_.push_back(balance_t0_);
4141
accountDates_.push_back(date_t0);
4242
}
4343

44-
CollateralAccount::CollateralAccount(const boost::shared_ptr<NettingSetDefinition>& csaDef, const Real& balance_t0,
44+
CollateralAccount::CollateralAccount(const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef, const Real& balance_t0,
4545
const Date& date_t0)
4646
: csaDef_(csaDef), balance_t0_(balance_t0) {
4747
accountBalances_.push_back(balance_t0_);

OREAnalytics/orea/aggregation/collateralaccount.hpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
#include <ql/time/date.hpp>
3030

31-
#include <boost/shared_ptr.hpp>
31+
#include <ql/shared_ptr.hpp>
3232

3333
namespace ore {
3434
namespace analytics {
@@ -56,12 +56,12 @@ class CollateralAccount {
5656
CollateralAccount() {}
5757
//! Constructor assuming initial collateral account balance is zero
5858
CollateralAccount( //! CSA details including threshold, minimum transfer amount, margining frequency etc
59-
const boost::shared_ptr<NettingSetDefinition>& csaDef,
59+
const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef,
6060
//! Today's date
6161
const Date& date_t0);
6262
//! Constructor taking an initial collateral account balance
6363
CollateralAccount( //! CSA details including threshold, minimum transfer amount, margining frequency etc
64-
const boost::shared_ptr<NettingSetDefinition>& csaDef,
64+
const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef,
6565
//! Initial collateral account balance
6666
const Real& balance_t0,
6767
//! Today's date
@@ -102,7 +102,7 @@ class CollateralAccount {
102102
//! Inspectors
103103
//@{
104104
/*! csa (netting set) definition */
105-
boost::shared_ptr<NettingSetDefinition> csaDef() const { return csaDef_; }
105+
QuantLib::ext::shared_ptr<NettingSetDefinition> csaDef() const { return csaDef_; }
106106
/*! account balance at start date */
107107
Real balance_t0() const { return balance_t0_; }
108108
/*! most up-to-date account balance */
@@ -136,7 +136,7 @@ class CollateralAccount {
136136
void closeAccount(const Date& closeDate);
137137

138138
private:
139-
boost::shared_ptr<NettingSetDefinition> csaDef_;
139+
QuantLib::ext::shared_ptr<NettingSetDefinition> csaDef_;
140140
Real balance_t0_;
141141
vector<Real> accountBalances_;
142142
vector<Date> accountDates_;

OREAnalytics/orea/aggregation/collatexposurehelper.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ std::ostream& operator<<(std::ostream& out, CollateralExposureHelper::Calculatio
5757
return out;
5858
}
5959

60-
Real CollateralExposureHelper::marginRequirementCalc(const boost::shared_ptr<CollateralAccount>& collat,
60+
Real CollateralExposureHelper::marginRequirementCalc(const QuantLib::ext::shared_ptr<CollateralAccount>& collat,
6161
const Real& uncollatValue, const Date& simulationDate) {
6262
// first step, make sure collateral balance is up to date.
6363
// collat->updateAccountBalance(simulationDate);
@@ -80,7 +80,7 @@ Real CollateralExposureHelper::marginRequirementCalc(const boost::shared_ptr<Col
8080
}
8181

8282
Real CollateralExposureHelper::creditSupportAmount(
83-
const boost::shared_ptr<ore::data::NettingSetDefinition>& nettingSet,
83+
const QuantLib::ext::shared_ptr<ore::data::NettingSetDefinition>& nettingSet,
8484
const Real& uncollatValueCsaCur) {
8585

8686
Real ia = nettingSet->csaDetails()->independentAmountHeld();
@@ -152,7 +152,7 @@ Real CollateralExposureHelper::estimateUncollatValue(const Date& simulationDate,
152152
return newPv;
153153
}
154154

155-
void CollateralExposureHelper::updateMarginCall(const boost::shared_ptr<CollateralAccount>& collat,
155+
void CollateralExposureHelper::updateMarginCall(const QuantLib::ext::shared_ptr<CollateralAccount>& collat,
156156
const Real& uncollatValue, const Date& simulationDate,
157157
const Real& annualisedZeroRate, const CalculationType& calcType,
158158
const bool& eligMarginReqDateUs, const bool& eligMarginReqDateCtp) {
@@ -186,12 +186,12 @@ void CollateralExposureHelper::updateMarginCall(const boost::shared_ptr<Collater
186186
}
187187
}
188188

189-
boost::shared_ptr<vector<boost::shared_ptr<CollateralAccount>>> CollateralExposureHelper::collateralBalancePaths(
190-
const boost::shared_ptr<NettingSetDefinition>& csaDef, const Real& nettingSetPv, const Date& date_t0,
189+
QuantLib::ext::shared_ptr<vector<QuantLib::ext::shared_ptr<CollateralAccount>>> CollateralExposureHelper::collateralBalancePaths(
190+
const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef, const Real& nettingSetPv, const Date& date_t0,
191191
const vector<vector<Real>>& nettingSetValues, const Date& nettingSet_maturity, const vector<Date>& dateGrid,
192192
const Real& csaFxTodayRate, const vector<vector<Real>>& csaFxScenarioRates, const Real& csaTodayCollatCurve,
193193
const vector<vector<Real>>& csaScenCollatCurves, const CalculationType& calcType,
194-
const boost::shared_ptr<CollateralBalance>& balance) {
194+
const QuantLib::ext::shared_ptr<CollateralBalance>& balance) {
195195

196196
try {
197197
// step 1; build a collateral account object, assuming t0 VM balance from the balance object (zero balance if missing),
@@ -206,7 +206,7 @@ boost::shared_ptr<vector<boost::shared_ptr<CollateralAccount>>> CollateralExposu
206206
DLOG("initial collateral balance not found");
207207
}
208208

209-
boost::shared_ptr<CollateralAccount> tmpAcc(new CollateralAccount(csaDef, initialBalance, date_t0));
209+
QuantLib::ext::shared_ptr<CollateralAccount> tmpAcc(new CollateralAccount(csaDef, initialBalance, date_t0));
210210
DLOG("tmp initial collateral balance: " << tmpAcc->balance_t0());
211211
DLOG("tmp current collateral balance: " << tmpAcc->accountBalance());
212212

@@ -218,15 +218,15 @@ boost::shared_ptr<vector<boost::shared_ptr<CollateralAccount>>> CollateralExposu
218218
DLOG("base current collateral balance: " << bal_t0 << ", " << baseAcc.accountBalance());
219219

220220
// step 3; build an empty container for the return value(s)
221-
boost::shared_ptr<vector<boost::shared_ptr<CollateralAccount>>> scenarioCollatPaths(
222-
new vector<boost::shared_ptr<CollateralAccount>>());
221+
QuantLib::ext::shared_ptr<vector<QuantLib::ext::shared_ptr<CollateralAccount>>> scenarioCollatPaths(
222+
new vector<QuantLib::ext::shared_ptr<CollateralAccount>>());
223223

224224
// step 4; start loop over scenarios
225225
Size numScenarios = nettingSetValues.front().size();
226226
QL_REQUIRE(numScenarios == csaFxScenarioRates.front().size(), "netting values -v- scenario FX rate mismatch");
227227
Date simEndDate = std::min(nettingSet_maturity, dateGrid.back()) + csaDef->csaDetails()->marginPeriodOfRisk();
228228
for (unsigned i = 0; i < numScenarios; i++) {
229-
boost::shared_ptr<CollateralAccount> collat(new CollateralAccount(baseAcc));
229+
QuantLib::ext::shared_ptr<CollateralAccount> collat(new CollateralAccount(baseAcc));
230230
Date tmpDate = date_t0; // the date which gets evolved
231231
Date nextMarginReqDateUs = date_t0;
232232
Date nextMarginReqDateCtp = date_t0;

OREAnalytics/orea/aggregation/collatexposurehelper.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class CollateralExposureHelper {
7171
- minimum transfer amount
7272
- independent amount
7373
*/
74-
static Real marginRequirementCalc(const boost::shared_ptr<CollateralAccount>& collat, const Real& uncollatValue,
74+
static Real marginRequirementCalc(const QuantLib::ext::shared_ptr<CollateralAccount>& collat, const Real& uncollatValue,
7575
const Date& simulationDate);
7676

7777
/*!
@@ -87,7 +87,7 @@ class CollateralExposureHelper {
8787
/*!
8888
Checks if margin call is in need of update, and updates if necessary
8989
*/
90-
static void updateMarginCall(const boost::shared_ptr<CollateralAccount>& collat, const Real& uncollatValue,
90+
static void updateMarginCall(const QuantLib::ext::shared_ptr<CollateralAccount>& collat, const Real& uncollatValue,
9191
const Date& simulationDate, const Real& accrualFactor,
9292
const CalculationType& calcType = Symmetric, const bool& eligMarginReqDateUs = true,
9393
const bool& eligMarginReqDateCtp = true);
@@ -97,19 +97,19 @@ class CollateralExposureHelper {
9797
All calculations done in CSA currency
9898
*/
9999
static Real creditSupportAmount(
100-
const boost::shared_ptr<ore::data::NettingSetDefinition>& nettingSet,
100+
const QuantLib::ext::shared_ptr<ore::data::NettingSetDefinition>& nettingSet,
101101
const Real& uncollatValueCsaCur);
102102

103103
/*!
104104
Takes a netting set (and scenario exposures) as input
105105
and returns collateral balance paths per scenario
106106
*/
107-
static boost::shared_ptr<vector<boost::shared_ptr<CollateralAccount>>> collateralBalancePaths(
108-
const boost::shared_ptr<NettingSetDefinition>& csaDef, const Real& nettingSetPv, const Date& date_t0,
107+
static QuantLib::ext::shared_ptr<vector<QuantLib::ext::shared_ptr<CollateralAccount>>> collateralBalancePaths(
108+
const QuantLib::ext::shared_ptr<NettingSetDefinition>& csaDef, const Real& nettingSetPv, const Date& date_t0,
109109
const vector<vector<Real>>& nettingSetValues, const Date& nettingSet_maturity, const vector<Date>& dateGrid,
110110
const Real& csaFxTodayRate, const vector<vector<Real>>& csaFxScenarioRates, const Real& csaTodayCollatCurve,
111111
const vector<vector<Real>>& csaScenCollatCurves, const CalculationType& calcType = Symmetric,
112-
const boost::shared_ptr<CollateralBalance>& balance = boost::shared_ptr<CollateralBalance>());
112+
const QuantLib::ext::shared_ptr<CollateralBalance>& balance = QuantLib::ext::shared_ptr<CollateralBalance>());
113113
};
114114

115115
//! Convert text representation to CollateralExposureHelper::CalculationType

OREAnalytics/orea/aggregation/creditmigrationcalculator.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ namespace ore {
2323
namespace analytics {
2424

2525
CreditMigrationCalculator::CreditMigrationCalculator(
26-
const boost::shared_ptr<Portfolio>& portfolio,
27-
const boost::shared_ptr<CreditSimulationParameters>& creditSimulationParameters,
28-
const boost::shared_ptr<NPVCube>& cube, const boost::shared_ptr<CubeInterpretation> cubeInterpretation,
29-
const boost::shared_ptr<NPVCube>& nettedCube,
30-
const boost::shared_ptr<AggregationScenarioData>& aggregationScenarioData,
26+
const QuantLib::ext::shared_ptr<Portfolio>& portfolio,
27+
const QuantLib::ext::shared_ptr<CreditSimulationParameters>& creditSimulationParameters,
28+
const QuantLib::ext::shared_ptr<NPVCube>& cube, const QuantLib::ext::shared_ptr<CubeInterpretation> cubeInterpretation,
29+
const QuantLib::ext::shared_ptr<NPVCube>& nettedCube,
30+
const QuantLib::ext::shared_ptr<AggregationScenarioData>& aggregationScenarioData,
3131
const std::vector<Real>& creditMigrationDistributionGrid, const std::vector<Size>& creditMigrationTimeSteps,
3232
const Matrix& creditStateCorrelationMatrix, const std::string baseCurrency)
3333
: portfolio_(portfolio), creditSimulationParameters_(creditSimulationParameters), cube_(cube),

OREAnalytics/orea/aggregation/creditmigrationcalculator.hpp

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
#include <orea/cube/npvcube.hpp>
2929
#include <ored/portfolio/portfolio.hpp>
3030

31-
#include <boost/shared_ptr.hpp>
31+
#include <ql/shared_ptr.hpp>
3232

3333
namespace ore {
3434
namespace analytics {
@@ -41,12 +41,12 @@ using namespace std;
4141
//! Credit Migration Calculator
4242
class CreditMigrationCalculator {
4343
public:
44-
CreditMigrationCalculator(const boost::shared_ptr<Portfolio>& portfolio,
45-
const boost::shared_ptr<CreditSimulationParameters>& creditSimulationParameters,
46-
const boost::shared_ptr<NPVCube>& cube,
47-
const boost::shared_ptr<CubeInterpretation> cubeInterpretation,
48-
const boost::shared_ptr<NPVCube>& nettedcube,
49-
const boost::shared_ptr<AggregationScenarioData>& aggregationScenarioData,
44+
CreditMigrationCalculator(const QuantLib::ext::shared_ptr<Portfolio>& portfolio,
45+
const QuantLib::ext::shared_ptr<CreditSimulationParameters>& creditSimulationParameters,
46+
const QuantLib::ext::shared_ptr<NPVCube>& cube,
47+
const QuantLib::ext::shared_ptr<CubeInterpretation> cubeInterpretation,
48+
const QuantLib::ext::shared_ptr<NPVCube>& nettedcube,
49+
const QuantLib::ext::shared_ptr<AggregationScenarioData>& aggregationScenarioData,
5050
const std::vector<Real>& creditMigrationDistributionGrid,
5151
const std::vector<Size>& creditMigrationTimeSteps,
5252
const Matrix& creditStateCorrelationMatrix, const std::string baseCurrency);
@@ -58,12 +58,12 @@ class CreditMigrationCalculator {
5858
const std::vector<std::vector<Real>> pdf() const { return pdf_; }
5959

6060
private:
61-
boost::shared_ptr<Portfolio> portfolio_;
62-
boost::shared_ptr<CreditSimulationParameters> creditSimulationParameters_;
63-
boost::shared_ptr<NPVCube> cube_;
64-
boost::shared_ptr<CubeInterpretation> cubeInterpretation_;
65-
boost::shared_ptr<NPVCube> nettedCube_;
66-
boost::shared_ptr<AggregationScenarioData> aggregationScenarioData_;
61+
QuantLib::ext::shared_ptr<Portfolio> portfolio_;
62+
QuantLib::ext::shared_ptr<CreditSimulationParameters> creditSimulationParameters_;
63+
QuantLib::ext::shared_ptr<NPVCube> cube_;
64+
QuantLib::ext::shared_ptr<CubeInterpretation> cubeInterpretation_;
65+
QuantLib::ext::shared_ptr<NPVCube> nettedCube_;
66+
QuantLib::ext::shared_ptr<AggregationScenarioData> aggregationScenarioData_;
6767
std::vector<Real> creditMigrationDistributionGrid_;
6868
std::vector<Size> creditMigrationTimeSteps_;
6969
Matrix creditStateCorrelationMatrix_;

OREAnalytics/orea/aggregation/creditmigrationhelper.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ using namespace QuantExt;
3838
namespace ore {
3939
namespace analytics {
4040

41-
CreditMigrationHelper::CreditMigrationHelper(const boost::shared_ptr<CreditSimulationParameters> parameters,
42-
const boost::shared_ptr<NPVCube> cube,
43-
const boost::shared_ptr<NPVCube> nettedCube,
44-
const boost::shared_ptr<AggregationScenarioData> aggData,
41+
CreditMigrationHelper::CreditMigrationHelper(const QuantLib::ext::shared_ptr<CreditSimulationParameters> parameters,
42+
const QuantLib::ext::shared_ptr<NPVCube> cube,
43+
const QuantLib::ext::shared_ptr<NPVCube> nettedCube,
44+
const QuantLib::ext::shared_ptr<AggregationScenarioData> aggData,
4545
const Size cubeIndexCashflows, const Size cubeIndexStateNpvs,
4646
const Real distributionLowerBound, const Real distributionUpperBound,
4747
const Size buckets, const Matrix& globalFactorCorrelation,
@@ -581,7 +581,7 @@ Array CreditMigrationHelper::pnlDistribution(const Size date) {
581581
return res;
582582
} // pnlDistribution
583583

584-
void CreditMigrationHelper::build(const std::map<std::string, boost::shared_ptr<Trade>>& trades) {
584+
void CreditMigrationHelper::build(const std::map<std::string, QuantLib::ext::shared_ptr<Trade>>& trades) {
585585
LOG("CreditMigrationHelper: Build trade ID map");
586586
issuerTradeIds_.resize(parameters_->entities().size());
587587
cptyNettingSetIds_.resize(parameters_->entities().size());
@@ -597,14 +597,14 @@ void CreditMigrationHelper::build(const std::map<std::string, boost::shared_ptr<
597597
t->envelope().nettingSetId()) != parameters_->nettingSetIds().end()) {
598598
tmp2.insert(t->envelope().nettingSetId());
599599
}
600-
boost::shared_ptr<Bond> bond = boost::dynamic_pointer_cast<Bond>(t);
600+
QuantLib::ext::shared_ptr<Bond> bond = QuantLib::ext::dynamic_pointer_cast<Bond>(t);
601601
if (bond) {
602602
tradeCreditCurves_[t->id()] = bond->bondData().creditCurveId();
603603
// FIXME: We actually need the notional schedule here to determine future notionals
604604
tradeNotionals_[t->id()] = bond->notional();
605605
tradeCurrencies_[t->id()] = bond->bondData().currency();
606606
}
607-
boost::shared_ptr<CreditDefaultSwap> cds = boost::dynamic_pointer_cast<CreditDefaultSwap>(t);
607+
QuantLib::ext::shared_ptr<CreditDefaultSwap> cds = QuantLib::ext::dynamic_pointer_cast<CreditDefaultSwap>(t);
608608
if (cds) {
609609
string cpty = cds->envelope().counterparty();
610610
QL_REQUIRE(cpty != t->issuer(), "CDS has same CPTY and issuer " << cpty);

OREAnalytics/orea/aggregation/creditmigrationhelper.hpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ class CreditMigrationHelper {
5454
enum class LoanExposureMode { Notional, Value };
5555
enum class Evaluation { Analytic, ForwardSimulationA, ForwardSimulationB, TerminalSimulation };
5656

57-
CreditMigrationHelper(const boost::shared_ptr<CreditSimulationParameters> parameters,
58-
const boost::shared_ptr<NPVCube> cube, const boost::shared_ptr<NPVCube> nettedCube,
59-
const boost::shared_ptr<AggregationScenarioData> aggData, const Size cubeIndexCashflows,
57+
CreditMigrationHelper(const QuantLib::ext::shared_ptr<CreditSimulationParameters> parameters,
58+
const QuantLib::ext::shared_ptr<NPVCube> cube, const QuantLib::ext::shared_ptr<NPVCube> nettedCube,
59+
const QuantLib::ext::shared_ptr<AggregationScenarioData> aggData, const Size cubeIndexCashflows,
6060
const Size cubeIndexStateNpvs, const Real distributionLowerBound,
6161
const Real distributionUpperBound, const Size buckets, const Matrix& globalFactorCorrelation,
6262
const std::string& baseCurrency);
6363

6464
//! builds the helper for a specific subset of trades stored in the cube
65-
void build(const std::map<std::string, boost::shared_ptr<Trade>>& trades);
65+
void build(const std::map<std::string, QuantLib::ext::shared_ptr<Trade>>& trades);
6666

6767
const std::vector<Real>& upperBucketBound() const { return bucketing_.upperBucketBound(); }
6868
//
@@ -106,9 +106,9 @@ class CreditMigrationHelper {
106106
void generateConditionalMigrationPnl(const Size date, const Size path, const std::map<string, Matrix>& transMat,
107107
std::vector<Array>& condProbs, std::vector<Array>& pnl) const;
108108

109-
boost::shared_ptr<CreditSimulationParameters> parameters_;
110-
boost::shared_ptr<NPVCube> cube_, nettedCube_;
111-
boost::shared_ptr<AggregationScenarioData> aggData_;
109+
QuantLib::ext::shared_ptr<CreditSimulationParameters> parameters_;
110+
QuantLib::ext::shared_ptr<NPVCube> cube_, nettedCube_;
111+
QuantLib::ext::shared_ptr<AggregationScenarioData> aggData_;
112112
Size cubeIndexCashflows_, cubeIndexStateNpvs_;
113113
Matrix globalFactorCorrelation_;
114114
std::string baseCurrency_;

OREAnalytics/orea/aggregation/cvaspreadsensitivitycalculator.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
#include <ql/time/date.hpp>
3636

37-
#include <boost/shared_ptr.hpp>
37+
#include <ql/shared_ptr.hpp>
3838

3939
namespace ore {
4040
namespace analytics {

0 commit comments

Comments
 (0)