30#include <ql/handle.hpp>
32#include <ql/shared_ptr.hpp>
48 QuantLib::Handle<AggregationScenarioData>(),
56 const QuantLib::ext::shared_ptr<DateGrid>&
dateGrid()
const;
70 Real
getGenericValue(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx, Size sampleIdx,
74 Real
getDefaultNpv(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx, Size sampleIdx)
const;
77 Real
getCloseOutNpv(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx, Size sampleIdx)
const;
80 Real
getMporPositiveFlows(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx,
81 Size sampleIdx)
const;
84 Real
getMporNegativeFlows(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx,
85 Size sampleIdx)
const;
87 Real
getMporFlows(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size tradeIdx, Size dateIdx, Size sampleIdx)
const;
91 const std::string& qualifier =
"")
const;
95 const std::string& qualifier =
"")
const;
98 Size
getMporCalendarDays(
const QuantLib::ext::shared_ptr<NPVCube>& cube, Size dateIdx)
const;
this class holds data associated to scenarios
Allow for interpretation of how data is stored within cube and AggregationScenarioData.
Real getMporFlows(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx) const
Retrieve the aggregate value of Margin Period of Risk cashflows from the Cube.
Size getMporCalendarDays(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size dateIdx) const
Number of Calendar Days between a given default date and corresponding close-out date.
Size storeCreditStateNPVs_
Size mporFlowsIndex() const
const QuantLib::ext::shared_ptr< DateGrid > & dateGrid() const
Size defaultDateNpvIndex() const
indices in depth direction, might be Null<Size>() if not applicable
const QuantLib::Handle< AggregationScenarioData > & aggregationScenarioData() const
Real getMporPositiveFlows(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx) const
Retrieve the aggregate value of Margin Period of Risk positive cashflows from the Cube.
Real getDefaultAggregationScenarioData(const AggregationScenarioDataType &dataType, Size dateIdx, Size sampleIdx, const std::string &qualifier="") const
Retrieve a (default date) simulated risk factor value from AggregationScenarioData.
Size closeOutDateNpvIndex_
Real getCloseOutAggregationScenarioData(const AggregationScenarioDataType &dataType, Size dateIdx, Size sampleIdx, const std::string &qualifier="") const
Retrieve a (default date) simulated risk factor value from AggregationScenarioData.
Size creditStateNPVsIndex_
Real getDefaultNpv(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx) const
Retrieve the default date NPV from the Cube.
bool storeFlows() const
inspectors
Real getMporNegativeFlows(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx) const
Retrieve the aggregate value of Margin Period of Risk negative cashflows from the Cube.
Size closeOutDateNpvIndex() const
Real getCloseOutNpv(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx) const
Retrieve the close-out date NPV from the Cube.
QuantLib::ext::shared_ptr< DateGrid > dateGrid_
Size requiredNpvCubeDepth() const
npv cube depth that is at least required to work with this interpretation
Size creditStateNPVsIndex() const
QuantLib::Handle< AggregationScenarioData > aggregationScenarioData_
bool withCloseOutLag() const
Size storeCreditStateNPVs() const
Size defaultDateNpvIndex_
Real getGenericValue(const QuantLib::ext::shared_ptr< NPVCube > &cube, Size tradeIdx, Size dateIdx, Size sampleIdx, Size depth) const
Retrieve an arbitrary value from the Cube (user needs to know the precise location within depth axis)
AggregationScenarioDataType