3. 收益率与损失计算
在VaR建模中,收益率与损失计算是连接市场数据与风险度量的桥梁。无论采用历史模拟、参数法还是蒙特卡洛,第一步都必须把原始价格序列转换为可建模的收益率,再把收益率映射到组合损益。这一步若处理不当,后续所有风险数字都会失真。本节围绕简单收益率、对数收益率、组合损益映射与头寸映射方法四个核心问题展开。
一、核心原理:两种收益率的定义与差异
简单收益率(Simple Return)定义为相邻价格的变化率:Rt = (Pt − Pt−1) / Pt−1。它直观、易解释,且具有可加性——组合收益率等于各资产收益率的加权和,权重为各资产期初市值占比。这一性质使简单收益率在组合层面非常方便。
对数收益率(Log Return)定义为价格比值的自然对数:rt = ln(Pt / Pt−1)。它具备时间可加性——多期对数收益率等于各期之和,因此在统计建模、波动率估计和蒙特卡洛路径模拟中被广泛使用。但它在组合层面不可直接加权,需要先转换回简单收益率再聚合。
二、方法流程:从价格到损益的四步映射
- 数据清洗与对齐:处理缺失值、停牌、分红拆股,确保各资产时间戳一致。
- 收益率计算:按资产类型选择简单或对数收益率,注意频率(日、周、月)与年化口径。
- 头寸映射:将组合中的金融工具映射为风险因子暴露,例如期权映射为Delta、Gamma、Vega暴露。
- 损益映射:用风险因子变动乘以暴露,得到组合损益序列,作为VaR的输入。
下面是一段Python示例,展示两种收益率的计算与转换:
import numpy as np
prices = np.array([100.0, 102.0, 101.0, 105.0])
simple_ret = prices[1:] / prices[:-1] - 1.0
log_ret = np.log(prices[1:] / prices[:-1])
# 对数转简单
simple_from_log = np.exp(log_ret) - 1.0
print(simple_ret, log_ret, simple_from_log)
三、头寸映射方法:线性与非线性工具的处理
头寸映射的核心是把组合中的每一个头寸,转换为对一组标准风险因子的敞口。对于股票、债券、外汇等线性工具,映射相对直接:股票映射为价格因子,债券映射为利率曲线关键期限点,外汇映射为汇率因子。对于期权等非线性工具,常用方法包括Delta映射、Delta-Gamma映射和Delta-Gamma-Vega映射。
| 工具类型 | 映射方法 | 风险因子 | 适用场景 |
|---|---|---|---|
| 股票现货 | 市值映射 | 股票价格 | 线性组合 |
| 债券 | 久期映射 | 利率曲线关键点 | 利率风险 |
| 外汇远期 | 本币/外币映射 | 汇率、利率 | 跨币种组合 |
| 期权 | Delta-Gamma | 标的、波动率 | 非线性风险 |
| 期权 | Delta-Gamma-Vega | 标的、波动率、时间 | 高精度VaR |
以Delta-Gamma映射为例,期权损益近似为:ΔP ≈ Δ·ΔS + ½·Γ·(ΔS)²。这一近似在标的变动较小时精度较高,但在极端行情下会低估损失,因此历史模拟中常直接重估期权价值。
四、案例与场景:一个多资产组合的损益映射
假设组合包含:100万元沪深300ETF、50万元10年期国债、20万元美元兑人民币远期。映射步骤如下:ETF映射为沪深300指数因子,国债映射为10年期国债收益率因子,远期映射为USD/CNY汇率因子。每个因子的历史收益率序列乘以对应敞口,得到三个损益序列,再相加得到组合总损益序列。
# 组合损益映射示例
exposure = {'CSI300': 1_000_000, 'CGB10Y': 500_000, 'USDCNY': 200_000}
factor_returns = {'CSI300': -0.02, 'CGB10Y': 0.005, 'USDCNY': 0.01}
pnl = sum(exposure[k] * factor_returns[k] for k in exposure)
print('组合损益:', pnl)
五、误区与复盘
- 混用收益率类型:在组合层面直接加权对数收益率,导致损益低估或高估。正确做法是先转简单收益率再聚合。
- 忽略分红与拆股:未调整价格会导致虚假的极端收益率,污染VaR估计。
- 头寸映射过粗:把期权简单映射为线性敞口,忽略Gamma和Vega,在波动率剧烈变化时严重低估风险。
- 频率不一致:资产A用日频、资产B用周频,直接相加损益会造成时间尺度错配。
- 货币单位未统一:跨币种组合未换算为本币,导致敞口权重错误。
掌握收益率与损失计算的正确方法,是VaR建模可靠性的基石。无论后续采用历史模拟、参数法还是蒙特卡洛,这一步的精度和一致性都直接决定风险度量的可信度。建议在实际项目中建立标准化的计算流程和校验机制,确保从价格到损益的每一步都可追溯、可复现。