Logo
Reference manual - version ored_version
Public Types | Public Member Functions | List of all members
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 Typetype () const
 Inspectors. More...
 
const string & csaCurrency () const
 
const string & index () const
 
Real thresholdPay () const
 
Real thresholdRcv () const
 
Real mtaPay () const
 
Real mtaRcv () const
 
Real independentAmountHeld () const
 
const string & independentAmountType () const
 
const Period & marginCallFrequency () const
 
const Period & marginPostFrequency () const
 
const Period & marginPeriodOfRisk () const
 
Real collatSpreadRcv () const
 
Real collatSpreadPay () const
 
vector< string > eligCollatCcys () const
 
bool applyInitialMargin ()
 
Type initialMarginType ()
 
bool calculateIMAmount ()
 
bool calculateVMAmount ()
 
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)

◆ invertCSA()

void invertCSA ( )

invert all relevant aspects of the CSA