债券交易中的归因分析(Attribution Analysis)
债券交易中的归因分析(Attribution Analysis)
简介
债券交易中的归因分析(Attribution Analysis)是一种用来评估投资组合表现以及识别收益来源的工具。债券市场由于其特有的收益驱动因素,如利率、信用利差、久期等,归因分析的内容和方法也更为复杂。以下是债券交易归因分析中通常包含的内容:
利率风险(Duration Effect / Yield Curve Effect)
- 久期贡献(Duration Contribution):
衡量利率变动对债券组合的影响。久期是债券对利率变化敏感性的量化指标,主要分析利率上升或下降对组合价值的影响。 - 收益率曲线变动(Yield Curve Shift):
分析收益率曲线的平行移动、陡峭化或形状变化(如扭曲)对债券价格的影响。
- 久期贡献(Duration Contribution):
息票收入(Coupon Income)
- 票息贡献:
票息收入是债券投资的基础收益来源之一。归因分析会区分纯粹来自票息的收益,以便与其他收益来源区分开。
- 票息贡献:
信用利差(Credit Spread)
- 信用利差变化贡献(Credit Spread Effect):
分析因信用评级变化或市场风险偏好变化导致利差缩窄或扩大对债券组合收益的影响。例如,高收益债券的利差缩窄会带来价格上涨。 - 行业或发行人贡献:
进一步细化至行业(如金融、能源)或特定发行人(如某公司)的信用利差变化对组合收益的影响。
- 信用利差变化贡献(Credit Spread Effect):
曲线定位(Curve Positioning)
- 持仓位置:
不同期限段(例如短期、中期、长期债券)的投资权重如何影响组合表现。 - 子曲线贡献:
针对不同期限的收益率变化进行细分分析。例如,10年期债券与2年期债券的利率变化对组合的不同影响。
- 持仓位置:
交易策略影响
- 主动管理贡献(Active Management Contribution):
归因分析会评估投资经理的主动管理策略(如市场时机选择、证券选择)对组合收益的影响。 - 买卖差价(Bid-Ask Spread):
分析交易过程中因买卖差价产生的成本对收益的影响。
- 主动管理贡献(Active Management Contribution):
货币影响(Currency Effect)
- 如果涉及多币种债券投资,归因分析会评估汇率波动对组合收益的影响。
衍生品影响(Derivatives Effect)
- 利率衍生品:
利率掉期、国债期货等衍生品的使用对组合收益的贡献。 - 信用衍生品:
如信用违约掉期(CDS)对信用风险的对冲或增强收益的影响。
- 利率衍生品:
再投资收益(Reinvestment Income)
- 债券到期后,利息或本金再投资带来的收益。这一点在长期投资中较为重要。
组合构建因素(Allocation Effect)
- 分析组合中资产配置(如行业、区域、债券类型等)对收益的贡献。例如,投资更多高收益债券是否带来额外回报。
市场外部因素(Market Effect)
- 宏观经济因素:
通胀、GDP增长、货币政策调整等对债券市场整体的影响。 - 流动性因素:
市场流动性变化是否影响债券价格和交易成本。
- 其他因素
- 违约风险(Default Risk):
债券发行人违约风险对投资收益的潜在负面影响。 - 提前赎回风险(Call Risk):
可赎回债券被发行人提前赎回对收益的影响。 - 通胀指数债券(Inflation-Linked Bonds):
通胀变化对通胀挂钩债券的影响。
债券归因分析的主要目的是分解投资组合的总回报,将其归因于上述不同的收益驱动因素,以帮助投资经理更好地理解其投资决策的有效性。常用的分析框架包括 Brinson、Hood & Beebower (BHB) 模型 和更复杂的多因子模型。通过归因分析,投资者可以识别哪些策略或市场因素对收益产生了正面或负面的影响,并优化未来的投资决策。
如何计算归因分析指标
1. 债券总收益
- 债券总收益是最终的整体收益,来源于所有已归因和未归因的收益项。
- 这里,我们将总收益被分解为三大部分:
- 持有收益
- 票息收益
- 收敛收益
- 价格收益
- 国债曲线骑乘收益
- 国债曲线移动收益
- 利率变动收益
- 残差收益
- 持有收益
2. 票息收益
- 债券支付的固定利息,通常是债券收益的核心部分。票息收入通常指债券持有期间通过定期支付的利息所获得的收益。这是债券投资中相对稳定的一部分收益。
- 示例:4.552%(对总收益贡献最大)。
- 在没有时间维度时:
- 全期票息收入,即从债券买入之日起(持有开始)到当前时间(分析时点)所累积的所有利息收入。
- 引入时间维度后:
- 票息收入需要限定为用户选择的时间区间内的利息收入。
- 例如,选择“近三月”时,票息收入应只包含过去三个月内获得的利息。
3. 收敛收益
收敛收益 是指债券的市场价格逐渐向其到期价值(通常是面值)靠拢所带来的收益。这种现象是由于债券的剩余期限逐渐缩短,而债券价格需要在到期时等于其面值。
在债券到期前:
- 如果债券当前价格低于面值(折价债券),价格会上升到面值,投资者会获得价格上升的收益,即正的收敛收益。
- 如果债券当前价格高于面值(溢价债券),价格会下降到面值,投资者会产生价格下降的损失,即负的收敛收益。
收敛收益的计算
收敛收益可以通过以下公式计算:
公式 1: 收敛收益(逐年变化)
收敛收益 = (到期价值 - 当前债券价格) ÷ 剩余年限
- 到期价值:通常是债券的面值(如 100 元)。
- 当前债券价格:债券在市场上的现价。
- 剩余年限:债券距离到期的时间。
公式 2: 收敛收益(年化收益率)
收敛收益也可以使用年化的形式表示,作为债券到期收益率的一部分:
收敛收益 = 到期收益率 - 票息收益率
- 到期收益率:假设投资者持有债券到期时的年化收益率。
- 票息收益率:债券的年票息除以当前价格。
举例:
假设:
- 面值:100 元
- 当前价格:95 元
- 剩余期限:5 年
- 年票息:5 元(票面利率 5%)
`计算收敛收益:
逐年变化的收敛收益:
收敛收益 = (100 - 95) ÷ 5 = 1 元 / 年
每年因为价格向面值收敛,投资者会获得 1 元的正收益。
年化收敛收益:
- 到期收益率(假设 YTM = 6%):
收敛收益 = 到期收益率(6%) - 票息收益率(5 ÷ 95 ≈ 5.26%) = 6% - 5.26% ≈ 0.74%
- 收敛收益年化贡献约 0.74%。
- 到期收益率(假设 YTM = 6%):
4. 国债曲线骑乘收益
- 国债收益率曲线:表示不同期限债券的收益率关系,通常呈现上升的形状(即期限越长,收益率越高)。
- “骑乘”策略:利用收益率曲线的形状,在曲线下滑的一段区域中选择期限较长的债券持有一段时间(而非持有至到期),以此获取价格上升带来的短期收益。
2.1 国债曲线骑乘收益的计算
国债曲线骑乘收益主要来源于债券价格的上升,可以通过以下公式估算:
骑乘收益 ≈ 持有收益率 - 到期收益率
- 持有收益率:投资者在持有期间实际获得的收益率,包括票息收入与市场价格变化带来的收益。
- 到期收益率(YTM):债券当前市场价格决定的收益率,假设持有至到期。
如果收益率曲线是向下倾斜的:
- 骑乘收益为正,因为持有期间债券价格上涨。
2.2 举例说明
假设:
- 当前收益率曲线:
- 1 年期国债收益率为 3.0%,
- 3 年期国债收益率为 4.0%,
- 5 年期国债收益率为 4.5%。
- 投资者购买了一只期限为 5 年的债券,票面利率为 4.5%,到期收益率(YTM)为 4.5%。
- 持有 1 年后,债券剩余期限变为 4 年,同时 4 年期收益率降为 4.2%。
骑乘收益计算:
债券价格的变化:
- 持有 1 年后,由于债券收益率下降(从 4.5% 降至 4.2%),债券价格上涨。
- 假设债券价格上涨了 1%。
票息收入:
- 持有期间,投资者获得了一年的票息收入 = 4.5%(年化收益)。
总收益(持有收益率):
- 总收益 = 票息收入 + 债券价格上涨收益 = 4.5% + 1.0% = 5.5%。
骑乘收益:
- 骑乘收益 = 持有收益率 - 到期收益率 = 5.5% - 4.5% = 1.0%。
解释:
骑乘收益的 1.0% 来源于债券价格随着收益率曲线的变化而上升。
5. 国债曲线移动收益
债券价格因收益率曲线的平行移动或形状变化而产生的收益。
- 平行移动收益:
- 收益率曲线整体上移或下移导致的价格变化。
- 示例:未明确数值,但与非平行移动收益共同归类。
- 非平行移动收益:
- 收益率曲线形状变化(如陡峭化、弯曲变化)引起的收益。
- 示例:未明确数值。
平行移动收益
平行移动收益 是指当国债收益率曲线整体平行上移或下移时,由于收益率变化引起的债券价格变化所产生的收益。它是国债收益归因分析中国债曲线移动收益的一个重要组成部分。
以下是对平行移动收益的详细解释,以及如何通过起初和期末的国债收益率曲线来计算平行移动收益。
1. 平行移动收益的定义
- 平行移动:收益率曲线的所有期限点(短期、中期、长期)同时发生相同幅度的变化(上移或下移),即曲线形状不改变,但整体位置发生水平偏移。
- 上移:所有期限的收益率同时上升。
- 下移:所有期限的收益率同时下降。
2. 平行移动收益的来源
债券价格的变化与其久期和凸性密切相关。在收益率曲线平行移动时,债券价格变化可以用以下公式近似计算:
债券价格变化公式
ΔP ≈ -D * Δy + 0.5 * C * (Δy)^2
- ΔP:债券价格的变化。
- D:债券的修正久期,衡量债券价格对收益率变化的敏感性。
- C:债券的凸性,修正收益率变化带来的非线性影响。
- Δy:收益率的平行移动幅度(即收益率的变化量)。
如果收益率曲线发生平行下移(Δy < 0),债券价格上升,带来正收益;如果收益率曲线平行上移(Δy > 0),债券价格下降,带来负收益。
3. 如何计算平行移动收益
3.1 数据要求
起初的收益率曲线:
表示期初各期限对应的国债收益率(如 1 年期、3 年期、5 年期等)。期末的收益率曲线:
表示期末各期限对应的国债收益率。持有的债券组合:
包括每只债券的久期、凸性、面值等信息。平行移动的幅度:
通过计算期初和期末收益率曲线的平均变化量来估算平行移动幅度。
3.2 平行移动幅度的计算
假设期初和期末分别有两条收益率曲线:
- 起初收益率曲线:
(分别表示 1 年期、3 年期、5 年期的收益率)。 - 期末收益率曲线:
。
平行移动幅度((\Delta y))可以通过两条曲线的平均变化量来估算:
- :表示不同期限(如 1 年、3 年、5 年等)。
- :期初某期限的收益率。
- :期末某期限的收益率。
举例:
- 起初收益率曲线:1 年期 = 2.0%,3 年期 = 2.5%,5 年期 = 3.0%。
- 期末收益率曲线:1 年期 = 2.2%,3 年期 = 2.7%,5 年期 = 3.2%。
计算平行移动幅度:
平行移动幅度为 (即收益率曲线整体向上平移 20 个基点)。
3.3 平行移动收益的计算
使用债券组合的久期和凸性来计算平行移动收益。
公式:
整体平行移动收益可以按照债券组合的总久期和凸性计算:
平行移动收益 ≈ -D_\text{组合} * Δy + 0.5 * C_\text{组合} * (Δy)^2
- :债券组合的加权平均久期。
- :债券组合的加权平均凸性。
- :平行移动幅度。
举例:
假设投资组合包含以下债券:
- 债券 A:久期 = 4,凸性 = 0.1,权重 = 50%。
- 债券 B:久期 = 6,凸性 = 0.2,权重 = 50%。
计算组合久期和凸性:
已知:
- 平行移动幅度 。
计算平行移动收益:
平行移动收益 ≈ -5 * 0.002 + 0.5 * 0.15 * (0.002)^2
≈ -0.01 + 0.0000003
≈ -0.0097 (即 -0.97%)
- 平行移动收益为 -0.97%,表示由于收益率曲线整体上移,债券组合的价格出现了小幅下降。
非平行移动收益
非平行移动收益 是指由于国债收益率曲线的形状发生变化(而非整体平行移动)所导致的债券价格和收益的变化。它反映了收益率曲线的“非线性变化”对债券价格的影响,是债券收益归因分析中较复杂的一部分。
1. 非平行移动收益的定义
非平行移动:收益率曲线的不同期限点(如短期、中期、长期)发生不同比例的变化,导致曲线形状发生变化,包括:
- 陡峭化:短期收益率上升且长期收益率下降,或短期下降且长期上升。
- 扁平化:短期和长期收益率趋于一致。
- 弯曲变化:中期收益率相对于短期和长期收益率发生显著变化,导致曲线呈现“弯曲”或“凸起”。
非平行移动收益:
当收益率曲线的形状发生变化时,这种变化对债券价格的影响所带来的收益或损失。
2. 计算非平行移动收益
计算非平行移动收益通常需要分解收益率曲线的变化,将其分为平行移动和非平行移动两部分。通过扣除平行移动收益后的剩余部分,就可以得到非平行移动收益。
2.1 数据要求
- 起初和期末的收益率曲线:
包括不同期限的收益率(如 1 年期、3 年期、5 年期、10 年期等)。 - 债券组合信息:
包括每只债券的久期、凸性、面值等。 - 收益率曲线变化的分解:
将收益率曲线的变化分解为平行移动、陡峭化、弯曲变化等因素。
2.2 收益率曲线变化的分解
将收益率曲线的变化分解为以下部分:
- 平行移动:所有期限的收益率变化相同。
- 陡峭化:长期收益率与短期收益率的差异变化。
- 弯曲变化:中期收益率相对于短期和长期收益率的差异变化。
公式:
假设起初收益率曲线为 ,期末收益率曲线为 ,则:
收益率变化 = 平行移动 + 陡峭化 + 弯曲变化
- 平行移动 ():所有期限收益率的平均变化。
- 陡峭化 ():长期收益率和短期收益率的差异变化。
- 弯曲变化 ():中期收益率相对于短期和长期收益率的差异变化。
2.3 非平行移动收益的计算
公式 1:基于曲线敏感性分解
非平行移动收益可以通过债券价格对陡峭化和弯曲变化的敏感性来计算。公式为:
非平行移动收益 ≈
- :债券组合对收益率曲线陡峭化的敏感性。
- :陡峭化的收益率变化幅度。
- :债券组合对收益率曲线弯曲变化的敏感性。
- :弯曲变化的收益率变化幅度。
公式 2:总收益减去平行移动收益
非平行移动收益也可以通过总收益减去平行移动收益来计算:
非平行移动收益 = 总收益 - 平行移动收益
2.4 举例说明
假设:
- 起初收益率曲线:
- 1 年期:2.0%,3 年期:2.5%,5 年期:3.0%,10 年期:3.5%。
- 期末收益率曲线:
- 1 年期:2.1%,3 年期:2.6%,5 年期:3.2%,10 年期:3.4%。
分解收益率变化:
1. 平行移动幅度
平行移动幅度计算如下:
平行移动幅度为 0.075%。
2. 陡峭化变化
陡峭化幅度计算如下:
陡峭化幅度为 -0.2%。
3. 弯曲变化
弯曲变化幅度计算如下:
弯曲变化幅度为 0.2%。
计算非平行移动收益:
假设组合的敏感性:
非平行移动收益为:
非平行移动收益 ≈ S_陡峭 * Δy_陡峭化 + S_弯曲 * Δy_弯曲
≈ 1.5 * (-0.2%) + 0.8 * (0.2%)
≈ -0.3% + 0.16%
≈ -0.14%
总结
- 非平行移动收益 是由收益率曲线形状的变化(陡峭化或弯曲变化)导致的债券价格变动带来的收益。
- 计算方法:
- 分解收益率曲线的变化为平行移动、陡峭化和弯曲变化。
- 结合组合的敏感性( 和 )计算陡峭化和弯曲变化对价格的影响。
- 或者从总收益中扣除平行移动收益来间接计算。
6. 利率变动收益
利率变动收益 是指由于市场利率(或国债收益率)的变化引起债券价格波动所产生的收益或损失。它是债券收益的一个重要组成部分,因为债券价格与市场利率密切相关:利率上升时债券价格下降,利率下降时债券价格上升。
债券价格与利率的关系:
债券价格与市场利率(或到期收益率)呈反向关系:- 市场利率上升 → 债券价格下降 → 产生负的利率变动收益。
- 市场利率下降 → 债券价格上升 → 产生正的利率变动收益。
计算基础:
利率变动收益主要通过久期和凸性来衡量债券价格对利率变化的敏感性。
1. 利率变动收益的来源
债券价格对利率变动的敏感性主要由以下两部分决定:
1.1 久期效应
久期(Duration):债券价格对收益率(或利率)变化的敏感性,表示收益率每变动 1% 时债券价格的百分比变化。
价格变化的线性近似公式:
ΔP ≈ -D × Δy
- ΔP:债券价格的变化。
- D:修正久期(Modified Duration)。
- Δy:市场利率(或收益率)的变化幅度。
久期的作用:
久期越长,债券价格对利率变化的敏感性越高,利率变动收益的波动也越大。
1.2 凸性效应
凸性(Convexity):修正久期的非线性调整,表示收益率变化较大时债券价格的非线性变化。
价格变化的非线性修正公式:
ΔP ≈ -D × Δy + 0.5 × C × (Δy)^2
- C:凸性。
- 凸性调整使得久期公式在利率大幅变化时更加精确。
凸性的作用:
凸性越高,债券价格对利率下降的反应更明显(价格上涨更多);对利率上升的反应更缓和(价格下降更少)。
2. 利率变动收益的计算
2.1 基于单只债券的计算公式
对于单只债券,利率变动收益的计算公式为:
利率变动收益 ≈ -D × Δy + 0.5 × C × (Δy)^2
- D:修正久期。
- C:凸性。
- Δy:市场利率变化幅度。
举例(单只债券):
假设:
- 债券的修正久期 。
- 凸性 。
- 市场利率下降 (即下降 1%)。
计算利率变动收益:
利率变动收益 ≈ -5 × (-0.01) + 0.5 × 0.2 × (-0.01)^2
≈ 0.05 + 0.00001
≈ 0.05001(即 5.001%)
- 利率下降 1%,债券价格上升约 5.001%,产生正的利率变动收益。
2.2 基于债券组合的计算
对于债券组合,利率变动收益可以按组合久期和凸性加权计算:
公式:
- :债券组合的加权平均久期。
- :债券组合的加权平均凸性。
- :利率变化幅度。
举例(债券组合):
假设投资组合包含两只债券:
- 债券 A:权重 60%,久期 4,凸性 0.1。
- 债券 B:权重 40%,久期 6,凸性 0.3。
计算组合久期和凸性:
D(组合) = 4 × 60% + 6 × 40% = 4.8
C(组合) = 0.1 × 60% + 0.3 × 40% = 0.18
市场利率变化 (下降 2%)。
计算组合的利率变动收益:
利率变动收益 ≈ -4.8 × (-0.02) + 0.5 × 0.18 × (-0.02)^2
≈ 0.096 + 0.00036
≈ 0.09636(即 9.636%)
- 利率下降 2%,组合的价格上涨约 9.636%,产生正的利率变动收益。
总结
- 利率变动收益 是债券价格因利率变化而产生的收益或损失,主要由久期和凸性决定。
- 计算方法:
- 单只债券:基于久期、凸性和利率变化幅度计算。
- 债券组合:按组合的加权平均久期和凸性计算。
如何确定利率变化幅度
在中国市场,提到“利率变化幅度”时,具体指代的内容可能因语境和讨论的金融工具而有所不同,但通常与债券市场和利率市场相关。
- 10年期国债收益率是中国债券市场的基准利率,常被用于衡量整体利率水平的变化
7. 残差收益
在债券投资中,总收益可以分解为多种来源(例如票息收益、价格变动收益、久期贡献、信用利差变化等)。残差收益 是在这些分解项之外,无法被具体因素解释的剩余收益部分。
公式表示:
残差收益 = 实际总收益 - 各分解项的收益总和
如果将总收益(实际收益)分解为明确的收益来源,则:
总收益 = 票息收益 + 利率变动收益 + 信用利差收益 + 凸性调整 + 残差收益
- 实际总收益 是投资者实际获得的收益。
- 各项分解收益是通过模型或公式计算得出的明确收益。
- 残差收益 是剩余的、未被归因的部分。
时间维度的处理
在归因分析中引入时间维度(如近三月、近半年、近一年等)后,像 票息收入 这样的指标需要重新定义其计算范围,以匹配用户选择的时间区间。以下是对时间维度与 票息收入 的关系的详细理解:
1. 票息收入的定义
票息收入通常指债券持有期间通过定期支付的利息所获得的收益。这是债券投资中相对稳定的一部分收益。
在没有时间维度时:
- 全期票息收入,即从债券买入之日起(持有开始)到当前时间(分析时点)所累积的所有利息收入。
引入时间维度后:
- 票息收入需要限定为用户选择的时间区间内的利息收入。
- 例如,选择“近三月”时,票息收入应只包含过去三个月内获得的利息。
2. 时间维度如何影响票息收入的计算
情况 1: 选择“近三月”
票息收入仅统计过去三个月内债券支付的利息。例如:
- 假设债券的票面利率为 6%,按半年支付一次利息,每次支付 3%。
- 如果用户选择的时间范围是“近三月”,并且刚好在这期间发生了一次利息支付,那么票息收入只会包括这次支付的 3%。
- 如果在过去三个月中没有利息支付,则票息收入为 0。
情况 2: 选择“近半年”
票息收入统计过去六个月内债券支付的利息。例如:
- 如果过去六个月内发生了一次利息支付(例如 3%),票息收入将记录这一次支付的金额。
- 如果过去六个月内发生了两次利息支付(每次 3%),那么票息收入将是两次支付的总和(6%)。
情况 3: 自定义时间范围
当用户选择了一个自定义时间范围,票息收入只统计该时间范围内的利息支付。例如:
- 如果用户选择的时间范围是从 2023 年 1 月 1 日到 2023 年 3 月 31 日,则票息收入只统计在此期间支付的利息。
3. 时间维度的计算逻辑
引入时间维度后,票息收入的计算逻辑如下:
确定时间范围:
根据用户选择的时间区间(如近三月、近半年、近一年、自定义时间范围)。筛选利息支付事件:
筛选所有在时间区间内发生的利息支付事件。例如,某债券可能按季度支付利息,则仅统计区间内的支付事件。累积利息收入:
对筛选出的支付事件的金额进行累加,得到时间区间内的票息收入。
4. 举例说明
以下是一个具体场景,帮助理解时间维度对票息收入的影响:
债券基本信息
- 票面利率: 6% 年化
- 利息支付频率: 每半年支付一次(每次支付 3%)。
- 买入时间: 2023 年 1 月 1 日
场景 1: 全期分析
- 假设当前为 2024 年 1 月 1 日,持有债券满一年。
- 全期票息收入 = 6%(2023 年支付了两次利息,每次 3%)。
场景 2: 近三月分析
- 时间范围为 2023 年 10 月 1 日到 2024 年 1 月 1 日。
- 如果在这三个月内没有利息支付(如支付日期为 2023 年 7 月 1 日和 2024 年 1 月 1 日),则票息收入为 0。
场景 3: 近半年分析
- 时间范围为 2023 年 7 月 1 日到 2024 年 1 月 1 日。
- 在此时间范围内发生了一次利息支付(2023 年 7 月 1 日),票息收入 = 3%。
5. 特殊情况:非整时间区间
如果时间区间与利息支付周期不完全匹配(例如自定义时间范围为非整的3个月),则需要处理以下情况:
- 未支付完整利息:
如果债券按半年支付一次利息,但用户选择的时间范围只覆盖了一个月,则票息收入可能为 0。 - 分摊利息:
如果要精确反映时间区间内的票息收入,可按时间比例分摊票息。例如,如果单次支付利息 3%,但用户选择的时间范围覆盖了 3 个月中的一半,则票息收入可以按比例计算为 1.5%。
收益、贡献
收益和贡献的结合理解
- 收益是绝对值,表示票息收入的具体回报。
- 贡献是相对值,表示票息收入在整体收益中的占比。
结合举例:
- 假设某债券的收益归因为以下数据:
- 票息收入:收益 4%,贡献 80%。
- 价格收益:收益 1%,贡献 20%。
专业术语
以下是一些相关专业术语的英文翻译,可能在债券归因分析中用到:
- 债券归因分析 Bond Attribution Analysis
- 持有收益: Carry Return
- 票息收益: Coupon Return
- 收敛收益: Roll-down Return / Pull-to-Par Return
- 国债曲线骑乘收益: Riding the Yield Curve Return
- 价格收益: Price Return
- 利率变动收益: Interest Rate Change Return
- 国债曲线移动收益: Yield Curve Shift Return
- 平行移动收益: Parallel Shift Return
- 非平行移动收益: Non-parallel Shift Return
- 残差收益: Residual Return
MCP实现函数示例
参考下面函数:
收益率曲线构造相关函数
SwapCurve_利率曲线案例
债券计算相关函数
债券构造及相关计算案例
计算上述指标
Python 示例代码
以下是基于上述公式的实现示例(假设您已构造了 FixedRateBond
和 BondCurve
对象):
# 假设已知以下变量:
# bond: FixedRateBond 对象
# initial_curve: 初始收益率曲线
# current_curve: 当前收益率曲线
# initial_price: 初始净价
# current_price: 当前市场价格
# face_value: 债券面值
# 累计票息
accrued_interest = FrbAccruedInterestCHN(bond)
# 1. 债券总收益
total_return = (current_price + accrued_interest - initial_price) / initial_price
# 2. 票息收益
coupon_return = accrued_interest / initial_price
# 3. 收敛收益
convergence_return = (face_value - initial_price) / initial_price
# 4. 国债曲线骑乘收益
price_initial_curve = FrbPrice(bond, initial_curve)
price_current_curve = FrbPrice(bond, current_curve)
riding_return = (price_current_curve - price_initial_curve) / initial_price
# 5. 国债曲线移动收益
moved_curve_price = FrbPrice(bond, current_curve) # 假设曲线移动后的价格
curve_movement_return = (moved_curve_price - price_initial_curve) / initial_price
# 6. 利率变动收益
interest_rate_return = (price_current_curve - price_initial_curve) / initial_price
# 7. 残差收益
residual_return = total_return - (coupon_return + convergence_return + riding_return + curve_movement_return + interest_rate_return)
# 输出结果
print(f"债券总收益: {total_return:.2%}")
print(f"票息收益: {coupon_return:.2%}")
print(f"收敛收益: {convergence_return:.2%}")
print(f"国债曲线骑乘收益: {riding_return:.2%}")
print(f"国债曲线移动收益: {curve_movement_return:.2%}")
print(f"利率变动收益: {interest_rate_return:.2%}")
print(f"残差收益: {residual_return:.2%}")
怎么计算两个曲线的平行移动
要计算两个时间点的收益率曲线之间的平行变化幅度,需要比较两个时间点上所有期限的收益率变化,判断整体的平均变化幅度。以下是详细步骤和公式:
假设:
- 时间点
T1
的曲线为Curve1
,包含多个期限(tenors
)和对应的利率(rates1
)。 - 时间点
T2
的曲线为Curve2
,包含相同期限的利率(rates2
)。
目标是计算收益率曲线从 T1
到 T2
的 平行变化幅度,即整体曲线在所有期限上的平均平移。
平行变化幅度,记为 Shift
,计算公式为:
其中:
- 是期限的数量。
- :时间点
T1
曲线在第 个期限上的利率。 - :时间点
T2
曲线在第 个期限上的利率。
解释:公式的含义是计算 Curve2
和 Curve1
各个期限利率的差异,并取这些差异的均值。
实现步骤
- 获取两个时间点的曲线数据:
- 包含相同期限(
tenors
)的利率数据rates1
和rates2
。
- 包含相同期限(
- 计算每个期限的利率差异:
- 取均值:
Python 实现
以下是 Python 实现代码:
import numpy as np
# 时间点 T1 和 T2 的曲线数据
# 假设两个时间点的期限(tenors)和对应利率(rates1 和 rates2)如下:
tenors = [1, 2, 5, 10, 20] # 期限(单位:年)
rates1 = [2.1, 2.3, 2.7, 3.0, 3.2] # T1 的曲线利率(单位:%)
rates2 = [2.3, 2.5, 2.9, 3.2, 3.4] # T2 的曲线利率(单位:%)
# 确保两条曲线的期限数量相等
assert len(rates1) == len(rates2), "两条曲线的期限数量必须一致"
# 计算每个期限的利率差异
rate_differences = np.array(rates2) - np.array(rates1)
# 计算平行变化幅度(差异的均值)
parallel_shift = np.mean(rate_differences)
# 输出结果
print(f"平行变化幅度: {parallel_shift:.4f}%") # 输出平行变化幅度
示例计算
假设:
- 时间点
T1
的曲线利率为[2.1, 2.3, 2.7, 3.0, 3.2]
(单位:%)。 - 时间点
T2
的曲线利率为[2.3, 2.5, 2.9, 3.2, 3.4]
(单位:%)。
步骤 1:计算各期限利率差异
差异 = [2.3 - 2.1, 2.5 - 2.3, 2.9 - 2.7, 3.2 - 3.0, 3.4 - 3.2]
= [0.2, 0.2, 0.2, 0.2, 0.2]
步骤 2:计算平行变化幅度
平行变化幅度 = 平均(0.2, 0.2, 0.2, 0.2, 0.2) = 0.2%
因此,平行变化幅度为 0.2%。