自 DolphinDB 正式启动高校合作计划以来,我们已与多所知名高校开展合作,通过举办讲座、开发课程、人才实训、联合研究等多种形式,实现产学研协同创新与人才共育,并取得了诸多突破性的成果。
2024年,DolphinDB 与上海交通大学安泰经济与管理学院研究团队深度合作,联合发起“横截面资产定价因子”研究工程。依托学术论文 Open Source Cross-Sectional Asset Pricing 的理论框架,双方合作完成了 195 个资产定价因子的工程化实现,将理论推导实际落地,为学术研究与量化投研提供了又一个开箱即用的工具,降低了复杂因子的应用门槛。此次合作使用 DolphinDB 脚本共实现了 195 个标准化因子的计算函数,并将其封装成 DolphinDB CSAP 模块,方便用户直接调用。
CSAP因子的类别与构建方法
金融市场的量化研究中,横截面资产定价因子(Cross-Sectional Asset Pricing Factor)是拆解资产收益来源的重要工具。这类因子通过捕捉市值、动量、流动性、波动性等维度特征,揭示不同资产间收益差异的来源,即所谓的“横截面特征”。其应用场景覆盖资产定价、投资组合优化及金融市场研究等多个方向,能够帮助投资者理解市场规律、制定策略和规避风险。
横截面资产定价中,各类研究者可以通过多因子模型解释资产收益的差异。CSAP 因子一般包括哪些类别,又有哪些构建因子的方法呢?
常见的 CSAP 因子包括:
- 价值因子(以市净率、市盈率等指标衡量股票是否被低估)
- 规模因子(通过市值区分大小公司的风险收益特征)
- 动量因子(基于过去收益率捕捉趋势延续效应)
- 盈利性因子(如 ROE 和毛利率筛选盈利能力强弱)
- 投资因子(通过资本支出增速识别企业扩张行为)
- 构建 CSAP 因子的方法灵活多样,既包含基础的算术运算(如市值=股价×流通股数),也涉及复杂的统计建模(例如回归分析筛选与收益显著相关的变量)。量化研究者通过系统性筛选和验证,将高度相关的因子嵌入经典定价模型(如Fama-French三因子模型),进而帮助投资者量化风险敞口、优化资产配置。
DolphinDB CSAP模块应用指南
DolphinDB CSAP 模块主要包含 CSAPFactors、CSAPPrepare 和 CSAPHelper 三大模块文件,使用前需预先完成运行环境配置与基础数据准备工作。
因子计算阶段,为了提升效率,CSAP 模块提供了两种计算模式:完整计算流程通过 CSAPPrepare 模块的 prepare 系列函数执行数据清洗,再调用 calc 函数完成计算。若用户已持有标准化数据,则可直接调用 CSAPFactors 模块中的因子函数实现快速运算。
当用户完成 Compustat 财务报表、CRSP 市场数据、FF 三因子等核心数据源的准备工作后,就可以按照标准化流程实现 195 个因子的自动化计算。
因子示例:平方贝塔因子在 DolphinDB CSAP 中的实现
平方贝塔因子 betaSquared 通过计算资产超额收益对市场超额收益平方的回归系数平方值,来量化收益对非线性市场波动的敏感度。其经济学含义为资产收益率对市场二次波动的风险敞口。
其实现逻辑如下:
def betaSquared(ret, rf, ewretd){
//Beta squared
retrf = ret - rf // 资产超额收益率
ewmktrf = ewretd- rf // 市场超额收益率
// 执行滚动回归计算(60个月窗口,20个月最小观测值)
return pow(mbeta(retrf, ewmktrf,60,20), 2)
}从上方的代码实现来看,所有输入参数(ret, rf, ewretd)均为向量,并且 mbeta 函数使得窗口的滑动线性回归分析变得非常简洁,开发者无需再开发滑动回归函数,即可获得贝塔值。
DolphinDB CSAP 模块中,平方贝塔因子的完整计算方法如下:
- 数据模拟与加载
调用 CSAPDataSimulation 模块,模拟指定资产(gvkeyList)和时间范围(1987-2023年)的月度数据,分别提取资产收益率表(monthlyCRSP)、无风险利率表(monthlyFF)、市场收益率表(monthlyMarket)。
use CSAPPrepare
use CSAPDataSimulation
gvkeyList = 10970 10910
startYear = 1987
endYear = 2023
data_simulate = CSAPDataSimulation::CSAPDataSimulation(gvkeyList, startYear, endYear)
monthlyCRSP = data_simulate.monthlyCRSP
monthlyFF = data_simulate.monthlyFF
monthlyMarket = data_simulate.monthlyMarket- 因子计算函数调用
调用 calcBetaSquared 接口,生成全市场平方贝塔因子矩阵。
result = calcBetaSquared(
prepareMonthlyCRSP(monthlyCRSP),
prepareMonthlyFF(monthlyFF),
prepareMonthlyMarket(monthlyMarket),
startTime=1987.01M,
endTime=2023.12M
)- 输出结果展示

综上,DolphinDB CSAP 模块通过标准化接口封装与高性能算子融合,大幅降低了复杂因子的工程化门槛。
研究者无需深入探究底层实现,通过调用标准化接口,即可实现近两百个 CSAP 因子的复杂计算逻辑。模块中多次使用的滑动窗口系列函数和截面函数,能够高效处理时序数据和截面数据,显著提高计算效率,适应多变的数据需求。此外,通过 m 系列函数和高阶函数等 DolphinDB 内置函数,模块能够获取不同窗口内的计算结果,为代码效率与简洁度提供双重保障。
特别鸣谢
在本次 DolphinDB CSAP 因子模块的开发过程中,上海交通大学安泰经济与管理学院的老师们用深厚的学术积累与创新思维,为因子模型的技术验证与工程实现提供了洞见与支持。
欢迎更多高校加入 DolphinDB 高校合作计划!