Logo
Reference manual - version ored_version
CSA Class Reference

Public Types

enum  Type { Bilateral , CallOnly , PostOnly }

Public Member Functions

 CSA (const Type &type, const string &csaCurrency, const string &index, const Real &thresholdPay, const Real &thresholdRcv, const Real &mtaPay, const Real &mtaRcv, const Real &iaHeld, const string &iaType, const Period &marginCallFreq, const Period &marginPostFreq, const Period &mpr, const Real &collatSpreadPay, const Real &collatSpreadRcv, const vector< string > &eligCollatCcys, bool applyInitialMargin, Type initialMarginType, const bool calculateIMAmount, const bool calculateVMAmount, const string &nonExemptIMRegulations)
const Typetype () const
 Inspectors.
const stringcsaCurrency () const
const stringindex () const
Real thresholdPay () const
Real thresholdRcv () const
Real mtaPay () const
Real mtaRcv () const
Real independentAmountHeld () const
const stringindependentAmountType () const
const Period & marginCallFrequency () const
const Period & marginPostFrequency () const
const Period & marginPeriodOfRisk () const
Real collatSpreadRcv () const
Real collatSpreadPay () const
vector< stringeligCollatCcys () const
bool applyInitialMargin ()
Type initialMarginType ()
bool calculateIMAmount ()
bool calculateVMAmount ()
const stringnonExemptIMRegulations ()
void invertCSA ()
void validate ()

Member Enumeration Documentation

◆ Type

enum Type

Enumeration 'Type' specifies what type of collateral agreement is in place.

  • 'Bilateral' => both sides can request collateral margins
  • 'PostOnly' => only the counterparty is allowed to issue a call for additional collateral
  • 'CallOnly' => only WE are allowed to issue a margin call for additional collateral

Member Function Documentation

◆ type()

const Type & type ( ) const

Inspectors.

Nature of CSA margining agreement (e.g. Bilateral, PostOnly, CallOnly)

◆ csaCurrency()

const string & csaCurrency ( ) const

Master Currency of CSA

◆ index()

const string & index ( ) const

Index that determines the compounding rate

◆ thresholdPay()

Real thresholdPay ( ) const

Threshold amount for margin calls issued by counterparty

◆ thresholdRcv()

Real thresholdRcv ( ) const

Threshold amount when issuing calls to counterparty

◆ mtaPay()

Real mtaPay ( ) const

Minimum Transfer Amount when posting collateral to counterparty

◆ mtaRcv()

Real mtaRcv ( ) const

Minimum Transfer Amount when receiving collateral from counterparty

◆ independentAmountHeld()

Real independentAmountHeld ( ) const

Sum of Independent Amounts covered by the CSA (positive => we hold the amount)

◆ independentAmountType()

const string & independentAmountType ( ) const

'Type' of Independent Amount as specified in the CSA

◆ marginCallFrequency()

const Period & marginCallFrequency ( ) const

Margining Frequency when requesting collateral from counterparty (e.g. "1D", "1W")

◆ marginPostFrequency()

const Period & marginPostFrequency ( ) const

Margining Frequency when counterparty is requesting collateral (e.g. "1D", "1W")

◆ marginPeriodOfRisk()

const Period & marginPeriodOfRisk ( ) const

Margin Period of Risk (e.g. "1M")

◆ collatSpreadRcv()

Real collatSpreadRcv ( ) const

Spread for interest accrual on held collateral

◆ collatSpreadPay()

Real collatSpreadPay ( ) const

Spread for interest accrual on posted collateral

◆ eligCollatCcys()

vector< string > eligCollatCcys ( ) const

Eligible Collateral Currencies

◆ applyInitialMargin()

bool applyInitialMargin ( )

Apply (dynamic) initial margin in addition to variation margin

◆ initialMarginType()

Type initialMarginType ( )

Direction of (dynamic) initial margin

◆ calculateIMAmount()

bool calculateIMAmount ( )

Calculate SIMM as IM (currently used only for SA-CCR)

◆ calculateVMAmount()

bool calculateVMAmount ( )

Calculate VM from NPV (currently used only for SA-CCR)

◆ nonExemptIMRegulations()

const string & nonExemptIMRegulations ( )

IM regulations (whose trade sensitivities are usually exempt from margin/sensi calc) that we wish to include (currently used only for SA-CCR)

◆ invertCSA()

void invertCSA ( )

invert all relevant aspects of the CSA