Skip to content

16.4 巴塞尔协议与监管资本

名词解释:巴塞尔协议(Basel Accords)

巴塞尔协议是国际清算银行(BIS)下属的巴塞尔银行监管委员会(BCBS)制定的全球银行监管标准。Basel III 是 2008 年金融危机后推出的全面改革方案,强化了资本充足率、杠杆率和流动性要求。对于量化交易团队,理解巴塞尔协议尤其是市场风险框架(FRTB)至关重要,因为它直接影响资本占用和策略的经济可行性。

一、Basel III 三大支柱

1.1 三大支柱概述

支柱核心内容量化相关度
支柱一:最低资本要求信用风险资本、市场风险资本、操作风险资本的最低计算标准★★★★★
支柱二:监管审查银行内部资本充足性评估(ICAAP)、压力测试、集中度风险管理★★★★
支柱三:市场纪律信息披露要求,增强透明度★★★

1.2 资本充足率要求

Basel III 的核心资本要求:

资本要求最低比例(风险加权资产 RWA%)备注
CET1(核心一级资本)4.5%普通股和留存收益
Tier1(一级资本)6.0%CET1 + 其他一级资本工具
总资本8.0%Tier1 + Tier2
资本留存缓冲(CCB)2.5%在最低要求之上的额外缓冲
逆周期资本缓冲(CCyB)0-2.5%由各国监管自主决定
G-SIB 附加1.0-3.5%全球系统重要性银行附加

1.3 杠杆率与流动性比率

除资本充足率外,Basel III 还引入了:

  • 杠杆率(Leverage Ratio):CET1 / 总敞口 >= 3%,不依赖风险加权
  • LCR(流动性覆盖率):高质量流动性资产 / 30天净现金流出 >= 100%
  • NSFR(净稳定资金比率):可用稳定资金 / 所需稳定资金 >= 100%
PYTHON60 行 · 2.1 KB
📄此处有展示代码60 行 · 2.1 KB展开 ▼
python
def calculate_basel_capital_ratios(cet1: float,
                                    tier1: float,
                                    total_capital: float,
                                    rwa_credit: float,
                                    rwa_market: float,
                                    rwa_operational: float,
                                    total_exposure: float,
                                    is_gsib: bool = False) -> dict:
    """
    计算 Basel III 资本充足率指标。

    参数:
        cet1: 核心一级资本
        tier1: 一级资本
        total_capital: 总资本(Tier1+Tier2)
        rwa_credit: 信用风险加权资产
        rwa_market: 市场风险加权资产
        rwa_operational: 操作风险加权资产
        total_exposure: 杠杆率分母(总暴露)
        is_gsib: 是否为全球系统重要性银行
    返回:
        各比率及其与最低要求的比较
    """
    total_rwa = rwa_credit + rwa_market + rwa_operational

    cet1_ratio = cet1 / total_rwa * 100
    tier1_ratio = tier1 / total_rwa * 100
    total_capital_ratio = total_capital / total_rwa * 100
    leverage_ratio = cet1 / total_exposure * 100

    # 最低要求(含缓冲)
    min_cet1 = 4.5 + 2.5  # +CCB
    min_tier1 = 6.0 + 2.5
    min_total = 8.0 + 2.5
    min_leverage = 3.0

    if is_gsib:
        gsib_surcharge = 2.0  # 简化假设
        min_cet1 += gsib_surcharge
        min_tier1 += gsib_surcharge
        min_total += gsib_surcharge

    return {
        'CET1_Ratio': cet1_ratio,
        'CET1_Minimum': min_cet1,
        'CET1_Headroom': cet1_ratio - min_cet1,
        'Tier1_Ratio': tier1_ratio,
        'Tier1_Minimum': min_tier1,
        'Tier1_Headroom': tier1_ratio - min_tier1,
        'Total_Capital_Ratio': total_capital_ratio,
        'Total_Capital_Minimum': min_total,
        'Leverage_Ratio': leverage_ratio,
        'Leverage_Minimum': min_leverage,
        'Compliant': (
            cet1_ratio >= min_cet1 and
            tier1_ratio >= min_tier1 and
            total_capital_ratio >= min_total and
            leverage_ratio >= min_leverage
        )
    }
点击展开可浏览运行结果
📘 本段代码定义了 1 个函数/类:函数 `calculate_basel_capital_ratios`。该片段为教学展示(未包含独立运行的输入数据),可在实战练习中结合真实数据调用。

二、市场风险标准法(SA)与内部模型法(IMA)

2.1 两种方法的比较

特征标准法(SA)内部模型法(IMA)
计算方法监管规定的标准冲击银行内部 VaR/ES 模型
复杂度低,规则驱动高,需要模型审批
资本要求通常较高(保守)通常较低(但附加乘数)
监管审批无需需要监管审批和持续验证
适用对象中小银行、简单组合大型银行、复杂衍生品组合

2.2 标准法的简化计算

PYTHON83 行 · 3.0 KB
📄此处有展示代码83 行 · 3.0 KB展开 ▼
python
def market_risk_standardized_approach(positions: dict,
                                       sensitivities: dict,
                                       risk_weights: dict) -> dict:
    """
    简化版市场风险标准法(SA)的资本计算。

    基于敏感度的方法(Sensitivities-Based Method):
    1. 计算各风险因子的敏感度
    2. 应用监管风险权重
    3. 按风险类别聚合
    4. 跨类别相关聚合

    参数:
        positions: {头寸ID: 名义本金}
        sensitivities: {头寸ID: {风险因子: 敏感度}}
        risk_weights: {风险因子: 监管风险权重}
    返回:
        市场风险 RWA
    """
    # 风险类别分组
    risk_classes = {
        'GIRR': ['rate_1y', 'rate_5y', 'rate_10y', 'rate_30y'],
        'CSR': ['credit_AAA', 'credit_BBB', 'credit_HY'],
        'Equity': ['equity_large_cap', 'equity_small_cap',
                    'equity_emerging'],
        'FX': ['fx_eur', 'fx_jpy', 'fx_gbp', 'fx_em'],
        'Commodity': ['commodity_energy', 'commodity_metals',
                       'commodity_agriculture']
    }

    # 步骤1:计算加权敏感度
    weighted_sensitivities = {cls: np.zeros(len(factors))
                               for cls, factors in risk_classes.items()}

    for position_id, nominal in positions.items():
        for factor, sensitivity in sensitivities.get(position_id, {}).items():
            for cls, factors in risk_classes.items():
                if factor in factors:
                    idx = factors.index(factor)
                    weight = risk_weights.get(factor, 0.05)
                    weighted_sensitivities[cls][idx] += \
                        nominal * sensitivity * weight

    # 步骤2:按风险类别内聚合
    # 类内相关系数矩阵
    rho_intra = {
        'GIRR': 0.5, 'CSR': 0.4, 'Equity': 0.6,
        'FX': 0.5, 'Commodity': 0.4
    }

    class_capital = {}
    for cls, ws in weighted_sensitivities.items():
        K = len(ws)
        if K <= 1:
            class_capital[cls] = abs(ws[0]) if K == 1 else 0
        else:
            # 有相关聚合
            sum_sq = np.sum(ws ** 2)
            sum_cross = 0
            for i in range(K):
                for j in range(K):
                    if i != j:
                        sum_cross += ws[i] * ws[j] * rho_intra[cls]
            class_capital[cls] = np.sqrt(max(sum_sq + sum_cross, 0))

    # 步骤3:跨风险类别聚合(类间相关系数 = 0.5)
    rho_inter = 0.5
    total_capital = np.sqrt(
        sum(v**2 for v in class_capital.values()) +
        sum(class_capital[c1] * class_capital[c2] * rho_inter
            for i, c1 in enumerate(class_capital)
            for c2 in list(class_capital.keys())[i+1:])
    )

    # 步骤4:RWA = 资本要求 * 12.5(8% 最低资本比率的倒数)
    rwa = total_capital * 12.5

    return {
        'Class_Capitals': class_capital,
        'Total_Capital_Charge': total_capital,
        'Market_Risk_RWA': rwa,
        'Implied_Min_Capital': rwa * 0.08
    }
点击展开可浏览运行结果
📘 本段代码定义了 1 个函数/类:函数 `market_risk_standardized_approach`(简化版市场风险标准法(SA)的资本计算)。该片段为教学展示(未包含独立运行的输入数据),可在实战练习中结合真实数据调用。

三、FRTB 框架

3.1 FRTB 的核心变革

《交易账户根本审查》(Fundamental Review of the Trading Book, FRTB)是 Basel III 中市场风险框架的重大改革,于 2016 年发布,2023 年起逐步实施。

核心变革包括:

  1. 从 VaR 到 Expected Shortfall (ES):以 97.5% ES 替代 99% VaR
  2. 引入流动性持有期(Liquidity Horizon):不同资产类别的流动性期限不同(10天到250天)
  3. 交易账户与银行账户的边界更加清晰:基于"证据推定"原则
  4. 标准法(SA)被设计为 IMA 的地板(Floor):IMA 资本不能低于 SA 的 72.5%

3.2 FRTB-SA 的敏感度方法

FRTB 标准法采用基于敏感度的方法(Sensitivities-Based Approach, SBA):

PYTHON42 行 · 1.3 KB
📄此处有展示代码42 行 · 1.3 KB展开 ▼
python
def frtb_sba_capital(delta_charges: dict,
                      vega_charges: dict,
                      curvature_charges: dict) -> dict:
    """
    FRTB 标准法(基于敏感度的方法)资本汇总。

    总资本 = Delta资本 + Vega资本 + 曲率风险资本

    参数:
        delta_charges: 各风险类别的 Delta 资本
        vega_charges: 各风险类别的 Vega 资本
        curvature_charges: 各风险类别的曲率风险资本
    返回:
        FRTB-SA 总资本要求
    """
    risk_classes = list(delta_charges.keys())
    rho_inter = 0.5  # 类间相关系数

    # 各类别内 Delta+Vega+Curvature 简单加总
    class_capital = {}
    for cls in risk_classes:
        class_capital[cls] = (
            delta_charges.get(cls, 0) +
            vega_charges.get(cls, 0) +
            curvature_charges.get(cls, 0)
        )

    # 跨类别聚合
    total_capital = np.sqrt(
        sum(v**2 for v in class_capital.values()) +
        sum(class_capital[c1] * class_capital[c2] * rho_inter
            for i, c1 in enumerate(class_capital)
            for c2 in list(class_capital.keys())[i+1:])
    )

    return {
        'Delta_Charges': delta_charges,
        'Vega_Charges': vega_charges,
        'Curvature_Charges': curvature_charges,
        'Total_Capital_Charge': total_capital,
        'RWA': total_capital * 12.5
    }
点击展开可浏览运行结果
📘 本段代码定义了 1 个函数/类:函数 `frtb_sba_capital`(FRTB 标准法(基于敏感度的方法)资本汇总)。该片段为教学展示(未包含独立运行的输入数据),可在实战练习中结合真实数据调用。

四、中国版巴塞尔协议

4.1 中国银保监会的实施

中国于 2023 年 2 月发布了《商业银行资本管理办法(征求意见稿)》(被称为"中国版 Basel III 最终方案"),于 2024 年 1 月起施行。与标准的 Basel III 相比,中国版的特色包括:

  1. 分档监管:将银行分为三档,分别适用不同的资本规则
  2. 地方政府债券的风险权重:一般债 10%,专项债 20%(低于 Basel 标准)
  3. 对小微企业的支持:符合条件的小微企业贷款享受 75% 风险权重
  4. 房地产开发贷:审慎但差异化处理

4.2 对量化交易业务的影响

对于量化交易团队,监管资本的影响体现在:

  1. 交易策略的资本效率:不同策略的 RWA 占用差异巨大,资本成本直接影响策略的净收益
  2. 自营交易的资本约束:中国对券商自营交易的资本计量比银行更加严格
  3. 跨境套利的合规考量:境内外的资本规则差异可能创造套利机会,但也带来合规风险
PYTHON40 行 · 1.4 KB
📄此处有展示代码40 行 · 1.4 KB展开 ▼
python
def strategy_capital_efficiency(annualized_return: float,
                                 annualized_volatility: float,
                                 rwa_charge: float,
                                 capital_ratio: float = 0.08,
                                 hurdle_rate: float = 0.15) -> dict:
    """
    计算策略的资本效率和风险调整后收益。

    参数:
        annualized_return: 策略年化预期收益(元)
        annualized_volatility: 年化波动率(元)
        rwa_charge: 策略的风险加权资产占用(元)
        capital_ratio: 最低资本充足率
        hurdle_rate: 股权资本的最低要求回报率
    返回:
        资本效率指标
    """
    # 所需监管资本
    required_capital = rwa_charge * capital_ratio

    # 资本回报率
    roc = annualized_return / required_capital * 100

    # 风险调整后资本回报率
    raroc = annualized_return / (required_capital * 2) * 100

    # 经济利润(扣除资本成本)
    economic_profit = annualized_return - required_capital * hurdle_rate

    # 夏普比率
    sharpe = annualized_return / annualized_volatility

    return {
        'Required_Capital': required_capital,
        'ROC': roc,
        'RAROC': raroc,
        'Economic_Profit': economic_profit,
        'Sharpe_Ratio': sharpe,
        'Capital_Efficient': roc > hurdle_rate * 100
    }
点击展开可浏览运行结果
📘 本段代码定义了 1 个函数/类:函数 `strategy_capital_efficiency`(计算策略的资本效率和风险调整后收益)。该片段为教学展示(未包含独立运行的输入数据),可在实战练习中结合真实数据调用。

监管资本框架深刻影响了量化策略的设计和选择。在资本约束下,策略需要不仅在绝对收益上表现优异,还要在单位资本消耗的收益上具有竞争力。这自然引出了尾部对冲策略的议题——如何在满足监管资本要求的同时,通过精心的尾部对冲设计来提升策略的资本效率。