charge
Calculate total capital market risk charge results for each portfolio
Since R2024b
Description
          computes the capital market risk charge for all portfolios in the ChargeResults = charge(frtbsaObject)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.
Examples
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 bankDefine 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
FRTB-SA object, specified as a frtbsa object. You create a
              frtbsa object using frtbsa. 
Data Types: object
Output Arguments
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 theChargeResultsobject.PortfolioIDs—NumPortfolios-by-1array of strings containing the portfolio IDs of each portfolio.Regulation— Jurisdiction. The default is"Basel".DomesticCurrency— Domestic currency. The default is"USD".Charges—NumPortfolios-by-1array of market risk capital charges.ComponentResults—NumPortfolios-by-1array offrtbsa.chargePortfolioResultsobjects containing the calculation results for each portfolio. Thefrtbsa.chargePortfolioResultsobject properties are:PortfolioIDs— Scalar string indicating the ID of the portfolio.Charge— Capital risk charge. Scalar.SBM—frtbsa.sbmPortfolioResultsobject containing the sensitivity-based-risk charge data.DRC—frtbsa.drcPortfolioResultsobject containing the default risk charge data.RRAO—frtbsa.rraoPortfolioResultsobject 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
Under the FRTB-SA framework, the charge is the sum of the capital charges for all risk factor categories, plus any applicable add-ons.
This total charge represents the minimum amount of capital that the bank must hold to cover the market risk in its trading book under the standardized approach.
The FRTB-SA capital charge is composed of several components, each designed to address specific types of risks:
Sensitivity-based Method (SBM) — This component is the main component of the FRTB-SA capital charge. It requires banks to calculate capital charges based on the sensitivities of their trading book positions to various risk factors, such as interest rate risk, credit spread risk, equity risk, foreign exchange risk, and commodity risk. The sensitivities are then risk-weighted and aggregated, taking into account prescribed correlations.
Default risk charge (DRC) — This component covers the risk of default of issuers of debt and equity instruments in the trading book. It is calculated using a supervisory formula under the standard approach (SA).
Residual risk add-on (RRAO) — The RRAO is an additional capital charge for risks not captured by the SBM or DRC, particularly those associated with exotic or complex products, imperfect hedging strategies, or other specific risks considered residual in nature.
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
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Sélectionner un site web
Choisissez un site web pour accéder au contenu traduit dans votre langue (lorsqu'il est disponible) et voir les événements et les offres locales. D’après votre position, nous vous recommandons de sélectionner la région suivante : .
Vous pouvez également sélectionner un site web dans la liste suivante :
Comment optimiser les performances du site
Pour optimiser les performances du site, sélectionnez la région Chine (en chinois ou en anglais). Les sites de MathWorks pour les autres pays ne sont pas optimisés pour les visites provenant de votre région.
Amériques
- América Latina (Español)
 - Canada (English)
 - United States (English)
 
Europe
- Belgium (English)
 - Denmark (English)
 - Deutschland (Deutsch)
 - España (Español)
 - Finland (English)
 - France (Français)
 - Ireland (English)
 - Italia (Italiano)
 - Luxembourg (English)
 
- Netherlands (English)
 - Norway (English)
 - Österreich (Deutsch)
 - Portugal (English)
 - Sweden (English)
 - Switzerland
 - United Kingdom (English)