主要内容

sacva

R2026b

Create sacva object to support ISDA SA-CVA

Since R2026b

Description

An sacva object provides an object-based framework that supports Basel-compliant, International Swaps and Derivatives Association (ISDA®) workflows for calculating credit valuation adjustment (CVA) capital using the Standard Approach (SA-CVA) per Basel MAR50 rules. To create an sacva object using the sacva function, you need a file in the SA-CVA Common Risk Interchange Format (CRIF), a standardized format developed by the ISDA for reporting CVA capital under the SA-CVA framework. For more information on creating an ISDA SA-CVA CRIF file, see ISDA SA-CVA CRIF File Specifications.

An sacva object includes a vector of sacva.Portfolio objects, each of which represents a single SA-CVA portfolio containing risk-factor sensitivities for CVA and hedge positions. An sacva.Portfolio object includes a vector of sacva.Sensitivity objects, each of which represents a single row from an SA-CVA CRIF file, containing either a CVA position sensitivity or a hedge position sensitivity to a risk factor.

After creating an sacva object, use the capital object function to calculate SA-CVA capital requirements for each portfolio. The SA-CVA capital is the sum of Delta capital and Vega capital across the following risk classes:

  • Interest Rate (IR)

  • Foreign Exchange (FX)

  • Counterparty Credit Spread (CS-CPY)

  • Reference Credit Spread (CS-REF)

  • Equity (EQ)

  • Commodity (COMM)

Creation

Description

mySACVA = sacva(SACVACRIF) creates an sacva object with default properties using the input data specified by SACVACRIF.

example

mySACVA = sacva(SACVACRIF,Name=Value) specifies additional options using one or more name-value arguments. For example, Multiplier=1.5 specifies to create the object with a multiplier of 1.5, and DomesticCurrency="EUR" specifies Euro as the currency.

example

Input Arguments

expand all

ISDA SA-CVA CRIF data descriptor, specified as a string or a table.

  • If you specify SACVACRIF as a string, the value of the string must be the name of an ISDA SA-CVA CRIF file.

  • If you specify SACVACRIF as a table, the table must be in the format of an ISDA SA-CVA CRIF file. For more information, see ISDA SA-CVA CRIF File Specifications.

The ISDA SA-CVA CRIF file facilitates the exchange of CVA sensitivity information between market participants and regulatory authorities. The file provides a structured and consistent format for reporting sensitivities of the CVA portfolio and hedging instruments to risk factors.

The ISDA SA-CVA CRIF file typically includes information such as:

  • Risk type data — This data identifies the risk class and measure (Delta or Vega) for each sensitivity, such as IR_DELTA, FX_VEGA, CS_CPY_DELTA, CS_REF_DELTA, EQ_DELTA, and COMM_VEGA.

  • Sensitivity data — This data includes the sensitivity amounts for each risk factor, representing how the CVA portfolio or hedging instruments respond to changes in the risk factor.

  • Risk factor qualifiers — This data includes additional details such as counterparty identifiers, currencies, tenors, bucket assignments, and credit quality classifications.

Name-Value Arguments

expand all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: mySACVA = sacva("SACVA_CRIF.csv",DomesticCurrency="EUR",Multiplier=1.5,R=0) creates an sacva object using Euro as the currency, a multiplier of 1.5, and the possibility of perfect hedging.

ISO currency code for the domestic currency, specified as a string.

This argument sets the DomesticCurrency property.

Example: DomesticCurrency="EUR"

Spot foreign exchange rates, specified as a table. Specify the table with these columns:

  • Base — String specifying the ISO currency code of the base currency

  • Quote — String specifying the ISO currency code of the quote currency

  • SpotRate — Numeric value specifying the spot exchange rate

This argument sets the FXSpotRates property.

Example: FXSpotRates=table("USD","EUR",0.9,VariableNames=["Base" "Quote" "SpotRate"])

SA-CVA multiplier for aggregated capital requirements, specified as a nonnegative numeric value. The SA-CVA multiplier (mCVA) scales the total SA-CVA capital requirement and is typically at least 1.

This argument sets the Multiplier property.

Example: Multiplier=1.25

SA-CVA hedging disallowance parameter, specified as a nonnegative numeric value. Setting this argument to 0 allows the possibility of perfect hedging, while setting it to a positive value prevents perfect hedging.

This argument sets the R property.

Example: R=0

Output Arguments

expand all

SA-CVA framework for calculating CVA capital requirements, returned as an sacva object.

Properties

expand all

General

This property is read-only.

ISDA SA-CVA CRIF data, represented as a table.

This property is read-only.

Number of portfolios, represented as a nonnegative integer.

Data Types: double

This property is read-only.

Portfolio IDs, represented as a NumPortfolios-by-1 string vector.

This property is read-only.

Portfolios, represented as a NumPortfolios-by-1 vector of sacva.Portfolio objects. For more information, see sacva.Portfolio Properties.

This property is read-only.

Applicable sensitivity qualifiers, represented as a string vector. Examples of applicable sensitivity qualifiers include counterparties and currencies.

This property is read-only.

Indicator of Basel regulation, represented as "Basel_MAR50".

This property is read-only after object creation.

ISO currency code for the domestic currency, specified as a string.

This property is read-only after object creation.

Spot foreign exchange rates, specified as a table. Specify the table with these columns:

  • Base — String specifying the ISO currency code of the base currency

  • Quote — String specifying the ISO currency code of the quote currency

  • SpotRate — Numeric value specifying the spot exchange rate

This property is read-only after object creation.

SA-CVA multiplier for aggregated capital requirements, specified as a nonnegative numeric value.

Data Types: double

This property is read-only after object creation.

SA-CVA hedging disallowance parameter, specified as a nonnegative numeric value.

Data Types: double

SA-CVA Interest Rate (IR)

This property is read-only.

SA-CVA risk weights for the IR Delta risk, represented as a table. The table contains the risk weights for the reporting currency and these additional currencies:

  • USD

  • EUR

  • GBP

  • AUD

  • CAD

  • SEK

  • JPY

This property is read-only.

SA-CVA risk factor correlations for the IR Delta risk, represented as a table. The table contains the risk factor correlations for the reporting currency and these additional currencies:

  • USD

  • EUR

  • GBP

  • AUD

  • CAD

  • SEK

  • JPY

This property is read-only.

Extra SA-CVA risk weights for the IR Delta risk, represented as a table. The table contains the risk weights for currencies other than those included in the IRDeltaRiskWeights property.

This property is read-only.

Extra SA-CVA risk factor correlations for the IR Delta risk, represented as a table. The table contains the risk factor correlations for currencies other than those included in the IRDeltaRho property.

This property is read-only.

SA-CVA risk weights for the IR Vega risk, represented as a table. The table contains the risk weights for all currencies.

This property is read-only.

SA-CVA risk factor correlations for the IR Vega risk, represented as a table. The table contains the risk factor correlations for all currencies.

This property is read-only.

SA-CVA cross-bucket correlation for the IR Delta and Vega risks, represented as a numeric value.

Data Types: double

SA-CVA Foreign Exchange (FX)

This property is read-only.

SA-CVA risk weight for the FX Delta risk, represented as a numeric value.

Data Types: double

This property is read-only.

SA-CVA risk weight for the FX Vega risk, represented as a numeric value.

Data Types: double

This property is read-only.

SA-CVA cross-bucket correlation for the FX Delta and Vega risks, represented as a numeric value.

Data Types: double

SA-CVA Counterparty Credit Spread (CS-CPY)

This property is read-only.

SA-CVA risk weights for the CS-CPY Delta risk, represented as a table.

This property is read-only.

SA-CVA risk factor correlations for the CS-CPY Delta risk, represented as a table.

This property is read-only.

SA-CVA risk factor cross-bucket correlations for the CS-CPY Delta risk, represented as a table.

SA-CVA Reference Credit Spread (CS-REF)

This property is read-only.

SA-CVA risk weights for the CS-REF Delta risk, represented as a table.

This property is read-only.

SA-CVA risk weight for the CS-REF Vega risk, represented as a numeric value.

Data Types: double

This property is read-only.

SA-CVA risk factor cross-bucket correlations for the CS-REF Delta and Vega risks, represented as a table.

SA-CVA Equity (EQ)

This property is read-only.

SA-CVA risk weights for the EQ Delta risk, represented as a table.

This property is read-only.

SA-CVA risk weights for the EQ Vega risk, represented as a table.

This property is read-only.

SA-CVA risk factor cross-bucket correlations for the EQ Delta and Vega risks, represented as a table.

SA-CVA Commodity (COMM)

This property is read-only.

SA-CVA risk weights for the COMM Delta risk, represented as a table.

This property is read-only.

SA-CVA risk weight for the COMM Vega risk, represented as a numeric value.

Data Types: double

This property is read-only.

SA-CVA risk factor cross-bucket correlations for the COMM Delta and Vega risks, represented as a table.

Object Functions

capitalCalculate SA-CVA capital requirements

Examples

collapse all

Create an sacva object with default properties using the SA-CVA CRIF file SACVA_CRIF_Mixed.csv, which is attached to this example.

mySACVA = sacva("SACVA_CRIF_Mixed.csv")
mySACVA = 
  sacva with properties:

                       CRIF: [120×14 table]
              NumPortfolios: 3
               PortfolioIDs: [3×1 string]
                 Portfolios: [3×1 sacva.Portfolio]
                 Qualifiers: [7×1 string]
                 Regulation: "Basel_MAR50"
           DomesticCurrency: "USD"
                FXSpotRates: [0×0 table]
                 Multiplier: 1
                          R: 0.0100
         IRDeltaRiskWeights: [6×2 table]
                 IRDeltaRho: [6×6 table]
    IRDeltaRiskWeightsExtra: [2×2 table]
            IRDeltaRhoExtra: [2×2 table]
          IRVegaRiskWeights: [2×2 table]
                  IRVegaRho: [2×2 table]
                    IRGamma: 0.5000
         FXDeltaRiskWeights: 0.1100
          FXVegaRiskWeights: 1
                    FXGamma: 0.6000
      CSCPYDeltaRiskWeights: [9×3 table]
              CSCPYDeltaRho: [3×4 table]
            CSCPYDeltaGamma: [8×8 table]
      CSREFDeltaRiskWeights: [17×2 table]
       CSREFVegaRiskWeights: 1
                 CSREFGamma: [17×17 table]
         EQDeltaRiskWeights: [13×2 table]
          EQVegaRiskWeights: [13×2 table]
                    EQGamma: [13×13 table]
       COMMDeltaRiskWeights: [11×2 table]
        COMMVegaRiskWeights: 1
                  COMMGamma: [11×11 table]

You can then use the capital object function with the sacva object.

Create an sacva object using the SA-CVA CRIF file SACVA_CRIF_Mixed.csv, which is attached to this example. Specify Euro for the domestic currency, a multiplier of 1.5, and the possibility of perfect hedging using the DomesticCurrency, Multiplier, and R name-value arguments, respectively.

mySACVA = sacva("SACVA_CRIF_Mixed.csv",DomesticCurrency="EUR",Multiplier=1.5,R=0)
mySACVA = 
  sacva with properties:

                       CRIF: [120×14 table]
              NumPortfolios: 3
               PortfolioIDs: [3×1 string]
                 Portfolios: [3×1 sacva.Portfolio]
                 Qualifiers: [7×1 string]
                 Regulation: "Basel_MAR50"
           DomesticCurrency: "EUR"
                FXSpotRates: [0×0 table]
                 Multiplier: 1.5000
                          R: 0
         IRDeltaRiskWeights: [6×2 table]
                 IRDeltaRho: [6×6 table]
    IRDeltaRiskWeightsExtra: [2×2 table]
            IRDeltaRhoExtra: [2×2 table]
          IRVegaRiskWeights: [2×2 table]
                  IRVegaRho: [2×2 table]
                    IRGamma: 0.5000
         FXDeltaRiskWeights: 0.1100
          FXVegaRiskWeights: 1
                    FXGamma: 0.6000
      CSCPYDeltaRiskWeights: [9×3 table]
              CSCPYDeltaRho: [3×4 table]
            CSCPYDeltaGamma: [8×8 table]
      CSREFDeltaRiskWeights: [17×2 table]
       CSREFVegaRiskWeights: 1
                 CSREFGamma: [17×17 table]
         EQDeltaRiskWeights: [13×2 table]
          EQVegaRiskWeights: [13×2 table]
                    EQGamma: [13×13 table]
       COMMDeltaRiskWeights: [11×2 table]
        COMMVegaRiskWeights: 1
                  COMMGamma: [11×11 table]

More About

expand all

References

[1] Bank for International Settlements. "MAR50 — Credit Valuation Adjustment Framework." January 2023. https://www.bis.org/basel_framework/chapter/MAR/50.htm.

Version History

Introduced in R2026b