Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
dimflatcalculator.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2024 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file orea/aggregation/dimregressioncalculator.hpp
20 \brief Dynamic Initial Margin calculator by regression
21 \ingroup analytics
22*/
23
24#pragma once
25
27
28namespace ore {
29namespace analytics {
30using namespace QuantLib;
31using namespace QuantExt;
32using namespace data;
33using namespace std;
34
35//! Dynamic Initial Margin Calculator using flat extrapolation of t0 IM
36/*!
37 Dynamic IM by extrapolating t0 IM
38*/
40public:
42 //! Global input parameters
43 const QuantLib::ext::shared_ptr<InputParameters>& inputs,
44 //! Driving portfolio consistent with the cube below
45 const QuantLib::ext::shared_ptr<Portfolio>& portfolio,
46 //! NPV cube resulting from the Monte Carlo simulation loop
47 const QuantLib::ext::shared_ptr<NPVCube>& cube,
48 //! Interpretation of the cube, regular NPV, MPoR grid etc
49 const QuantLib::ext::shared_ptr<CubeInterpretation>& cubeInterpretation,
50 //! Additional output of the MC simulation loop with numeraires, index fixings, FX spots etc
51 const QuantLib::ext::shared_ptr<AggregationScenarioData>& scenarioData);
52
53 map<string, Real> unscaledCurrentDIM() override { return currentIM_; }
54 void build() override;
55 void exportDimEvolution(ore::data::Report& dimEvolutionReport) const override;
56 const vector<Real>& dimResults(const std::string& nettingSet) const;
57};
58
59} // namespace analytics
60} // namespace ore
Dynamic Initial Margin Calculator base class.
Dynamic Initial Margin Calculator using flat extrapolation of t0 IM.
void exportDimEvolution(ore::data::Report &dimEvolutionReport) const override
DIM evolution report.
const vector< Real > & dimResults(const std::string &nettingSet) const
void build() override
Compute dynamic initial margin along all paths and fill result structures.
map< string, Real > unscaledCurrentDIM() override
Model implied t0 DIM by netting set, does not need a call to build() before.
Dynamic Initial Margin calculator base class.
data