商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > 数据库交易回测系列三:多因子Alpha策略最佳因子权重

数据库交易回测系列三:多因子Alpha策略最佳因子权重

  发布于2026-08-20 阅读(0)

扫一扫,手机访问

在本系列二(多因子Alpha策略回测)中,我们对美股市场的4个量化因子进行了回测。在这里,我们将使用 DolphinDB database 内置的quadprog函数,对各个因子的权重进行均值方差优化,以决定最佳因子权重。

本系列二提供的脚本执行完毕后,数据表factorPnl会存有每个因子每天的收益。以下脚本基于数据表factorPnl。

retMatrix=matrix(select C0, C1, C2, C3 from factorPnl)
H = cross(covar, retMatrix, retMatrix)
f=-0.25*each(avg, retMatrix)
A=-(1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 $4:4)
b=-0.1*1 1 1 1
Aeq=matrix([1],[1],[1],[1])
beq=[1]
result=quadprog(H, f, A, b, Aeq, beq)
result[1]

这段代码解决了以下优化问题:

在此,我们的目标函数设定为最大化(1/4乘以期望收益减去1/2乘以方差),同时需满足四个因子的权重总和为1,且每个因子的最小权重为10%。H代表四个因子收益率的方差-协方差矩阵。需要注意的是,这里的H、A和Aeq必须是列数相等的矩阵;f、b和beq则必须是向量。A为负的单位矩阵,与b配合使用,以确保每个因子的权重大于10%。关于quadprog函数的详细信息,请查阅DolphinDB用户开发文档中的quadprog部分。

result[1]给出基于给定优化条件的最佳因子权重。结果如下:

[0.3612, 0.1, 0.438804, 0.1]

在本系列二提供的脚本中,

signalNames = `signal_mom`signal_vol`signal_beta`signal_size

因此,最佳权重为36.1%的动量因子,10%的波动率因子,43.9%的beta因子和10%的市值因子。

以上计算使用了所有历史时期的数据。也可选用最近10年的数据进行计算,只需对以上脚本的第一行代码做如下改动:

retMatrix=matrix(select C0, C1, C2, C3 from factorPnl where date>=2007.01.01)

结果如下:

[0.19277, 0.1, 0.1, 0.60723]

因此,最佳权重为19.3%的动量因子,10%的波动率因子,10%的beta因子和60.7%的市值因子。

由此可见,进行均值方差优化时选用的历史时期对结果有重要影响。

本文转载于:https://apiv1.oschina.net/oschinapi/blog/detail?id=4836446 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注