模型通过基金净值收益和债券市场收益因子的联动关系,估计基金在不同期限与信用利差上的风险暴露。在同一套因子体系下,无 Alpha 模型使用短窗口测算当前风险暴露与修正久期;有 Alpha 模型使用长窗口研究风险调整后的收益成分。
模型根据模型日当时已经生效的最新一期季报持仓信息,将基金样本分为利率债基金和信用债基金。两类样本共享同一套模型骨架,但采用不同的因子配置。
季度末报告统一从报告期结束后的第二个月首日起生效:
| 报告期 | 模型生效日 |
|---|
| 3 月 31 日 | 5 月 1 日 |
| 6 月 30 日 | 8 月 1 日 |
| 9 月 30 日 | 11 月 1 日 |
| 12 月 31 日 | 次年 2 月 1 日 |
同一基金存在多个份额时,仅保留初始份额,避免重复纳入。仓位筛选条件如下:
| 筛选项 | 条件 |
|---|
| 股票仓位 | 等于 0 |
| 可转债仓位 | 等于 0 |
| 债券仓位 | 大于或等于 50% |
同时排除 QDII 债券型基金、混合估值法基金、摊余成本法基金、已经到期的基金,以及成立时间不足以支持完整 30 个交易日估计窗口的基金。
上述条件构成30日风险暴露模型的基础样本。240日Alpha模型在此基础上进一步限定为中长期纯债型基金,并剔除定期开放基金。两条估计链共享因子体系,但不使用完全相同的基金样本。
信用债仓位按以下口径计算:
信用债仓位=债券仓位−国债仓位−政策性金融债仓位.
模型以 5% 的信用债仓位为分界:信用债仓位 ≤ 5% 的基金进入利率债基金分支,> 5% 的基金进入信用债基金分支。
| 因子名称 | 利率债基金 | 信用债基金 |
|---|
| 国债因子 | ● | ● |
| 政策性金融债利差因子 | ● | ● |
| 二级资本债利差因子 | — | ● |
| 高评级普通信用债利差因子 | — | ● |
| 低评级普通信用债利差因子 | — | ● |
* ● 表示该模型分支启用相应因子,— 表示不启用。
国债期限因子由中债国债即期收益率曲线构造;利差因子由资产曲线与基准曲线的到期收益率曲线构造。为了将两类曲线纳入同一回归,模型对每个曲线节点采用相同的日收益变换。
为什么使用收益率曲线
模型不直接使用债券指数收益,而是根据收益率曲线的固定期限节点构造日收益因子。在现有验证中,债券指数的成分变化和期限漂移会降低短窗口暴露的稳定性;曲线节点能够提供固定的期限基底,并与后续久期计算保持一致。
对于曲线 c、期限节点 j 和交易日 τ,将年化节点收益率代入零息债券定价形式,得到节点价格代理:
Pj,τ(c)=(1+yj,τ(c))−j.
令相邻交易日的自然日间隔为
Δτ=365dτ−dτ−1,
持有一期后的节点收益代理为
Rj,τ(c)=(1+yj,τ−1(c))−j(1+yj,τ(c))−(j−Δτ)−1.
计算剩余期限 j−Δτ 的价格时,使用交易日 τ 的 j 年节点收益率近似,不另作期限插值。0 年节点作为短端现金收益代理,对应 R0,τ(c)=(1+y0,τ(c))Δτ−1。
正式基准期限节点为 J={0,1,3,10,30}。基本因子使用中债国债即期收益率曲线:
Lj,τ=Rj,τ(G),j∈J.
利差因子由资产曲线与基准曲线的节点收益代理之差构成:
Sk,j,τ=Rj,τ(ak)−Rj,τ(mk).
| 因子名称 | 做多收益率 | 做空收益率 |
|---|
| 政策性金融债利差因子 | 国开债收益率 | 国债收益率 |
| 二级资本债利差因子 | AAA-二级资本债收益率 | 国债收益率 |
| 高评级普通信用债利差因子 | AAA中短期票据收益率 | 国债收益率 |
| 低评级普通信用债利差因子 | AA+中短期票据收益率 | 国债收益率 |
信用债基金使用全部四类利差因子,各因子的启用期限如下:
| 分类 | 因子名称 | 0Y | 1Y | 3Y | 10Y | 30Y |
|---|
| 基本因子 | 国债因子 | ● | ● | ● | ● | ● |
| 利差因子 | 政策性金融债利差因子 | ● | ● | ● | ● | — |
| 利差因子 | 二级资本债利差因子 | ● | ● | ● | — | — |
| 利差因子 | 高评级普通信用债利差因子 | ● | ● | ● | — | — |
| 利差因子 | 低评级普通信用债利差因子 | ● | ● | ● | — | — |
利率债基金使用的因子期限与信用债基金相同,但仅使用政策性金融债利差因子:
| 分类 | 因子名称 | 0Y | 1Y | 3Y | 10Y | 30Y |
|---|
| 基本因子 | 国债因子 | ● | ● | ● | ● | ● |
| 利差因子 | 政策性金融债利差因子 | ● | ● | ● | ● | — |
* 期限配置主要依据公募基金实际信用暴露的久期范围,并结合各期限数据质量确定;● 表示该期限启用,— 表示对应因子固定为 0。
未启用期限不进行插值或外推。二级资本债利差因子自 2018 年 12 月 31 日起逐步启用,至 2019 年 6 月 30 日完全纳入;30 年期限节点自 2023 年 6 月 30 日起逐步启用,至 2023 年 12 月 31 日完全纳入。启用时点主要依据公募基金介入相关资产的时间确定;在此之前,相应因子不进入回归,过渡期则采用 Hybrid 方式衔接新旧模型结果。
二级资本债利差因子和30年期限节点采用渐进启用,而不是在因子首次出现时硬切换。过渡期分别计算新旧模型结果并按启用进度加权,避免历史序列因模型结构变化产生机械断点。2023年12月31日以后,在正式组件有效且未发生回退时,历史衔接结果与完整正式模型一致。
对基金 i,期限节点 j 上的组合因子为
Xi,j,τ=Lj,τ+k∈Ki,t∑γi,k,tSk,j,τ.
基金收益的拟合值为
ri,τ=αi,t+j∈J∑βi,j,tXi,j,τ,
即
ri,τ=αi,t+j∈J∑βi,j,tLj,τ+k∈Ki,t∑γi,k,tj∈J∑βi,j,tSk,j,τ+εi,τ.
按利差类别展开后为
ri,τ=αi,t+j∈J∑βi,j,tLj,τ+γi,政策性金融债,tj∈{0,1,3,10}∑βi,j,tS政策性金融债,j,τ+γi,二级资本债,tj∈{0,1,3}∑βi,j,tS二级资本债,j,τ+γi,高评级普通信用债,tj∈{0,1,3}∑βi,j,tS高评级普通信用债,j,τ+γi,低评级普通信用债,tj∈{0,1,3}∑βi,j,tS低评级普通信用债,j,τ+εi,τ.
利率债基金只保留政策性金融债利差因子;信用债基金使用全部四类利差因子。
同一类利差在各期限节点共享一个强度参数 γi,k,t,期限结构由 βi,j,t 统一决定。两种模型共享上述结构,但采用不同的估计窗口和 Alpha 处理。
30 日无 Alpha 模型与 240 日有 Alpha 模型使用相同的期限暴露和利差强度约束。
期限暴露非负且合计为 1:
βi,j,t≥0,j∈J∑βi,j,t=1.
为什么固定为 1
基金杠杆水平难以准确估计。将期限暴露总和固定为 1 后,模型结果整体更加稳定,因此没有采用允许暴露总和在一定范围内浮动的区间约束。
利差强度非负;信用债分支的利差强度上限为 1.5:
γi,k,t≥0,0≤γi,k,t≤1.5(k∈Kcredit).
利率债基金分支只使用政策性金融债利差因子,该参数不设置有限上限。
两个模型共享相同的因子结构、参数约束和 SLSQP 求解器,但服务于不同的估计目标,并采用不同的异常观测处理方式。30 日无 Alpha 模型关注近期风险暴露,通过 Huber 损失降低极端残差的影响;240 日有 Alpha 模型关注较长期的风险调整后收益,先剔除明确的正向净值跳点,再使用平方损失估计。
| 模型 | 主要目标 | 估计窗口 | Alpha 处理 | 异常观测处理 | 权重与损失 |
|---|
| 30 日无 Alpha 模型 | 风险暴露与修正久期 | 30 个交易日 | 固定为 0 | 通过 Huber 损失降低极端残差权重 | 半衰期 15 个交易日的指数权重;平方损失初始化后使用 Huber 损失 |
| 240 日有 Alpha 模型 | 风险调整后收益与基金排序 | 240 个交易日 | 估计窗口内的平均未解释收益 | 剔除超过同分支当日收益中位数 50bp 的正向净值跳点 | 等权平方损失 |
期限暴露 β 与利差强度 γ 以乘积形式进入拟合收益,整体优化问题是非凸的。SLSQP 在前述约束条件下求取数值局部解;未成功收敛的结果不进入有效结果及后续信号计算。
30 日模型采用半衰期为 15 个交易日的指数衰减权重,即距离模型日 15 个交易日的观测,其原始权重为最新观测的一半。令 aτ=0 表示模型日、aτ=29 表示窗口中最早的交易日,则
waτ=301∑h=0292−h/152−aτ/15.
定义残差
ei,τ(β,γ)=ri,τ−ri,τ(β,γ).
第一阶段使用加权平方损失:
(βi,γi)=arg(β,γ)∈Θi,tminτ∈Wt(30)∑waτei,τ(β,γ)2.
为什么使用 Huber 损失
30 日窗口对单日净值异常更敏感,尤其是收益波动较小的短久期基金。第二阶段使用 Huber 损失降低极端观测的影响,提高短窗口估计的稳健性。
在第一阶段估计值处计算残差及其稳健尺度:
ei,τ=ei,τ(βi,γi),
si=1.4826medianτ∈Wt(30)ei,τ−medianu∈Wt(30)ei,u.
第二阶段使用 Huber 损失:
ρδ(z)={21z2,δ(∣z∣−21δ),∣z∣≤δ,∣z∣>δ,δ=1.345,
(βi,γi)=arg(β,γ)∈Θi,tminτ∈Wt(30)∑waτsi2ρ1.345(siei,τ(β,γ)).
240 日模型使用最近 240 个交易日的等权平方损失。每个交易日分别计算信用债基金和利率债基金的净值收益中位数;若单只基金收益超过所属分支当日中位数 50bp,该观测不进入 Alpha 回归,负向收益保留。
令 Wt(240) 表示模型日 t 对应的最近 240 个交易日,rˉb,τ 表示分支 b 在交易日 τ 的基金收益中位数。剔除正向净值跳点后的观测集合为
Wi,t(240)={τ∈Wt(240):ri,τ−rˉb(i,t),τ≤0.005}.
在保留的观测上联合估计 Alpha、期限暴露和利差强度:
(αi,t,βi,t,γi,t)=argα,(β,γ)∈Θi,tminτ∈Wi,t(240)∑(ri,τ−ri,τ(α,β,γ))2.
令 Ni,240,t=Wi,t(240),则 Alpha 也可以写为保留观测上的平均未解释收益:
αi,t=Ni,240,t1τ∈Wi,t(240)∑[ri,τ−ri,τ(0,βi,t,γi,t)].
为什么不使用 Huber 损失
240 日模型需要保留 Alpha 作为平均未解释收益的含义。明确的正向净值跳点已经在回归前剔除,其余收益完整保留,因此采用等权平方损失,不再对较大残差额外降权。
其中 ri,τ(α,β,γ) 使用前文定义的嵌套期限—利差结构。αi,t 用于刻画较长期的风险调整后收益,βi,t 与 γi,t 则是同一长窗口内估计的期限暴露与利差强度。
近期状态沿用240日模型已经估计的期限暴露与利差强度,不在短窗口内重新估计风险参数。令 ri,τ,tfactor 表示使用模型日 t 的长期风险暴露,对交易日 τ 计算的因子解释收益,则
mi,60,t=Ni,60,t1τ∈Wi,t(60)∑(ri,τ−ri,τ,tfactor).
冻结长期风险暴露后,mi,60,t 反映基金近期净值相对既有期限与信用结构的偏离,同时避免短窗口重新估计全部参数带来的噪声。60日结果与长期Alpha使用相同的净值异常观测处理规则。
模型先按基金分支和隐含麦考利久期五分位形成比较组。240日长期Alpha和60日冻结暴露残差均在同一模型日、同一比较组内转换为百分位排名,分别记为 Ri,tα 和 Ri,t60。
正式生产得分按基金分支采用不同权重:
Scorei,tformal={0.75Ri,tα+0.25Ri,t60,Ri,tα,信用债基金,利率债基金.
查询接口提供两项原始排名,不直接返回混合得分。用户可以在客户端按自身收益目标和换手约束派生其他权重,50/50和25/75等组合只用于实验比较,不属于正式生产得分。
30 日模型估计的期限暴露用于生成单基修正久期,具体换算方法见单基久期测算。
| 符号 | 定义 |
|---|
| i | 基金 |
| t | 模型日 |
| τ | 估计窗口内的交易日 |
| Wt(30) | 模型日 t 对应的最近 30 个交易日 |
| Wt(240) | 模型日 t 对应的最近 240 个交易日 |
| Wi,t(240) | 基金 i 剔除正向净值跳点后的 240 日观测集合 |
| Ni,240,t | Wi,t(240) 中保留的观测数 |
| Wi,t(60) | 基金 i 经过净值异常观测处理后的 60 日观测集合 |
| Ni,60,t | 60 日观测集合中保留的观测数 |
| rˉb,τ | 分支 b 在交易日 τ 的基金收益中位数 |
| aτ | 交易日 τ 距模型日的观测序号 |
| j | 期限节点,取 0、1、3、10、30 年 |
| k | 利差因子类型 |
| Ki,t | 基金 i 在模型日 t 所属分支使用的利差因子集合 |
| ri,τ | 基金日度净值收益 |
| αi,t | 有 Alpha 模型估计的风险调整后收益截距;无 Alpha 模型固定为 0 |
| yj,τ(c) | 曲线 c 在期限 j 上的年化收益率 |
| Lj,τ | 国债期限收益因子 |
| Sk,j,τ | 利差收益因子 |
| βi,j,t | 基金在期限节点 j 上的暴露 |
| γi,k,t | 基金对利差因子 k 的暴露强度 |
| εi,τ | 未被模型解释的基金收益 |
| Θi,t | 基金 i 在模型日 t 所属分支的参数约束集合 |
| mi,60,t | 60 日冻结暴露残差均值 |
| Ri,tα | 240 日长期 Alpha 的组内百分位排名 |
| Ri,t60 | 60 日冻结暴露残差的组内百分位排名 |
| Scorei,tformal | 按基金分支定义的正式生产得分 |