Contenuto principale

charge

Calculate total capital market risk charge results for each portfolio

Since R2024b

Description

ChargeResults = charge(frtbsaObject) computes the capital market risk charge for all portfolios in the frtbsa object. For more information, see Charge. Also, you can use the chargeChart function to create a chart for the capital market risk charge for all portfolios.

example

Examples

collapse all

Use a frtbsa object and the charge function to calculate the total capital market risk charge for each portfolio. FRTB-SA (Standardized Approach for Fundamental Review of Trading Book) is a Basel Committee on Banking Supervision framework for calculating market capital risk requirements that is based on a set of standardized risk factors.

Create frtbsa Object

Use bank format to display numeric data using two decimal places.

format bank

Define the ISDA® FRTB-SA CRIF file.

FRTBSACRIF = "FRTBSA_CRIF.csv";

Define the DRC reference date.

DrcRefCOBDate = datetime(2023,9,21);

Use frtbsa to create the FRTB-SA object.

myFRTBSA = frtbsa(FRTBSACRIF,DRCValuationDate=DrcRefCOBDate)
myFRTBSA = 
  frtbsa with properties:

                CRIF: [159×18 table]
       NumPortfolios: 2.00
        PortfolioIDs: [2×1 string]
          Portfolios: [2×1 frtbsa.Portfolio]
          Regulation: "Basel"
    DomesticCurrency: "USD"
    DRCValuationDate: 21-Sep-2023
         NumDaysYear: 365.00

Examine Output

Display the contents of the ISDA FRTB-SA CRIF file.

myFRTBSA.CRIF
ans=159×18 table
    PortfolioID    TradeID       Variant       SensitivityID      RiskType      Qualifier     Bucket     Label1        Label2        Amount      AmountCurrency    AmountUSD    Label3    EndDate    CreditQuality    LongShortInd    CoveredBondInd    TrancheThickness
    ___________    ________    ____________    _____________    ____________    __________    ______    _________    ___________    _________    ______________    _________    ______    _______    _____________    ____________    ______________    ________________

       "P1"        "EQD_a1"    <missing>        "P1_EQD_a1"     "EQ_DELTA"      "ISSUER A"     "1"      <missing>    "SPOT"           8250.00        "USD"           8250.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQD_a2"    <missing>        "P1_EQD_a2"     "EQ_DELTA"      "ISSUER A"     "1"      <missing>    "REPO"           8333.33        "USD"           8333.33     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQD_b1"    <missing>        "P1_EQD_b1"     "EQ_DELTA"      "ISSUER B"     "2"      <missing>    "SPOT"          22000.00        "USD"          22000.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQV_a1"    "Variant 1"      "P1_EQV_a1"     "EQ_VEGA"       "ISSUER A"     "1"      "0.5"        <missing>         -50.00        "USD"            -50.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQV_a2"    "Variant 1"      "P1_EQV_a2"     "EQ_VEGA"       "ISSUER A"     "1"      "1"          <missing>         200.00        "USD"            200.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQV_b1"    "Variant 1"      "P1_EQV_b1"     "EQ_VEGA"       "ISSUER B"     "2"      "0.5"        <missing>        -166.67        "USD"           -166.67     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQC_a1"    "Variant 1a"     "P1_EQC_a1"     "EQ_CURV"       "ISSUER A"     "1"      "0.5"        <missing>      -18910.00        "USD"         -18910.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQC_a1"    "Variant 1a"     "P1_EQC_a1"     "EQ_CURV"       "ISSUER A"     "1"      "-0.5"       <missing>        6526.25        "USD"           6526.25     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQC_b1"    "Variant 1a"     "P1_EQC_b1"     "EQ_CURV"       "ISSUER B"     "2"      "0.5"        <missing>       -6288.00        "USD"          -6288.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "EQC_b1"    "Variant 1a"     "P1_EQC_b1"     "EQ_CURV"       "ISSUER B"     "2"      "-0.5"       <missing>        6120.00        "USD"           6120.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMD_a1"    <missing>        "P1_CMD_a1"     "COMM_DELTA"    "COAL"         "1"      "0"          "NEWCASTLE"      2000.00        "USD"           2000.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMD_a2"    <missing>        "P1_CMD_a2"     "COMM_DELTA"    "COAL"         "1"      "0"          "LONDON"         -500.00        "USD"           -500.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMD_b1"    <missing>        "P1_CMD_b1"     "COMM_DELTA"    "BRENT"        "2"      "0"          "LE HAVRE"        666.67        "USD"            666.67     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMD_c1"    <missing>        "P1_CMD_c1"     "COMM_DELTA"    "WTI"          "2"      "2"          "OKLAHOMA"       -875.00        "USD"           -875.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMV_a1"    "Variant 1"      "P1_CMV_a1"     "COMM_VEGA"     "COAL"         "1"      "0.5"        <missing>         333.33        "USD"            333.33     NaN        NaT        <missing>       <missing>        <missing>             NaN       
       "P1"        "CMV_a2"    "Variant 1"      "P1_CMV_a2"     "COMM_VEGA"     "COAL"         "1"      "1"          <missing>        -100.00        "USD"           -100.00     NaN        NaT        <missing>       <missing>        <missing>             NaN       
      ⋮

Display the number of portfolios and their IDs.

myFRTBSA.NumPortfolios
ans = 
          2.00

myFRTBSA.PortfolioIDs
ans = 2×1 string
    "P1"
    "P2"

Display the properties of the first Portfolio object.

myFRTBSA.Portfolios(1)
ans = 
  Portfolio with properties:

    PortfolioID: "P1"
         Trades: [69×1 frtbsa.Trade]
      RiskTypes: [69×1 string]

Display risk types of the portfolio.

myFRTBSA.Portfolios(1).RiskTypes
ans = 69×1 string
    "EQ_DELTA"
    "EQ_DELTA"
    "EQ_DELTA"
    "EQ_VEGA"
    "EQ_VEGA"
    "EQ_VEGA"
    "EQ_CURV"
    "EQ_CURV"
    "COMM_DELTA"
    "COMM_DELTA"
    "COMM_DELTA"
    "COMM_DELTA"
    "COMM_VEGA"
    "COMM_VEGA"
    "COMM_VEGA"
    "COMM_VEGA"
    "COMM_CURV"
    "COMM_CURV"
    "COMM_CURV"
    "GIRR_DELTA"
    "GIRR_DELTA"
    "GIRR_DELTA"
    "GIRR_VEGA"
    "GIRR_VEGA"
    "GIRR_VEGA"
    "GIRR_CURV"
    "GIRR_CURV"
    "FX_DELTA"
    "FX_DELTA"
    "FX_VEGA"
      ⋮

Display some of the trades of the portfolio.

myFRTBSA.Portfolios(1).Trades(1)
ans = 
  Trade with properties:

             TradeID: "EQD_a1"
             Variant: <missing>
       SensitivityID: "P1_EQD_a1"
            RiskType: "EQ_DELTA"
           Qualifier: "ISSUER A"
              Bucket: "1"
              Label1: <missing>
              Label2: "SPOT"
              Amount: 8250.00
      AmountCurrency: "USD"
           AmountUSD: 8250.00
              Label3: NaN
             EndDate: NaT
       CreditQuality: <missing>
        LongShortInd: <missing>
      CoveredBondInd: <missing>
    TrancheThickness: NaN

myFRTBSA.Portfolios(1).Trades(30)
ans = 
  Trade with properties:

             TradeID: "FXV_b1"
             Variant: "Variant 1"
       SensitivityID: "P1_FXV_b1"
            RiskType: "FX_VEGA"
           Qualifier: "EURCLP"
              Bucket: <missing>
              Label1: "0.5"
              Label2: <missing>
              Amount: 175.00
      AmountCurrency: "USD"
           AmountUSD: 175.00
              Label3: NaN
             EndDate: NaT
       CreditQuality: <missing>
        LongShortInd: <missing>
      CoveredBondInd: <missing>
    TrancheThickness: NaN

myFRTBSA.Portfolios(1).Trades(60)
ans = 
  Trade with properties:

             TradeID: "RRAO_a2"
             Variant: <missing>
       SensitivityID: "P1_RRAO_a2"
            RiskType: "RRAO_01_PERCENT"
           Qualifier: <missing>
              Bucket: <missing>
              Label1: <missing>
              Label2: <missing>
              Amount: 300000.00
      AmountCurrency: "USD"
           AmountUSD: 300000.00
              Label3: NaN
             EndDate: NaT
       CreditQuality: <missing>
        LongShortInd: <missing>
      CoveredBondInd: <missing>
    TrancheThickness: NaN

Compute Market Risk Capital Charge

The charge is the sum of the capital charges for all risk factor categories, plus any applicable add-ons. Use charge to compute the capital market risk charge for all portfolios using the frtbsa object.

ChargeResults = charge(myFRTBSA)
ChargeResults = 
  chargeResults with properties:

       NumPortfolios: 2.00
        PortfolioIDs: [2×1 string]
          Regulation: "Basel"
    DomesticCurrency: "USD"
             Charges: [2×1 double]
    ComponentResults: [2×1 frtbsa.chargePortfolioResults]
        ResultsTable: [2×5 table]

The Charges output contains the capital risk charge of the portfolios.

ChargeResults.Charges
ans = 2×1

     304838.07
     176339.24

The ResultsTable output contains the high-level risk charge calculations of the portfolios: total portfolio charge, RRAO charge, DRC charge and SBM charge.

ChargeResults.ResultsTable
ans=2×5 table
    PortfolioID      Total       RRAO         DRC          SBM   
    ___________    _________    _______    _________    _________

       "P1"        304838.07    3310.00    177008.51    124519.56
       "P2"        176339.24    2800.00     51024.29    122514.96

The ComponentResults output contains detailed capital risk charge information for a given portfolio. Examine the market risk capital charge for the second portfolio.

ChargeResults.ComponentResults(2)
ans = 
  chargePortfolioResults with properties:

    PortfolioID: "P2"
         Charge: 176339.24
            SBM: [1×1 frtbsa.sbmPortfolioResults]
            DRC: [1×1 frtbsa.drcPortfolioResults]
           RRAO: [1×1 frtbsa.rraoPortfolioResults]

Examine the SBM component of this portfolio.

ChargeResults.ComponentResults(2).SBM
ans = 
  sbmPortfolioResults with properties:

            PortfolioID: "P2"
                 Charge: 122514.96
    ChargeByCorrelation: [1×1 struct]
      ChargeByRiskClass: [21×5 table]
     IntrabucketCharges: [1×1 struct]

Display charges by the risk class.

ChargeResults.ComponentResults(2).SBM.ChargeByRiskClass
ans=21×5 table
    RiskClass    RiskMeasure    LowCorrelation    MediumCorrelation    HighCorrelation
    _________    ___________    ______________    _________________    _______________

    "GIRR"       "Delta"             300.52             296.23              298.38    
    "GIRR"       "Vega"              316.67             316.67              316.67    
    "GIRR"       "Curvature"        9323.83            9323.83             9323.83    
    "CSR_NS"     "Delta"              62.50              62.47               62.48    
    "CSR_NS"     "Vega"               46.67              47.79               47.24    
    "CSR_NS"     "Curvature"         393.90             393.90              393.90    
    "CSR_SC"     "Delta"             590.07             575.70              582.93    
    "CSR_SC"     "Vega"              198.82             195.75              197.29    
    "CSR_SC"     "Curvature"       39636.44           39634.87            39635.66    
    "CSR_SNC"    "Delta"             456.21             455.99              456.10    
    "CSR_SNC"    "Vega"              506.86             489.20              498.11    
    "CSR_SNC"    "Curvature"       19206.41           19206.41            19206.41    
    "FX"         "Delta"               8.84               8.84                8.84    
    "FX"         "Vega"              150.00             150.00              150.00    
    "FX"         "Curvature"       21373.78           21373.78            21373.78    
    "EQ"         "Delta"           14740.74           14432.78            14587.58    
      ⋮

Examine the DRC component of this portfolio.

ChargeResults.ComponentResults(2).DRC
ans = 
  drcPortfolioResults with properties:

            PortfolioID: "P2"
                 Charge: 51024.29
    ChargeByCreditClass: [2×2 table]
     IntrabucketCharges: [1×1 struct]

Display charges by the credit class.

ChargeResults.ComponentResults(2).DRC.ChargeByCreditClass
ans=2×2 table
    CreditClass     Charge 
    ___________    ________

       "NS"        20750.00
       "SNC"       30274.29

Examine the RRAO component of this portfolio.

ChargeResults.ComponentResults(2).RRAO
ans = 
  rraoPortfolioResults with properties:

               PortfolioID: "P2"
                    Charge: 2800.00
     ChargeBySensitivityID: [2×5 table]
    ChargeByInstrumentType: [2×2 table]

Display charges by the instrument type.

ChargeResults.ComponentResults(2).RRAO.ChargeByInstrumentType
ans=2×2 table
    InstrumentType    Charge 
    ______________    _______

       "Exotic"       2500.00
       "ORR"           300.00

Input Arguments

collapse all

FRTB-SA object, specified as a frtbsa object. You create a frtbsa object using frtbsa.

Data Types: object

Output Arguments

collapse all

Market risk capital charge, returned as a ChargeResults object. The ChargeResults object has the following properties:

  • NumPortfolios — Number of portfolios whose market risk capital % charges are contained in the ChargeResults object.

  • PortfolioIDsNumPortfolios-by-1 array of strings containing the portfolio IDs of each portfolio.

  • Regulation — Jurisdiction. The default is "Basel".

  • DomesticCurrency — Domestic currency. The default is "USD".

  • ChargesNumPortfolios-by-1 array of market risk capital charges.

  • ComponentResultsNumPortfolios-by-1 array of frtbsa.chargePortfolioResults objects containing the calculation results for each portfolio. The frtbsa.chargePortfolioResults object properties are:

    • PortfolioIDs — Scalar string indicating the ID of the portfolio.

    • Charge — Capital risk charge. Scalar.

    • SBMfrtbsa.sbmPortfolioResults object containing the sensitivity-based-risk charge data.

    • DRCfrtbsa.drcPortfolioResults object containing the default risk charge data.

    • RRAOfrtbsa.rraoPortfolioResults object containing the residual risk add-on risk charge data.

  • ResultsTable — Table displaying the high-level market risk capital calculation results for all portfolios.

More About

collapse all

References

[1] Bank for International Settlements. "MAR21 — Standardised Approach: Sensitivities-Based Method." March 2020. https://www.bis.org/basel_framework/chapter/MAR/21.htm.

[2] Bank for International Settlements. "MAR22 — Standardised Approach: Default Risk Capital Requirement." March 2020. https://www.bis.org/basel_framework/chapter/MAR/22.htm.

[3] Bank for International Settlements. "MAR23 — Standardised Approach: Residual Risk Add-On." March 2020. https://www.bis.org/basel_framework/chapter/MAR/23.htm.

[4] Bank for International Settlements. "CRE42 — Securitisation: External-Ratings-Based Approach (SEC-ERBA)." January 2023. https://www.bis.org/basel_framework/chapter/CRE/42.htm.

[5] Bank for International Settlements. "Basel Committee on Banking Supervision: Minimum Capital Requirements for Market Risk"." January 2019. https://www.bis.org/bcbs/publ/d457.pdf.

Version History

Introduced in R2024b