绵烁资产:基于 DolphinDB 构建因子收益模型
页面介绍了绵烁资产在A股因子有效性动态变化背景下,引入 DolphinDB 构建因子收益预测与风险管理体系的原因与背景。
Source: https://dolphindb.cn/blogs/168
What this page covers
- 报名/活动入口信息(页面顶部CTA)。
- 文章信息(标题与发布日期等)。
- 业务背景与引入 DolphinDB 的动因。
- 因子计算、标准化与有效性评估的方法路径。
- 风险矩阵优化与行业中性控制要点。
- 函数接口与模型评估指标定义。
- 协方差矩阵偏差与调整方法(Newey-West / Eigenfactor / 贝叶斯收缩)。
技能认证特训营第二期报名信息
页面顶部提供培训营开营提示与限时报名链接信息。
- 页面包含“技能认证特训营第二期”的报名入口信息。
- 页面提供一个“限时报名链接”。
绵烁资产:基于 DolphinDB 构建因子收益模型(文章信息)
本节呈现文章标题相关信息,并包含发布日期信息。
- 文章发布日期为 2025-03-31。
- 本页为“绵烁资产:基于 DolphinDB 构建因子收益模型”主题文章。
业务背景
本节说明A股市场风格切换与因子有效性动态变化带来的挑战,以及绵烁资产引入 DolphinDB 来构建新一代体系的原因。
- 绵烁资产定位为深耕量化投资领域的专业机构。
- 原有多因子框架面临风格切换频繁与因子有效性动态变化。
- 传统回归框架在行业敞口控制与特质收益分离方面显现瓶颈。
- 绵烁资产引入 DolphinDB 并结合多因子风险模型框架构建新体系。
技术实施路径
本节给出因子计算与标准化、因子有效性动态评估、多因子合成与建模等实现方法与步骤。
- 使用 DolphinDB 分布式计算引擎批量处理 126 个三级因子。
- 因子标准化使用 MAD 去极值法处理异常值。
- 因子标准化采用市值中性化以消除规模效应。
- 通过滚动窗口计算 FSC 与 IC 评估因子有效性。
- 采用 IC-IR 加权将三级因子合成 8 个一级风格因子。
- 使用加权最小二乘(WLS)回归构建截面收益预测模型。
- 月频 FSC 监测显示动量因子稳定性维持在 0.85 以上。
- 部分成长因子在 2023 年期间 IC 值周期性波动并触发动态权重调整。
核心技术创新
本节列出风险矩阵优化、行业中性控制等关键技术点,并给出行业偏离度控制目标范围。
- 风险矩阵优化引入 Newey-West 调整以处理因子收益自相关。
- 通过贝叶斯收缩技术压缩特质收益协方差估计误差。
- 组合优化模块嵌入申万行业约束条件以实现动态行业中性控制。
- 组合行业偏离度相对基准控制在 ±2% 以内。
- 调整后组合波动率预测偏差较传统方法显著收敛(实测显示)。
基于 DolphinDB 的收益风险模型(函数接口与评估指标)
本节说明在 DolphinDB 中构建 moving WLS 多因子回归相关函数接口,并定义用于评估模型的统计指标。
- DolphinDB 模型部分可用于构建因子收益模型(本例)。
- moving WLS 多因子回归模型示例包含函数接口 getAllFactorValidate。
- getAllFactorValidate 的输入为 y、x、w。
- getAllFactorValidate 输出包含 beta、tstat、R2、AdjustedR2、Residual。
- getRetTable 用于在构建模型后计算模型评估指标。
- 本节定义了 _stR2 的计算形式与相关变量要素。
- 本节给出 t 检验的定义与用途(衡量回归系数显著性)。
- 本节定义偏差统计量(bias_statistic)用于衡量预测程度。
- 当观测发现 Bn 接近 1 时,可初步推断预测较准确。
- 本节定义 Q 统计量用于惩罚欠拟合或过拟合。
风险调整(协方差矩阵调整方法)
本节说明协方差矩阵样本估计偏差问题,并介绍 Newey-West、Eigenfactor 调整与贝叶斯收缩等方法及其函数接口与调用条件。
- 个股收益率协方差矩阵求解需分别计算 Vf 与 Δ。
- 基于样本估计的 Vf 与 Δ 结果有偏,需要协方差调整。
- 日频因子收益用于月频风险预测时需要尺度变化与自相关性处理。
- Newye_West 函数用于得到调整后的协方差矩阵。
- Newye_West 输入为 ret 与 q。
- Newye_West 输出为 cov(调整后的协方差阵)。
- getRetTable 中 adjust=true 时调用 Newye_West。
- Newey-West 概述包含对样本协方差与自协方差矩阵(Γi)处理的说明。
- Newey-West 使用 Bartlett 权重 wi=1−i/(1+q) 修正滞后项影响。
- Eigenfactor 调整以因子协方差矩阵的特征分解为基础。
- eigenfactor 之间两两协方差为零(彼此独立)。
- 直接特征分解可能存在偏差,因此需要 Eigenfactor 调整。
- eigenCovAdjusted 函数用于调整风格因子协方差。
- eigenCovAdjusted 输入为 cov 与 M(重采样次数)。
- eigenCovAdjusted 输出为 cov(调整后的协方差阵)。
- getRetTable 中 eigenfactor=true 时调用 eigenCovAdjusted。
- BayesShrinkage 函数用于调整特质波动率。
- BayesShrinkage 输入为 cov、weight、q。
- BayesShrinkage 输出为 cov(调整后的协方差阵)。
- getRetTable 中 shrink=true 时调用 BayesShrinkage。
基于 DolphinDB 的收益风险模型展示(示例代码与R2范围)
本节展示 getRetTable 的示例调用参数组合,并给出 2012-2022 年期间 R2 解释力范围与均值描述。
- 示例展示 adjust、shrink、eigenfactor 等参数的组合调用。
- 示例注释给出“shrink 推荐使用”的建议。
- 示例注释说明市场关联密切时可采用 eigenfactor adjust。
- 2012 年至 2022 年 R2 最低 5%,最高 84%,平均 37%。
- 页面对模型解释力度给出“较高”的评价。
项目价值
本节总结该框架的闭环能力、对多策略产品日常运维的支持,以及对后续AI因子迭代的技术基础意义。
- DolphinDB 的时序处理能力支持从因子挖掘到组合优化的闭环。
- 框架已稳定支持多策略产品的日常运维。
- 框架为后续人工智能因子快速迭代奠定技术基础。
Facts Index
| Entity | Attribute | Value | Confidence |
|---|---|---|---|
| 文章发布日期 | date | 2025-03-31 | high |
| 绵烁资产 | positioning | 深耕量化投资领域的专业机构,致力于提升组合风险收益比的精细化测算能力 | medium |
| 多因子模型(绵烁资产原有框架) | challenge | 面对A股市场风格切换频繁、因子有效性动态变化;传统回归框架在行业敞口控制与特质收益分离方面逐渐显现瓶颈 | medium |
| DolphinDB | adoption_purpose | 绵烁资产引入 DolphinDB 数据库并结合多因子风险模型框架,构建新一代因子收益预测与风险管理体系 | high |
| DolphinDB 分布式计算引擎 | used_for | 实现 126 个三级因子的批量化处理(因子计算与标准化) | high |
| 因子标准化方法 | outlier_handling | 使用 MAD 去极值法消除异常值干扰 | high |
| 因子标准化方法 | neutralization | 采用市值中性化处理以消除规模效应 | high |
| 因子有效性动态评估 | metrics | 通过滚动窗口计算因子稳定性系数(FSC)与信息系数(IC) | high |
| 动量因子(Momentum) | monthly_FSC_monitoring_result | 月频 FSC 监测显示稳定性始终维持在 0.85 以上 | high |
| 部分成长因子 | IC_behavior | 在 2023 年期间 IC 值呈现周期性波动,触发动态权重调整机制 | medium |
| 多因子合成 | method | 采用 IC-IR 加权方法将三级因子合成 8 个一级风格因子 | high |
| DolphinDB 内置回归 | method | 使用加权最小二乘(WLS)回归构建截面收益预测模型 | high |
| 风险矩阵优化 | autocorrelation_adjustment | 引入 Newey-West 调整以消除因子收益自相关性 | high |
| 风险矩阵优化 | idiosyncratic_covariance_shrinkage | 通过贝叶斯收缩技术压缩特质收益协方差矩阵的估计误差 | high |
| 组合波动率预测偏差 | effect | 经调整后的组合波动率预测偏差较传统方法显著收敛(实测显示) | low |
| 动态行业中性控制 | constraint | 在组合优化模块嵌入申万行业约束条件 | high |
| 投资组合行业偏离度控制 | range | 相对基准控制在 ±2% 以内 | high |
| DolphinDB 模型部分 | used_for | 用于构建因子收益模型(本例) | high |
| moving WLS 多因子回归模型示例 | function_interface | 函数接口为 getAllFactorValidate | high |
| getAllFactorValidate | purpose | 获取 moving WLS 多因子回归结果统计量的聚合函数 | high |
| getAllFactorValidate | inputs | Input: y(因变量)、x(自变量)、w(权重) | high |
| getAllFactorValidate | outputs | Output: wls stat "beta","tstat","R2","AdjustedR2","Residual" | high |
| getRetTable | used_for | 在构建多因子风险回归模型后用于计算模型评估指标 | high |
| _stR2 | definition | 多因子风险模型中定义的 R2(给出计算公式,涉及超额收益、残差、权重、H=X(X′X)−1X′ 对角元、因子暴露矩阵X) | medium |
| t 检验 | definition | 标准 t 统计量,用来衡量回归系数的统计显著性 | high |
| 偏差统计量(bias_statistic) | definition | 衡量模型预测程度的统计量,直观为实际风险/预测风险;定义 bnt=Rnt/σnt,预测准确则 bnt 标准差为 1,并给出 Bn 的计算公式及 95% 置信区间公式(正态分布假设下) | medium |
| 偏差统计量(bias_statistic)解释 | interpretation | 当观测发现 Bn 接近 1 时,可初步推断模型的预测值比较准确 | medium |
| Q 统计量(Q_statistic) | definition | 基于偏差统计量中的 bnt,惩罚欠拟合或过拟合,给出计算公式 | medium |
| 个股收益率协方差矩阵求解 | decomposition | 需要分别求解因子收益率协方差矩阵 Vf 与特质收益协方差矩阵 Δ | high |
| Vf 与 Δ 的样本估计 | issue | 基于样本求解得到的 Vf、Δ 估计结果都是有偏的,因此需要协方差调整 | high |
| Newey-West 调整(多因子风险模型) | reason | 多因子风险模型为日频、风险预测为月频,需要尺度变化且需考虑日频因子收益率自相关性;且预测的因子收益存在时序相关性,样本风险矩阵并非真实风险矩阵的相合估计,需要调整由 q 阶序列性导致的因子收益率风险矩阵 Vf | high |
| Newye_West 函数 | purpose | Newye_West 调整得到协方差矩阵 | high |
| Newye_West 函数 | inputs | Input: ret(收益率表)、q(收益率自相关阶数) | high |
| Newye_West 函数 | output | Output: cov(Newye_West 调整后的协方差阵) | high |
| getRetTable | Newey-West_call_condition | 在 getRetTable 函数中 adjust=true 时调用 Newye_West | high |
| Newey-West 实现步骤(概述) | step_1 | 假设 Ft 满足 MA(q) 过程,可基于移动平均过程进行简单校验,并给出样本协方差与自协方差矩阵(Γi)相关说明(Γi 需与 Γi′ 成对出现) | medium |
| Newey-West 实现步骤(概述) | step_2 | 对 Γi 修正加入 Bartlett 权重 wi=1−i/(1+q),滞后期越长权重越小;修正后得到的样本风险矩阵 Vf 为真实风险矩阵的相合估计且为半正定矩阵(给出公式) | medium |
| Eigenfactor 调整 | setup | 令 Vf 为 K×K 因子协方差矩阵,特征分解可写为 D0=U0′VfU0(D0 对角,U0 为特征向量旋转矩阵) | medium |
| Eigenfactor portfolio | meaning | U0 每列对应特征因子投资组合权重;D0 对角元为相应 eigenfactor portfolio 波动风险;eigenfactor 在组合最优化中有意义 | medium |
| Eigenfactor 之间关系 | independence | eigenfactor 之间彼此独立,两两协方差为零 | medium |
| Eigenfactor 方差解释 | portfolio_interpretation | 方差最小的 eigenfactor 对应最小化组合方差目标函数的组合;方差最大的对应最大化组合方差目标函数的组合 | medium |
| 直接特征分解(Eigenfactor) | issue | 直接特征分解会存在偏差,且风险越小的 eigenfactor portfolio 偏差反而较大,因此需要 Eigenfactor 调整 | medium |
| eigenCovAdjusted 函数 | purpose | eigenCovAdjusted 调整风格因子协方差 | high |
| eigenCovAdjusted 函数 | inputs | Input: cov(因子收益率协方差阵)、M(蒙特卡罗模拟:重采样次数) | high |
| eigenCovAdjusted 函数 | output | Output: cov(eigenCovAdjusted 调整后的协方差阵) | high |
| getRetTable | eigenfactor_call_condition | getRetTable 中当参数 eigenfactor=true 时调用 eigenCovAdjusted | high |
| eigenCovAdjusted 实现步骤(概述) | process | 基于蒙特卡洛模拟/Bootstrap 重采样构造模拟协方差矩阵与偏差调整系数,并给出 v(k) 与最终 V~f=U0D~0U0′ 的调整流程描述 | medium |
| 贝叶斯收缩(Bayesian Shrinkage) | definition | 常见的将先验和样本估计值结合起来的手段 | medium |
| BayesShrinkage 函数 | purpose | BayesShrinkage 调整特质波动率 | high |
| BayesShrinkage 函数 | inputs | Input: cov(特质收益率协方差阵)、weight(市值权重)、q(λ_F 压缩系数) | high |
| BayesShrinkage 函数 | output | Output: cov(BayesShrinkage 调整后的协方差阵) | high |
| getRetTable | shrink_call_condition | getRetTable 中当参数 shrink=true 时调用 BayesShrinkage | high |
| 贝叶斯收缩实现步骤(概述) | steps | 计算样本估计值(基于 WLS 预测得到特异性收益风险 σn);计算先验值(同市值档位股票特异性波动的市值加权平均);进行收缩得到后验估计,并给出收缩强度系数 vn 的含义与公式解释 | medium |
| 贝叶斯收缩(市值分组) | grouping | 多因子风险模型将所有个股按市值分成十档 | high |
| 贝叶斯收缩权重机制 | behavior | 当 |σn−σ¯(sn)| 越高(偏离程度越高)时,样本估计值越不靠谱,赋予先验的权重 vn 越高 | medium |
| getRetTable 示例用法 | parameters | 示例展示 adjust(是否采用 Newey-West 协方差调整)、shrink(是否采用贝叶斯收缩调整特异性风险)、eigenfactor(是否采用 eigenfactor adjust)等参数组合调用 | high |
| 贝叶斯收缩使用建议(示例代码注释) | recommendation | shrink 采用贝叶斯收缩调整特异性风险(推荐使用) | medium |
| eigenfactor adjust 使用条件(示例代码注释) | when_to_use | 因子风险采用 eigenfactor adjust,当市场关联密切时采用此方法 | medium |
| 模型解释力(R2) | range_and_average | 2012 年至 2022 年模型解释力最低 5%,最高 84%,平均 37% | high |
| 模型解释力度评价 | assessment | 因此模型的解释力度较高 | low |
| 项目价值(闭环能力) | outcome | 通过 DolphinDB 高性能时序处理能力,实现从因子挖掘、模型验证到组合优化的全流程闭环 | medium |
| 框架稳定性与运维 | status | 框架已稳定支持多策略产品的日常运维 | medium |
| 后续能力建设 | foundation | 为后续人工智能因子的快速迭代奠定技术基础 | low |
| 限时报名链接 | url | https://www.qingsuyun.com/h5/e/217471/5/ | high |