rrao
Calculate residual risk add-on (RRAO) charge results for each portfolio
Since R2024b
Description
computes the residual risk add-on (RRAO) charge results for each portfolio using the
RRAOResults
= rrao(frtbsaObject
)frtbsa
object. For more information, see
Residual Risk Add-on Capital.
Examples
Calculate Residual Risk Add-On Using frtbsa
Object
Use a frtbsa
object and the rrao
function to calculate the residual risk add-on (RRAO) charge results 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 for numeric data to use 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_d491" 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 the 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 RRAO Capital Charge
The RRAO charge covers risks that are not fully captured by the other components of the FRTB capital charges, particularly those arising from positions with exotic or nonlinear payoffs, as well as other risks that are deemed to be residual in nature. Use rrao
to compute the RRAO charge results for each portfolio using the frtbsa
object.
RRAOResults = rrao(myFRTBSA)
RRAOResults = rraoResults with properties: NumPortfolios: 2.00 PortfolioIDs: [2×1 string] Regulation: "Basel_d491" DomesticCurrency: "USD" Charges: [2×1 double] ComponentResults: [2×1 frtbsa.rraoPortfolioResults] ResultsTable: [2×4 table]
The Charges
output contains the RRAO risk charge of the portfolio.
RRAOResults.Charges
ans = 2×1
3310.00
2800.00
The ResultsTable
output contains the high-level risk RRAO charge calculations of the portfolios.
RRAOResults.ResultsTable
ans=2×4 table
PortfolioIDs Total Exotic ORR
____________ _______ _______ ______
"P1" 3310.00 3000.00 310.00
"P2" 2800.00 2500.00 300.00
The ComponentResults
output contains detailed RRAO risk charge information for a given portfolio. Examine the RRAO risk charge for the first portfolio.
RRAOResults.ComponentResults(1)
ans = rraoPortfolioResults with properties: PortfolioID: "P1" Charge: 3310.00 ChargeBySensitivityID: [4×5 table] ChargeByInstrumentType: [2×2 table]
Display charges by instrument type. Portfolio P1
has both exotic underlying instruments and other residual risk instruments.
RRAOResults.ComponentResults(1).ChargeByInstrumentType
ans=2×2 table
InstrumentType Charge
______________ _______
"Exotic" 3000.00
"ORR" 310.00
Input Arguments
frtbsaObject
— FRTB-SA object
object
FRTB-SA object, specified as a frtbsa
object. You create a
frtbsa
object using frtbsa
.
Data Types: object
Output Arguments
RRAOResults
— Residual risk add-on capital charge results
object
Residual risk add-on capital charge results , returned as a
RRAOResults
object. The RRAOResults
object has
the following properties:
NumPortfolios
— Number of portfolios whose residual risk add-on capital charges are contained in theRRAOResults
object.Regulation
— Jurisdiction. The default is"Basel"
.DomesticCurrency
— Domestic currency. The default is"USD"
.Charges
—NumPortfolios
-by-1
array of residual risk add-on capital charges.PortfolioIDs
—NumPortfolios
-by-1
array of strings containing the portfolio IDs of each portfolio.ComponentResults
—NumPortfolios
-by-1
array offrtbsa.rraoPortfolioResults
objects containing the calculation results for each portfolio. Thefrtbsa.rraoPortfolioResults
object properties are:PortfolioIDs
— Scalar string indicating the ID of the portfolio.Charge
— Residual risk add-on capital charge of the portfolio.ChargeBySensitivityID
— Table displaying the residual risk add-on capital calculations by sensitivity ID.ChargeByInstrumentType
— Table displaying the residual risk add-on capital calculations by instrument type.
ResultsTable
— Table displaying the high-level risk add-on capital calculation results for all portfolios.
More About
Residual Risk Add-on Capital
Under the FRTB-SA framework, the residual risk add-on capital (RRAO) covers risks that are not fully captured by the other components of the FRTB capital charges, particularly those arising from positions with exotic or nonlinear payoffs, as well as other risks that are deemed to be residual in nature.
Residual risks are those risks that arise from:
Gap risk — A risk of a significant change in vega parameters in options due to small movements in the underlying, which results in hedge slippage. Relevant instruments subject to gap risk include all path dependent options, such as barrier options, and Asian options as well as all digital options.
Correlation risk — A risk of a change in a correlation parameter necessary for determining the value of an instrument with multiple underlyings. Relevant instruments subject to correlation risk include all basket options, best-of-options, spread options, basis options, Bermudan options, and quanto options.
Behavioral risk — A risk of a change in exercise and prepayment outcomes such as those that arise in fixed rate mortgage products where retail clients might make decisions motivated by factors other than pure financial gain (such as demographical features or other social factors). A callable bond can be seen as possibly behavioral risk only if the right to call lies with a retail client.
RRAO is calculated by applying risk weights to notional amounts of instruments with nonlinear payoffs, where the risk weight is determined based on the portfolio's asset class.
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.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- 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)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)