Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
CrifRecord Struct Reference

#include <orea/simm/crifrecord.hpp>

+ Collaboration diagram for CrifRecord:

Public Types

enum class  RecordType { SIMM , FRTB , Generic }
 
enum class  RiskType {
  Empty , Commodity , CommodityVol , CreditNonQ ,
  CreditQ , CreditVol , CreditVolNonQ , Equity ,
  EquityVol , FX , FXVol , Inflation ,
  IRCurve , IRVol , InflationVol , BaseCorr ,
  XCcyBasis , ProductClassMultiplier , AddOnNotionalFactor , Notional ,
  AddOnFixedAmount , PV , GIRR_DELTA , GIRR_VEGA ,
  GIRR_CURV , CSR_NS_DELTA , CSR_NS_VEGA , CSR_NS_CURV ,
  CSR_SNC_DELTA , CSR_SNC_VEGA , CSR_SNC_CURV , CSR_SC_DELTA ,
  CSR_SC_VEGA , CSR_SC_CURV , EQ_DELTA , EQ_VEGA ,
  EQ_CURV , COMM_DELTA , COMM_VEGA , COMM_CURV ,
  FX_DELTA , FX_VEGA , FX_CURV , DRC_NS ,
  DRC_SNC , DRC_SC , RRAO_1_PERCENT , RRAO_01_PERCENT ,
  All
}
 
enum class  ProductClass {
  RatesFX , Rates , FX , Credit ,
  Equity , Commodity , Empty , Other ,
  AddOnNotionalFactor , AddOnFixedAmount , All
}
 
enum class  CurvatureScenario { Empty , Up , Down }
 There are two entries for curvature risk in frtb, a up and down shift. More...
 
typedef std::tuple< std::string, NettingSetDetails, ProductClass, RiskType, std::string, std::string, std::string, std::string, std::string, std::string > SimmAmountCcyKey
 

Public Member Functions

 CrifRecord ()
 
 CrifRecord (std::string tradeId, std::string tradeType, NettingSetDetails nettingSetDetails, ProductClass productClass, RiskType riskType, std::string qualifier, std::string bucket, std::string label1, std::string label2, std::string amountCurrency, QuantLib::Real amount, QuantLib::Real amountUsd, std::string imModel="", std::string collectRegulations="", std::string postRegulations="", std::string endDate="", std::map< std::string, std::string > extraFields={})
 
 CrifRecord (std::string tradeId, std::string tradeType, std::string portfolioId, ProductClass productClass, RiskType riskType, std::string qualifier, std::string bucket, std::string label1, std::string label2, std::string amountCurrency, QuantLib::Real amount, QuantLib::Real amountUsd, std::string imModel="", std::string collectRegulations="", std::string postRegulations="", std::string endDate="", std::map< std::string, std::string > additionalFields={})
 
RecordType type () const
 
bool hasAmountCcy () const
 
bool hasAmount () const
 
bool hasAmountUsd () const
 
bool hasResultCcy () const
 
bool hasAmountResultCcy () const
 
bool requiresAmountUsd () const
 
bool isSimmParameter () const
 
bool isEmpty () const
 
bool isFrtbCurvatureRisk () const
 
CurvatureScenario frtbCurveatureScenario () const
 
std::string getAdditionalFieldAsStr (const std::string &fieldName) const
 
double getAdditionalFieldAsDouble (const std::string &fieldName) const
 
bool getAdditionalFieldAsBool (const std::string &fieldName) const
 
const SimmAmountCcyKey getSimmAmountCcyKey () const
 
bool operator< (const CrifRecord &cr) const
 Define how CRIF records are compared. More...
 
bool operator== (const CrifRecord &cr) const
 

Static Public Member Functions

static bool amountCcyLTCompare (const CrifRecord &cr1, const CrifRecord &cr2)
 
static bool amountCcyEQCompare (const CrifRecord &cr1, const CrifRecord &cr2)
 

Public Attributes

std::string tradeId
 
std::string portfolioId
 
ProductClass productClass = ProductClass::Empty
 
RiskType riskType = RiskType::Notional
 
std::string qualifier
 
std::string bucket
 
std::string label1
 
std::string label2
 
std::string amountCurrency
 
QuantLib::Real amount = QuantLib::Null<QuantLib::Real>()
 
QuantLib::Real amountUsd = QuantLib::Null<QuantLib::Real>()
 
std::string resultCurrency
 
QuantLib::Real amountResultCcy = QuantLib::Null<QuantLib::Real>()
 
std::string tradeType
 
std::string agreementType
 
std::string callType
 
std::string initialMarginType
 
std::string legalEntityId
 
NettingSetDetails nettingSetDetails
 
std::string imModel
 
std::string collectRegulations
 
std::string postRegulations
 
std::string endDate
 
std::string label3
 
std::string creditQuality
 
std::string longShortInd
 
std::string coveredBondInd
 
std::string trancheThickness
 
std::string bb_rw
 
std::map< std::string, std::variant< std::string, double, bool > > additionalFields
 

Static Public Attributes

static std::vector< std::set< std::string > > additionalHeaders = {}
 

Detailed Description

A container for holding single CRIF records or aggregated CRIF records. A CRIF record is a row of the CRIF file outlined in the document: ISDA SIMM Methodology, Risk Data Standards. Version 1.36: 1 February 2017. or an updated version thereof.

Definition at line 40 of file crifrecord.hpp.

Member Typedef Documentation

◆ SimmAmountCcyKey

typedef std::tuple<std::string, NettingSetDetails, ProductClass, RiskType, std::string, std::string, std::string, std::string, std::string, std::string> SimmAmountCcyKey

Definition at line 130 of file crifrecord.hpp.

Member Enumeration Documentation

◆ RecordType

enum class RecordType
strong
Enumerator
SIMM 
FRTB 
Generic 

Definition at line 42 of file crifrecord.hpp.

◆ RiskType

enum class RiskType
strong

Risk types plus an All type for convenience Internal methods rely on the last element being 'All' Note that the risk type inflation has to be treated as an additional, single tenor bucket in IRCurve

Enumerator
Empty 
Commodity 
CommodityVol 
CreditNonQ 
CreditQ 
CreditVol 
CreditVolNonQ 
Equity 
EquityVol 
FX 
FXVol 
Inflation 
IRCurve 
IRVol 
InflationVol 
BaseCorr 
XCcyBasis 
ProductClassMultiplier 
AddOnNotionalFactor 
Notional 
AddOnFixedAmount 
PV 
GIRR_DELTA 
GIRR_VEGA 
GIRR_CURV 
CSR_NS_DELTA 
CSR_NS_VEGA 
CSR_NS_CURV 
CSR_SNC_DELTA 
CSR_SNC_VEGA 
CSR_SNC_CURV 
CSR_SC_DELTA 
CSR_SC_VEGA 
CSR_SC_CURV 
EQ_DELTA 
EQ_VEGA 
EQ_CURV 
COMM_DELTA 
COMM_VEGA 
COMM_CURV 
FX_DELTA 
FX_VEGA 
FX_CURV 
DRC_NS 
DRC_SNC 
DRC_SC 
RRAO_1_PERCENT 
RRAO_01_PERCENT 
All 

Definition at line 53 of file crifrecord.hpp.

53 {
54 // Empty for null, misisng field
55 Empty,
56 // SIMM Risk Types
60 CreditQ,
63 Equity,
65 FX,
66 FXVol,
68 IRCurve,
69 IRVol,
77 PV, // IM Schedule
78 // FRTB Risk Types
92 EQ_VEGA,
93 EQ_CURV,
98 FX_VEGA,
99 FX_CURV,
100 DRC_NS,
101 DRC_SNC,
102 DRC_SC,
105 // All type for aggreggation purposes
106 All
107 };

◆ ProductClass

enum class ProductClass
strong

Product class types in SIMM plus an All type for convenience Internal methods rely on the last element being 'All'

Enumerator
RatesFX 
Rates 
FX 
Credit 
Equity 
Commodity 
Empty 
Other 
AddOnNotionalFactor 
AddOnFixedAmount 
All 

Definition at line 111 of file crifrecord.hpp.

111 {
112 RatesFX,
113 Rates, // extension for IM Schedule
114 FX, // extension for IM Schedule
115 Credit,
116 Equity,
117 Commodity,
118 Empty,
119 Other, // extension for IM Schedule
120 AddOnNotionalFactor, // extension for additional IM
121 AddOnFixedAmount, // extension for additional IM
122 All
123 };

◆ CurvatureScenario

enum class CurvatureScenario
strong

There are two entries for curvature risk in frtb, a up and down shift.

Enumerator
Empty 
Up 
Down 

Definition at line 126 of file crifrecord.hpp.

Constructor & Destructor Documentation

◆ CrifRecord() [1/3]

Definition at line 174 of file crifrecord.hpp.

174{}

◆ CrifRecord() [2/3]

CrifRecord ( std::string  tradeId,
std::string  tradeType,
NettingSetDetails  nettingSetDetails,
ProductClass  productClass,
RiskType  riskType,
std::string  qualifier,
std::string  bucket,
std::string  label1,
std::string  label2,
std::string  amountCurrency,
QuantLib::Real  amount,
QuantLib::Real  amountUsd,
std::string  imModel = "",
std::string  collectRegulations = "",
std::string  postRegulations = "",
std::string  endDate = "",
std::map< std::string, std::string >  extraFields = {} 
)

Definition at line 176 of file crifrecord.hpp.

181 {})
187 for (const auto& [key, value] : extraFields) {
188 additionalFields[key] = value;
189 }
190 }
const string & nettingSetId() const
SafeStack< ValueType > value
std::map< std::string, std::variant< std::string, double, bool > > additionalFields
Definition: crifrecord.hpp:171
NettingSetDetails nettingSetDetails
Definition: crifrecord.hpp:156

◆ CrifRecord() [3/3]

CrifRecord ( std::string  tradeId,
std::string  tradeType,
std::string  portfolioId,
ProductClass  productClass,
RiskType  riskType,
std::string  qualifier,
std::string  bucket,
std::string  label1,
std::string  label2,
std::string  amountCurrency,
QuantLib::Real  amount,
QuantLib::Real  amountUsd,
std::string  imModel = "",
std::string  collectRegulations = "",
std::string  postRegulations = "",
std::string  endDate = "",
std::map< std::string, std::string >  additionalFields = {} 
)

Member Function Documentation

◆ type()

CrifRecord::RecordType type ( ) const

Definition at line 186 of file crifrecord.cpp.

186 {
187 switch (riskType) {
188 case RiskType::Commodity:
189 case RiskType::CommodityVol:
190 case RiskType::CreditNonQ:
191 case RiskType::CreditQ:
192 case RiskType::CreditVol:
193 case RiskType::CreditVolNonQ:
194 case RiskType::Equity:
195 case RiskType::EquityVol:
196 case RiskType::FX:
197 case RiskType::FXVol:
198 case RiskType::Inflation:
199 case RiskType::IRCurve:
200 case RiskType::IRVol:
201 case RiskType::InflationVol:
202 case RiskType::BaseCorr:
203 case RiskType::XCcyBasis:
204 case RiskType::ProductClassMultiplier:
205 case RiskType::AddOnNotionalFactor:
206 case RiskType::Notional:
207 case RiskType::AddOnFixedAmount:
208 case RiskType::PV:
209 return RecordType::SIMM;
210 case RiskType::GIRR_DELTA:
211 case RiskType::GIRR_VEGA:
212 case RiskType::GIRR_CURV:
213 case RiskType::CSR_NS_DELTA:
214 case RiskType::CSR_NS_VEGA:
215 case RiskType::CSR_NS_CURV:
216 case RiskType::CSR_SNC_DELTA:
217 case RiskType::CSR_SNC_VEGA:
218 case RiskType::CSR_SNC_CURV:
219 case RiskType::CSR_SC_DELTA:
220 case RiskType::CSR_SC_VEGA:
221 case RiskType::CSR_SC_CURV:
222 case RiskType::EQ_DELTA:
223 case RiskType::EQ_VEGA:
224 case RiskType::EQ_CURV:
225 case RiskType::COMM_DELTA:
226 case RiskType::COMM_VEGA:
227 case RiskType::COMM_CURV:
228 case RiskType::FX_DELTA:
229 case RiskType::FX_VEGA:
230 case RiskType::FX_CURV:
231 case RiskType::DRC_NS:
232 case RiskType::DRC_SNC:
233 case RiskType::DRC_SC:
234 case RiskType::RRAO_1_PERCENT:
235 case RiskType::RRAO_01_PERCENT:
236 return RecordType::FRTB;
237 case RiskType::All:
238 case RiskType::Empty:
239 return RecordType::Generic;
240 default:
241 QL_FAIL("Unexpected RiskType " << riskType);
242 }
243}
+ Here is the caller graph for this function:

◆ hasAmountCcy()

bool hasAmountCcy ( ) const

Definition at line 204 of file crifrecord.hpp.

204{ return !amountCurrency.empty(); }
+ Here is the caller graph for this function:

◆ hasAmount()

bool hasAmount ( ) const

Definition at line 205 of file crifrecord.hpp.

205{ return amount != QuantLib::Null<QuantLib::Real>(); }
+ Here is the caller graph for this function:

◆ hasAmountUsd()

bool hasAmountUsd ( ) const

Definition at line 206 of file crifrecord.hpp.

206{ return amountUsd != QuantLib::Null<QuantLib::Real>(); }
+ Here is the caller graph for this function:

◆ hasResultCcy()

bool hasResultCcy ( ) const

Definition at line 207 of file crifrecord.hpp.

207{ return !resultCurrency.empty(); }
+ Here is the caller graph for this function:

◆ hasAmountResultCcy()

bool hasAmountResultCcy ( ) const

Definition at line 208 of file crifrecord.hpp.

208{ return amountResultCcy != QuantLib::Null<QuantLib::Real>(); }
QuantLib::Real amountResultCcy
Definition: crifrecord.hpp:148
+ Here is the caller graph for this function:

◆ requiresAmountUsd()

bool requiresAmountUsd ( ) const

Definition at line 212 of file crifrecord.hpp.

212 {
213 return riskType != RiskType::AddOnNotionalFactor &&
214 riskType != RiskType::ProductClassMultiplier;
215 }

◆ isSimmParameter()

bool isSimmParameter ( ) const

Definition at line 217 of file crifrecord.hpp.

217 {
218 return riskType == RiskType::AddOnFixedAmount ||
219 riskType == RiskType::AddOnNotionalFactor ||
220 riskType == RiskType::ProductClassMultiplier;
221 }
+ Here is the caller graph for this function:

◆ isEmpty()

bool isEmpty ( ) const

Definition at line 223 of file crifrecord.hpp.

223{ return riskType == RiskType::Empty; }

◆ isFrtbCurvatureRisk()

bool isFrtbCurvatureRisk ( ) const

Definition at line 226 of file crifrecord.hpp.

226 {
227 switch (riskType) {
228 case RiskType::GIRR_CURV:
229 case RiskType::CSR_NS_CURV:
230 case RiskType::CSR_SNC_CURV:
231 case RiskType::CSR_SC_CURV:
232 case RiskType::EQ_CURV:
233 case RiskType::COMM_CURV:
234 case RiskType::FX_CURV:
235 return true;
236 default:
237 return false;
238 }
239 }
+ Here is the caller graph for this function:

◆ frtbCurveatureScenario()

CurvatureScenario frtbCurveatureScenario ( ) const

Definition at line 241 of file crifrecord.hpp.

241 {
242 double shift = 0.0;
243 if (isFrtbCurvatureRisk() && ore::data::tryParseReal(label1, shift) && shift < 0.0) {
245 } else if (isFrtbCurvatureRisk()) {
247 } else {
249 }
250 }
bool tryParseReal(const string &s, QuantLib::Real &result)
bool isFrtbCurvatureRisk() const
Definition: crifrecord.hpp:226
+ Here is the call graph for this function:

◆ getAdditionalFieldAsStr()

std::string getAdditionalFieldAsStr ( const std::string &  fieldName) const

Definition at line 252 of file crifrecord.hpp.

252 {
253 auto it = additionalFields.find(fieldName);
254 std::string value;
255 if (it != additionalFields.end()) {
256 if (const std::string* vstr = std::get_if<std::string>(&it->second)) {
257 value = *vstr;
258 } else if (const double* vdouble = std::get_if<double>(&it->second)) {
259 value = ore::data::to_string(*vdouble);
260 } else {
261 const bool* vbool = std::get_if<bool>(&it->second);
262 value = ore::data::to_string(*vbool);
263 }
264 }
265 return value;
266 }
std::string to_string(const LocationInfo &l)
+ Here is the call graph for this function:

◆ getAdditionalFieldAsDouble()

double getAdditionalFieldAsDouble ( const std::string &  fieldName) const

Definition at line 268 of file crifrecord.hpp.

268 {
269 auto it = additionalFields.find(fieldName);
270 double value = QuantLib::Null<double>();
271 if (it != additionalFields.end()) {
272 if (const double* vdouble = std::get_if<double>(&it->second)) {
273 value = *vdouble;
274 } else if (const std::string* vstr = std::get_if<std::string>(&it->second)) {
276 }
277 }
278 return value;
279 }
Real parseReal(const string &s)
+ Here is the call graph for this function:

◆ getAdditionalFieldAsBool()

bool getAdditionalFieldAsBool ( const std::string &  fieldName) const

Definition at line 281 of file crifrecord.hpp.

281 {
282 auto it = additionalFields.find(fieldName);
283 bool value = false;
284 if (it != additionalFields.end()) {
285 if (const bool* vbool = std::get_if<bool>(&it->second)) {
286 value = *vbool;
287 } else if (const std::string* vstr = std::get_if<std::string>(&it->second)) {
289 }
290 }
291 return value;
292 }
bool parseBool(const string &s)
+ Here is the call graph for this function:

◆ getSimmAmountCcyKey()

const SimmAmountCcyKey getSimmAmountCcyKey ( ) const

Definition at line 294 of file crifrecord.hpp.

+ Here is the caller graph for this function:

◆ operator<()

bool operator< ( const CrifRecord cr) const

Define how CRIF records are compared.

Definition at line 300 of file crifrecord.hpp.

300 {
301 if (type() == RecordType::FRTB || cr.type() == RecordType::FRTB) {
305 std::tie(cr.tradeId, cr.nettingSetDetails, cr.productClass, cr.riskType, cr.qualifier, cr.bucket,
306 cr.label1, cr.label2, cr.label3, cr.endDate, cr.creditQuality, cr.longShortInd,
307 cr.coveredBondInd, cr.trancheThickness, cr.bb_rw, cr.amountCurrency, cr.collectRegulations,
308 cr.postRegulations);
309 } else {
312 std::tie(cr.tradeId, cr.nettingSetDetails, cr.productClass, cr.riskType, cr.qualifier, cr.bucket,
313 cr.label1, cr.label2, cr.amountCurrency, cr.collectRegulations, cr.postRegulations);
314 }
315 }
RecordType type() const
Definition: crifrecord.cpp:186
+ Here is the call graph for this function:

◆ amountCcyLTCompare()

static bool amountCcyLTCompare ( const CrifRecord cr1,
const CrifRecord cr2 
)
static

Definition at line 317 of file crifrecord.hpp.

317 {
318 if (cr1.type() == RecordType::FRTB || cr2.type() == RecordType::FRTB) {
319 return std::tie(cr1.tradeId, cr1.nettingSetDetails, cr1.productClass, cr1.riskType, cr1.qualifier,
320 cr1.bucket, cr1.label1, cr1.label2, cr1.label3, cr1.endDate, cr1.creditQuality,
321 cr1.longShortInd, cr1.coveredBondInd, cr1.trancheThickness, cr1.bb_rw,
322 cr1.collectRegulations, cr1.postRegulations) <
323 std::tie(cr2.tradeId, cr2.nettingSetDetails, cr2.productClass, cr2.riskType, cr2.qualifier,
324 cr2.bucket, cr2.label1, cr2.label2, cr2.label3, cr2.endDate, cr2.creditQuality,
325 cr2.longShortInd, cr2.coveredBondInd, cr2.trancheThickness, cr2.bb_rw,
326 cr2.collectRegulations, cr2.postRegulations);
327 } else {
328 return std::tie(cr1.tradeId, cr1.nettingSetDetails, cr1.productClass, cr1.riskType, cr1.qualifier,
329 cr1.bucket, cr1.label1, cr1.label2, cr1.collectRegulations, cr1.postRegulations) <
330 std::tie(cr2.tradeId, cr2.nettingSetDetails, cr2.productClass, cr2.riskType, cr2.qualifier,
331 cr2.bucket, cr2.label1, cr2.label2, cr2.collectRegulations, cr2.postRegulations);
332 }
333 }
+ Here is the call graph for this function:

◆ operator==()

bool operator== ( const CrifRecord cr) const

Definition at line 335 of file crifrecord.hpp.

335 {
336 if (type() == RecordType::FRTB || cr.type() == RecordType::FRTB) {
340 std::tie(cr.tradeId, cr.nettingSetDetails, cr.productClass, cr.riskType, cr.qualifier, cr.bucket,
341 cr.label1, cr.label2, cr.label3, cr.endDate, cr.creditQuality, cr.longShortInd,
342 cr.coveredBondInd, cr.trancheThickness, cr.bb_rw, cr.amountCurrency, cr.collectRegulations,
343 cr.postRegulations);
344 } else {
347 std::tie(cr.tradeId, cr.nettingSetDetails, cr.productClass, cr.riskType, cr.qualifier, cr.bucket,
348 cr.label1, cr.label2, cr.amountCurrency, cr.collectRegulations, cr.postRegulations);
349 }
350 }
+ Here is the call graph for this function:

◆ amountCcyEQCompare()

static bool amountCcyEQCompare ( const CrifRecord cr1,
const CrifRecord cr2 
)
static

Definition at line 351 of file crifrecord.hpp.

351 {
352 if (cr1.type() == RecordType::FRTB || cr2.type() == RecordType::FRTB) {
353 return std::tie(cr1.tradeId, cr1.nettingSetDetails, cr1.productClass, cr1.riskType, cr1.qualifier,
354 cr1.bucket, cr1.label1, cr1.label2, cr1.label3, cr1.endDate, cr1.creditQuality,
355 cr1.longShortInd, cr1.coveredBondInd, cr1.trancheThickness, cr1.bb_rw,
356 cr1.collectRegulations, cr1.postRegulations) ==
357 std::tie(cr2.tradeId, cr2.nettingSetDetails, cr2.productClass, cr2.riskType, cr2.qualifier,
358 cr2.bucket, cr2.label1, cr2.label2, cr2.label3, cr2.endDate, cr2.creditQuality,
359 cr2.longShortInd, cr2.coveredBondInd, cr2.trancheThickness, cr2.bb_rw,
360 cr2.collectRegulations, cr2.postRegulations);
361 } else {
362 return std::tie(cr1.tradeId, cr1.nettingSetDetails, cr1.productClass, cr1.riskType, cr1.qualifier,
363 cr1.bucket, cr1.label1, cr1.label2, cr1.collectRegulations, cr1.postRegulations) ==
364 std::tie(cr2.tradeId, cr2.nettingSetDetails, cr2.productClass, cr2.riskType, cr2.qualifier,
365 cr2.bucket, cr2.label1, cr2.label2, cr2.collectRegulations, cr2.postRegulations);
366 }
367 }
+ Here is the call graph for this function:

Member Data Documentation

◆ tradeId

std::string tradeId

Definition at line 134 of file crifrecord.hpp.

◆ portfolioId

std::string portfolioId

Definition at line 135 of file crifrecord.hpp.

◆ productClass

ProductClass productClass = ProductClass::Empty

Definition at line 136 of file crifrecord.hpp.

◆ riskType

RiskType riskType = RiskType::Notional

Definition at line 137 of file crifrecord.hpp.

◆ qualifier

std::string qualifier

Definition at line 138 of file crifrecord.hpp.

◆ bucket

std::string bucket

Definition at line 139 of file crifrecord.hpp.

◆ label1

std::string label1

Definition at line 140 of file crifrecord.hpp.

◆ label2

std::string label2

Definition at line 141 of file crifrecord.hpp.

◆ amountCurrency

std::string amountCurrency

Definition at line 142 of file crifrecord.hpp.

◆ amount

QuantLib::Real amount = QuantLib::Null<QuantLib::Real>()
mutable

Definition at line 143 of file crifrecord.hpp.

◆ amountUsd

QuantLib::Real amountUsd = QuantLib::Null<QuantLib::Real>()
mutable

Definition at line 144 of file crifrecord.hpp.

◆ resultCurrency

std::string resultCurrency

Definition at line 147 of file crifrecord.hpp.

◆ amountResultCcy

QuantLib::Real amountResultCcy = QuantLib::Null<QuantLib::Real>()
mutable

Definition at line 148 of file crifrecord.hpp.

◆ tradeType

std::string tradeType

Definition at line 151 of file crifrecord.hpp.

◆ agreementType

std::string agreementType

Definition at line 152 of file crifrecord.hpp.

◆ callType

std::string callType

Definition at line 153 of file crifrecord.hpp.

◆ initialMarginType

std::string initialMarginType

Definition at line 154 of file crifrecord.hpp.

◆ legalEntityId

std::string legalEntityId

Definition at line 155 of file crifrecord.hpp.

◆ nettingSetDetails

NettingSetDetails nettingSetDetails

Definition at line 156 of file crifrecord.hpp.

◆ imModel

std::string imModel
mutable

Definition at line 157 of file crifrecord.hpp.

◆ collectRegulations

std::string collectRegulations
mutable

Definition at line 158 of file crifrecord.hpp.

◆ postRegulations

std::string postRegulations
mutable

Definition at line 159 of file crifrecord.hpp.

◆ endDate

std::string endDate

Definition at line 160 of file crifrecord.hpp.

◆ label3

std::string label3

Definition at line 163 of file crifrecord.hpp.

◆ creditQuality

std::string creditQuality

Definition at line 164 of file crifrecord.hpp.

◆ longShortInd

std::string longShortInd

Definition at line 165 of file crifrecord.hpp.

◆ coveredBondInd

std::string coveredBondInd

Definition at line 166 of file crifrecord.hpp.

◆ trancheThickness

std::string trancheThickness

Definition at line 167 of file crifrecord.hpp.

◆ bb_rw

std::string bb_rw

Definition at line 168 of file crifrecord.hpp.

◆ additionalFields

std::map<std::string, std::variant<std::string, double, bool> > additionalFields

Definition at line 171 of file crifrecord.hpp.

◆ additionalHeaders

std::vector< std::set< std::string > > additionalHeaders = {}
static

Definition at line 369 of file crifrecord.hpp.