【信达金工】深度学习揭秘系列之三:用DeepSeek优化价量因子
创始人
2025-03-21 16:42:34

(来源:信达金工与产品研究)

本文是深度学习揭秘系列之三。聚焦于借助DeepSeek模型对选股因子进行生成与改进,在量化投资领域展开深入探索。研究以Qlib集成的Alpha158量价因子为基础,该因子集涵盖日内、波动、价、量及量价相关性五类因子。通过设定统一测算口径,运用特定的Prompt Engineering和AI交互流程,借助DeepSeek对原始因子进行优化,以及生成相关性较低的新因子,取得显著成果。

在因子优化方面,多数因子经DeepSeek优化后预测能力提升显著。测试的Alpha158因子集中,75%的因子RankIC均值提升,50%的因子RankIC均值达1.2倍提升,35%的因子RankIC均值有1.5倍提升;ICIR指标同样向好,众多因子ICIR提升且多倍提升的因子数量可观。从不同窗口期数据看,优化后的因子表达式普适性强。以波动率因子std20为例,多次改进中引入平均真实波幅ATR概念、成交量加权机制、EMA双重平滑及四维波动极值捕捉等,虽部分改进使RankIC均值有波动,但整体提升了因子选股效果。不过,部分因子如Beta20、min20等受限于原始计算逻辑,在优化过程中未呈现显著提升,揭示传统因子改进存在理论天花板。

在因子生成上,从零生成因子较难达到理想效果,然而,站在成功案例基础上生成因子,效果显著。若从零开始,20次迭代生成的因子具备一定逻辑,但预测效果一般,ICIR未达预期。若给予DeepSeek部分预测效果尚佳的因子表达式作为参考,例如Alpha158原始及优化因子表达式与对应的IC统计量,则能够在较少的迭代次数内,生成5个ICIR在0.8以上且与样例因子相关性低的新因子。其中第一个有效因子通过捕捉量价协同增强效应,第二个聚焦量价共振强度维度,展现出较好的选股能力。

基本面因子的中性化收益预测能力能补充量价因子的原始收益预测能力在预测原始收益的场景下,本文对比了量价因子原始值与基本面因子原始值非线性结合,和量价因子原始值与基本面因子中性化值非线性结合,两种方式的预测效果。对比发现,因为基本面因子原始值预测原始收益率效果相对较弱,因此相对纯量价因子组合的增强效果不明显,而中性化后的基本面因子能增强原始量价因子的绝对收益预测效果。

组合维度对比发现,将优化后的Alpha158因子及新生成因子线性结合,使用Lasso模型合成因子,能提升选股能力。全A数据中,原始因子、增强因子、原始 + 生成因子及最终合成因子的RankIC均值和多头超额收益逐次提升。落地到中证800指增组合,原始因子叠加优化与新生成因子得到的复合因子,月频RankIC均值从9.01%提升至10%,ICIR从0.93提升至1.01,多头超额年化收益从7.05%提升至7.92%,年化信息比从1.63增强至1.89。

综上,本文引入DeepSeek模型,通过构建“优化 - 验证 - 再迭代”框架,贡献了因子优化与因子生成的新思路,实现了大语言AI模型对量化研究的赋能。

风险因素:结论基于历史数据,在市场环境转变时模型存在失效的风险。

近年来,深度学习技术凭借其强大的非线性建模能力,逐步成为量化投资领域的重要工具。在前期系列研究中,我们通过《深度学习揭秘系列之一:基于量价与基本面结合的深度学习选股策略》系统对比了线性模型(Lasso)与基础非线性模型(MLP)在不同因子输入场景下的表现,揭示了量价因子与基本面因子结合的有效性。在《深度学习揭秘系列之二:涵盖价量与基本面因子的多模型结合神经网络》报告中,引入了时序神经网络,并探讨了适用于时序神经网络的因子类型以及时序神经网络的参数敏感性,最后打造了输入端覆盖低频价量、高频价量、基本面因子与行情数据,包含全连接与GRU神经网络的多模型组合。

    本报告作为《深度学习揭秘》系列的第三篇章,开创性地引入大语言模型DeepSeek,构建“优化 - 验证 - 再迭代”的全流程研究框架,试图为量化投资的因子工程提供新的方法论突破。

    本文聚焦于两大核心任务:其一,以Alpha158因子为蓝本,通过Prompt Engineering与DeepSeek的交互优化,提升因子选股能力;其二,突破传统因子库限制,探索基于大语言模型的新因子生成范式,其中:

▶ 因子优化流程的重构:设计“优化-验证-再迭代”的动态框架,通过多轮次的因子表达式改进,显著提升RankIC与ICIR指标。例如,针对波动率因子std20,DeepSeek通过引入ATR概念、成交量加权机制与EMA双重平滑,使其RankIC均值从4.03%提升至7.8%,ICIR从0.31跃升至0.55;

▶ 新因子生成范式的突破:在零基础生成效果有限的情况下,通过引入成功案例(如优化后的Alpha158因子)作为先验知识,DeepSeek成功生成5个ICIR超0.8且低相关性的新因子。例如,首个有效因子通过捕捉量价协同增强效应,构建“上涨日量价动量-下跌日量价惩罚”的双向驱动逻辑,ICIR达0.83;

▶ 800指增组合实证:将原始因子、优化因子与新生成因子输入Lasso模型进行线性合成,中证800成分股范围内复合因子的周频RankIC均值达11.41%,较原始Alpha158合成因子提升0.81pct。中证800指增组合测试显示,复合因子年化超额收益从7.05%提升至7.92%,信息比从1.63优化至1.89,验证了方法论的有效性。

    后续章节将围绕上述核心问题展开论证,通过数据回溯、案例解读与组合测试,揭示以DeepSeek为代表的大语言模型与传统多因子体系的融合潜力。

01

Alpha158因子体系解析与优化框架

1. Qlib算子与Alpha158因子集概述

在前期的系列研究报告中,我们借助Github上的开源项目Qlib,采用其所集成的Alpha158量价因子开展了模型层面的基础研究。Alpha158量价因子是一个丰富且多样化的因子集合,它涵盖了基于价格和成交量等多维度信息构建的多种因子。从因子构成来看,若不考虑窗口期,该因子集包含42个基础因子。而当纳入窗口期考量时,部分因子综合考虑了5日、10日、20日、30日以及60日等不同长度的交易日窗口期,由此,Alpha158因子集扩展为共计158个因子。为了更系统地理解和分析这些因子,我们依据其特征与计算逻辑,将Alpha158因子细致地划分为以下5大类别:

日内因子:这些因子仅使用当天的开盘价、收盘价、最高价、最低价以及均价数据,共包含13个因子。这些因子捕捉了市场在单个交易日内的波动和变化特征。

波动因子:波动因子主要衡量股票价格的波动性,共包含5个因子。波动性因子可以帮助我们理解股票价格的变动幅度和频率,从而更好地评估风险和收益。

价因子:价因子是基于股票的价格信息计算得出的,共包含100个因子。这些因子涉及多种价格计算方法和统计指标,能够反映出股票价格的长期和短期趋势。

量因子:量因子基于成交量数据,共包含30个因子。成交量是市场交易活动的直接反映,量因子能够提供关于市场流动性和投资者行为的重要信息。

量价相关性因子:这些因子同时考虑了成交量和价格的关系,共包含10个因子。通过分析量价关系,可以更深入地了解市场的供需动态和价格变动的内在驱动力。

    Qlib中集成了大量基于Cython的算子,这些算子与高开低收均价成交量数据巧妙结合,共同构成了因子表达式。将因子表达式输入Qlib框架,即可高效地对因子进行高性能计算。在此背景下,如何巧妙运用DeepSeek对因子表达式进行改进,进而实现对因子选股能力的显著增强,成为本章着重研究的核心内容。

2. 动态交互框架:基于Prompt Engineering的因子优化流程设计

    由于Alpha158量价因子支持多种窗口期的灵活计算,为确保研究结果的一致性与可比性,在测算因子RankIC均值与ICIR时,我们统一将窗口期参数设定为20个交易日。同时,明确以下的回测细节:

▶ 回测区间:2013年12月31日至2024年12月31日。

▶ 剔除:剔除上市不满365个自然日的新股,剔除ST股。

▶ 中性化:对因子进行市值行业中性化

▶ 交易频率:周频调仓,以下周第一个交易日的VWAP价格成交,计算VWAP收益率的RankIC均值与ICIR。

▶ 方向调整:根据RankIC均值的正负,对因子方向进行调整,使得RankIC为正,便于比较。

因子优化流程如下:

1)对于每个因子,至少进行3次深度优化。在这3次优化过程中,让DeepSeek挖掘因子改进的潜力。若在3次优化后,优化因子的RankIC均值最大值达到原始因子的1.5倍,这意味着该因子已实现显著优化,此时将直接终止优化流程,并输出历次优化结果,以保留最佳优化路径与成果。

2)若3次优化未能达到上述目标,即优化因子的RankIC均值未提升至原始因子的1.5倍,则继续进行优化。在后续优化过程中,最多尝试5次。这是为了在尽可能挖掘因子潜力的同时,避免过度优化导致的复杂性增加与收益递减,以及无谓的token消耗。若经过5次尝试后仍未达标,则终止优化并输出历次优化结果。

如何巧妙编写prompt是实现与大语言模型高效交互的核心要点。在与DeepSeek模型的交互中,我们需要精准地告知模型任务的具体内容、可用的关键信息以及一些不容忽视的重要注意事项,以下是prompt_init的主干内容:

假如你是一位资深的量化选股因子专家,你将根据现有的截面日频量化选股因子的相关信息,对以下因子进行改进以提升其RankIC均值:

[{factor_algo}]

这个因子是{direction}因子。

可用变量:

$open:开盘价;$close:收盘价;$high:最高价;$low:最低价;$vwap:均价;$volume:成交量。

可用算子代码:

[{code_content}]

表达式支持不同的窗口期,若窗口期为20个交易日,调整因子方向并进行市值行业中性化后,因子2014年以来周度RankIC均值为{rankic},ICIR为{icir}。

以提升因子的RankIC均值为目标,对这个因子的表达式进行改进,先列出至少5个改进方案,比较每个方案可能对因子IC提升的潜力,返回你认为最好的因子表达式及其优化逻辑,因子表达式格式参考提供的样例。

注意以下几点:

1. 只使用提供的算子,且保证调用方法正确,可用算子见代码中OpsList变量。

2. 对因子进行正确的去量纲操作,转换成比例的形式,使得不同股票间可比。

3. 除了Ref外,每个算子的窗口期相同,在表达式中仍以%d表示。

4. 从逻辑出发进行改进,不需要计算因子的RankIC或ICIR等指标。

5. 因子根本逻辑不能被改变,例如波动类因子不能被改成动量类因子。

按照以下格式返回结果,其中改进后因子表达式写在中括号内部,不要换行,表达式内部括号只能用小括号,优化逻辑要分点罗列,并对改进后的因子表达式进行解释:

"

改进后因子表达式:[表达式]

因子优化逻辑:[优化逻辑]

因子解释:[因子解释]

"

    以上prompt主要在于实现以下目的:

▶ 任务与信息传达:我们首先将AI带入资深量化选股因子专家的角色,简洁明了地阐述任务目标,即根据现有的截面日频量化选股因子相关信息,对特定因子进行改进,以显著提升其RankIC均值。同时,通过[{factor_algo}]明确原始因子表达式,使AI清晰理解原始因子的量化逻辑;借助{direction}变量说明因子方向,帮助AI进一步区分不同类型因子,如反转因子与动量因子,从而为因子改进提供精准方向。

▶ 数据与算子说明:详细告知AI可用变量,包括open(开盘价)、open(开盘价)、close(收盘价)、high(最高价)、high(最高价)、low(最低价)、vwap(均价)、vwap(均价)、volume(成交量),这些变量作为因子计算的基础数据,为模型改进因子表达式提供丰富素材。同时,将Qlib项目中的ops.py文件代码输入进大语言模型,以[{code_content}]的形式让AI清楚了解有哪些算子可用,以及每个算子的具体使用方法,为因子表达式的创新改进提供技术支持。

▶ 测试条件与评估告知:向AI明确后文中将以20个交易日为窗口期进行测试,并且在测试过程中会对因子进行方向调整、市值行业中性化等预处理操作。同时,告知AI原始因子在特定条件下的RankIC均值与ICIR,使其对原始因子的选股效果形成初步评估,从而在改进过程中有针对性地提升因子表现。

▶ 任务要求与思路引导:再次强调以提升因子的RankIC均值为核心目标,要求对因子表达式进行改进。先列出至少5个改进方案,并对每个方案可能提升因子IC的潜力进行比较,最终返回认为最好的因子表达式及其优化逻辑,因子表达式格式参考提供的样例。这不仅为模型提供了清晰的任务要求,还通过推荐的初始思路引导Deepseek在思维链中进行系统、全面的初步思考。

▶ 注意事项明确:为确保模型改进的准确性与有效性,我们还明确了一系列注意事项。例如,限定只使用提供的算子,且保证调用方法正确,防止大模型幻觉导致AI使用不存在的算子;提示对因子进行正确的去量纲操作,转换成比例形式,以保证不同股票间可比;统一除Ref外每个算子的窗口期以%d表示,避免AI将某些算子的窗口期设置为其他值;要求从逻辑出发进行改进,避免AI因大模型幻觉“猜测”优化后的因子IC统计量;强调因子根本逻辑不能被改变,防止为追求高RankIC而改变因子本质类型。

▶ 返回格式约束:按照特定格式要求AI返回结果,其中改进后因子表达式写在中括号内部,不得换行,表达式内部括号统一使用小括号。优化逻辑要分点罗列,并对改进后的因子表达式进行详细解释。这种严格的格式约束,方便了Python代码对返回内容进行准确解析。

    基于上述针对prompt_init的设计思路,我们进一步构建了prompt_opti。prompt_opti主要用于收集模型历次优化结果,并据此告知模型继续优化。

以提升因子的RankIC均值为目标,比较之前表达式得到的RankIC均值与ICIR,继续对这个因子的表达式进行改进,如果有必要的话可以推翻过去的方案重新思考。先列出至少5个改进方案,比较每个方案可能对因子IC提升的潜力,返回你认为最好的因子表达式及其优化逻辑,改进后的表达式需要不同于之前的表达式,因子表达式格式参考提供的样例。

按照以下格式返回结果,其中改进后因子表达式写在中括号内部,不要换行,表达式内部括号只能用小括号,优化逻辑要分点罗列,并对改进后的因子表达式进行解释:

"

改进后因子表达式:[表达式]

因子优化逻辑:[优化逻辑]

因子解释:[因子解释]

"

原始因子表达式为:{},RankIC均值为{},ICIR为{},因子方向为{};

第1次改进后因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{};

第2次改进后因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{};

第3次改进后因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{};

………

    其主干内容设计思路为:首先以提升因子的RankIC均值为目标,引导模型比较之前表达式得到的RankIC均值与ICIR,在此基础上继续对因子表达式进行改进。特别强调在必要情况下,可以推翻过去的方案重新思考,避免优化结果陷入局部最优解,确保模型能够持续探索更优的因子表达式。同时,通过收集原始因子和历次优化因子的表达式与预测效果,以详细罗列的方式(如原始因子表达式为:{},RankIC均值为{},ICIR为{},因子方向为{};第1次改进后因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}……)让AI全面、深入地分析过去的优化方向与效果,从而有针对性地进一步改进或重新思考因子表达式。通过prompt_init与prompt_opti的协同配合,我们构建了一个完整、高效的与大语言模型交互的体系,形成因子优化的底层框架。

3. 优化效果验证:RankIC的跨周期普适性与稳定性突破

    经过对DeepSeek改进后因子的测试,在设定的5次迭代范围内,29个窗口期因子的表现呈现出积极态势。具体而言,共有22个因子的RankIC有所提升,其中15个因子的RankIC均值提升至1.2倍以上,10个因子的RankIC均值更是提升至1.5倍以上,这些因子在选股能力的提升幅度上较为突出。

    在衡量因子稳定性及预测能力的ICIR指标方面,同样有23个因子实现提升。其中14个因子的ICIR提升至1.2倍以上,10个因子的ICIR提升至1.5倍以上。这一系列数据体现出DeepSeek对多数因子的优化卓有成效,切实增强了因子在选股策略中的有效性与可靠性。

    以上测算基于周频调仓,并将表达式中的窗口期%d设置为20。为进一步探究DeepSeek优化效果的稳定性,我们思考若将窗口期设置为其他参数,优化出来的因子表达式是否仍能保持提升态势?为此,本文选取Alpha158中优化后RankIC均值有提升的因子,对原始表达式与改进后20日RankIC均值最高的表达式,在5 / 10 / 20 / 30 / 60个交易日的窗口期下测算其RankIC均值。

    从表4数据可见,绝大部分原始因子表达式经DeepSeek优化后,不仅在20日窗口期下RankIC均值显著提升,在其他窗口期下同样展现出增强态势。这充分证明AI所优化的因子表达式在不同时间窗口下具备普适性,能够在多种市场时间尺度下,有效提升因子对股票收益的预测能力。

4. 以波动率因子为例:洞察模型优化方向

我们选取波动率因子std20展开深入剖析,以此探究DeepSeek对因子的改进方式,并明晰因子选股效果的提升究竟源于大语言模型的内在实力还是偶然因素。

    std20因子的原始表达式为“Std($close, %d)/$close”,其含义明确,旨在计算过去20个交易日收盘价的标准差,并通过除以收盘价实现去量纲处理,以此衡量价格的波动程度。

    在第一次改进中,DeepSeek将因子表达式修改为

“Mean(Greater($high-$low, Greater(Abs($high-Ref($close,1)), Abs($low-Ref($close,1)))), %d)/$close”,

该表达式在原始基础上,对分子进行了创新调整,引入了平均真实波幅ATR的概念。此ATR捕捉了价格波动中的日内波动、向上跳空和向下跳空三种模式,相较于单纯依赖收盘价标准差,能更为敏锐地识别价格剧烈波动的股票。分母依旧维持除以最新收盘价的形式,保持去量纲的操作。引入ATR计算波动率后,因子的RankIC均值从4.03%提升至6.18%,ICIR从0.31提升至0.42,年化多头超额从 - 2.23%提升至0.71%,年化多空收益从7.33%大幅提升至17.42%。

在第二次改进中,DeepSeek将因子表达式修改为

“EMA(Greater($high-$low,Greater(Abs($high-Ref($close,1)),Abs($low-Ref($close,1))))*$volume,%d)/EMA($volume,%d)/$close”,

该表达式在第一次优化表达式的基础上,主要实施了两点关键改进:

1)引入成交量加权机制:将真实波动幅度(TR)与当日成交量相乘,强化量价共振效应,高成交量伴随的波动更具信息含量,通过EMA($volume, %d)消除成交量绝对值影响,构建单位成交量波动比率。

2)采用EMA双重平滑:对分子分母同时进行指数加权平均,既保留成交量加权特性又加强近期数据的权重。

    DeepSeek对该因子的逻辑解释为:“该因子通过成交量加权的指数移动平均真实波动率,捕捉资金流动驱动的价格不稳定性。相比简单平均TR,成交量加权能识别主力资金参与的异常波动,EMA处理强化了近期市场情绪的敏感性,双重EMA标准化有效剥离了量价量纲差异。该设计同时满足波动测量的全面性、量价关系的协同性以及市场记忆衰减的特性,预期能更精准识别高投机风险个股。”,可以看出模型对该因子的理解基本无误。

    经此改进,因子的RankIC均值由第一次优化的6.18%提升至7.8%,ICIR由0.42提升至0.55,年化多头超额从0.71%提升至5.24%,年化多空收益由17.42%提升至33.81%。从相关对比图中能够明显观察到,该波动率因子在2015年的回撤得到显著改善。

在第三次改进中,DeepSeek将因子表达式优化为

“EMA(Greater(Greater($high-$low,Greater(Abs($high-Ref($close,1)),Abs($low-Ref($close,1)))),Abs($open-Ref($close,1)))*Sign($close-Ref($close,1)+1e-5)*$volume,%d)/EMA($volume,%d)/$close”。

此表达式在第二次优化的基础上,又增添了两点改进:

1)四维波动极值捕捉:在原有三重比较基础上新增开盘跳空缺口($open与前收盘价差),形成high-low、high-prev_close、low-prev_close、open-prev_close四维波动极值筛选。

2)引入方向敏感系数:通过Sign($close-Ref($close,1))捕捉收盘方向,下跌日波动赋予负权重强化空头波动信号。

    DeepSeek对该因子的逻辑解释为:“该因子通过整合日内波动、隔夜跳空和方向性量价信息,构建多维波动冲击指标。在捕捉最大价格变动的基础上,通过收盘方向符号强化下跌波动的负面效应,结合成交量加权突出资金驱动的不稳定性。相比前两版改进,该设计更精准识别空头力量主导的异常波动,预期可提升对风险溢价补偿要求的定价能力。”

    第三次优化后,因子的RankIC均值由第二次优化的7.8%略微降低至7.01%,但ICIR由0.55提升至0.79,年化多头超额由5.24%提升至6.29%,年化多空收益由33.81%大幅提升至51.10%。从测算效果来看,虽然第三次优化的RankIC均值有所下降,但ICIR、年化多头超额收益与年化多空超额收益均有显著提升。然而,从人为主观理解因子的角度,我们认为DeepSeek对因子的理解存在一定偏差。

    原始波动因子与历次优化因子均为负向因子,意味着因子值越大,后续可能跑输市场整体;因子值越小,后续可能战胜市场整体。第三次的因子表达式中“Greater(Greater($high-$low,Greater(Abs($high-Ref($close,1)),Abs($low-Ref($close,1)))),Abs($open-Ref($close,1)))”部分会返回一个正数,而表达式中“Sign($close-Ref($close,1)”部分则根据当天的涨跌调整前者的方向(涨为1,跌为-1)。因此,若股票长期下跌,分子端可能为负数,因子值较小;若长期盘整,分子端趋近于0;若呈上涨趋势,分子端为正数,因子值较大。所以,我们理解该因子在原有波动率因子的基础上,叠加了反转因子,从而使因子ICIR及收益得到一定提升。

    除优化成功的案例外,我们也对优化无明显提升的案例进行了总结与分析。以Beta20因子为例,DeepSeek在该因子上尝试了5次优化,但RankIC均值和ICIR均未得到提升。Beta20原始因子构造逻辑为过去N个交易日收盘价的斜率除以收盘价,因子方向为负向,本质仍为反转因子。由于受到prompt中“因子根本逻辑不能被改变”的限制,DeepSeek主要对分母端进行改进尝试,但效果不佳。类似的情况还出现在min20因子与qtlu20因子上,同样因分子端逻辑限制,导致改进效果不显著。

02

从优化到创造:

基于大语言模型的新因子生成范式

1. 从零生成的困境:独立探索下的效率与效果瓶颈

在第一章里,我们以Alpha158原始因子表达式为依托,借助DeepSeek开展因子改进工作,取得了一定成果,但也察觉到部分因子受限于原有逻辑,难以进一步优化。由此引发思考:若给予DeepSeek更自由的发挥空间,使其从因子改进转向从零进行因子生成的任务,它能否巧妙组合各类算子与可用数据,挖掘出具备出色选股能力的因子?这正是本节着力探讨的核心问题。

    我们依旧从prompt入手,清晰告知模型所需执行的任务。因子生成任务的prompt由prompt_init与prompt_opti构成,以下详述prompt_init的主干内容:

假如你是一位资深的量化选股因子专家,你将根据现有的算子,挖掘周度ICIR的绝对值在0.8以上新因子,你返回因子表达式之后,我会调整因子方向并进行市值行业中性化,自行测算因子IC和ICIR。

可用变量:

$open:开盘价;$close:收盘价;$high:最高价;$low:最低价;$vwap:均价;$volume:成交量。

可用算子代码:

[{code_content}]

注意以下几点:

1. 只使用提供的算子,且保证调用方法正确,可用算子见代码中OpsList变量。

2. 对因子进行正确的去量纲操作,转换成比例的形式,使得不同股票间可比。

3. 除了Ref外,每个算子的窗口期相同,且都用%d表示,不要出现算子窗口期为固定常数的情况,之后在测算过程中会将%d设置为20。

4. 从逻辑出发进行挖掘,不需要计算因子的RankIC或ICIR等指标。

按照以下格式返回结果,其中挖掘的因子表达式写在中括号内部,不要换行,表达式内部括号只能用小括号,并对挖掘的因子表达式进行解释:

"

改进后因子表达式:[表达式]

因子解释:[因子解释]

"

    prompt_opti内容为:

第1次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

第2次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

第3次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

……..

在此基础上继续改进或者重新思考,如果表达式越来越复杂且效果越来越差,则可能需要对表达式进行简化或者完全重新思考新的方案。

    因子生成部分的prompt_init与因子优化部分的prompt_init大致相似,只是去除了对Alpha158表达式和IC统计量的描述,同时为模型设定了生成周度ICIR在0.8以上因子的明确目标。prompt_opti部分则着重将历次生成的表达式与IC统计量反馈给模型,促使模型在前述基础上不断改进。在实际操作过程中,我们发现模型可能会将表达式修改得过于复杂,而实际效果却不尽人意,所以在prompt_opti中特别提示模型,可适时简化表达式或者重新构思全新方案。

    从上表可知,我们让DeepSeek对因子表达式进行了20次迭代,然而生成的因子预测效果普遍一般。其中,RankIC均值最大值为3.88%,最小值仅0.68%;ICIR最大值为0.59,与prompt中要求0.8的ICIR仍存在一定差距。

    尽管在这20次迭代中,ICIR未达预设目标,但DeepSeek给出的因子表达式并非毫无逻辑。比如第一次生成的因子表达式为:

Log(Greater($close,Mean($high,%d))/Less($close,Mean($low,%d)))*Sign(Slope($volume,%d))

    可以看出DeepSeek试图通过该因子捕捉量价协同效应,对放量上涨或缩量下跌的股票赋予因子值权重,而长期盘整的股票因子值则相对较小。

    第二次生成的因子表达式为:

Slope(($close - Mean($low,%d))/(Mean($high,%d) - Mean($low,%d)),%d) * Sign(Resi($volume,%d))

    是在第一次表达式基础上的升级。DeepSeek对该表达式的解释为:

1)价格标准化:(收盘价-最低价均值)/(最高价均值-最低价均值)形成0-1区间波动,消除价格绝对水平影响;

2)价格趋势:对标准化价格序列计算斜率捕捉趋势强度;

3)量能异常:用成交量残差的符号表征非趋势性放量。该设计同时捕捉价格突破强度与异常量能信号,且标准化过程使跨股票可比性增强。

    不过我们也发现,DeepSeek对该表达式的理解存在一定误区,例如模型提到“(收盘价 - 最低价均值)/(最高价均值 - 最低价均值)形成0 - 1区间波动”,实际上对于趋势下跌的股票,最新收盘价可能小于过去N个交易日最低价均值,波动区间可能低于0。但同时也能看出,DeepSeek有一些创新构造方式,比如用“Sign(Resi($volume,%d))”捕捉异常的放量与缩量,在高频场景下,这种方式对收益预测确有一定帮助。

2. 案例驱动的突破:基于先验知识的低相关性因子挖掘

  在上一节中,我们让DeepSeek从零开始生成因子,历经20次迭代,挖掘出的因子ICIR仍未达预期。那么,若为模型提供一些成功案例,使其能总结这些案例的优点,是否能实现更出色的因子挖掘效果呢?基于此,本节我们将第一章中的Alpha158原始因子表达式、优化后的表达式以及对应的IC统计量作为“成功案例”输入模型,探究在此基础上能否取得更好成果。

    我们依旧从prompt着手,清晰告知模型需要执行的任务。因子生成任务的prompt仍由prompt_init与prompt_opti构成。以下是prompt_init的主干内容:

假如你是一位资深的量化选股因子专家,你将根据现有的截面日频量化选股因子的相关信息,根据样例因子表达式,挖掘周度ICIR的绝对值在0.8以上新因子:

以下是通过算子计算得到的因子与对应的RankIC均值及ICIR,名称中含_opti的因子是由原始因子(不含opti)尝试改进后得到,RankIC均值与ICIR是假设表达式中%d为20个交易日,调整因子方向并进行市值行业中性化后计算得到的:

[

因子名称:std20;因子表达式:Std($close, %d)/$close;RankIC均值:0.0403;ICIR:0.3105;因子方向:负向;

因子名称:std20_opti_1;因子表达式:Mean(Greater($high-$low, Greater(Abs($high-Ref($close,1)), Abs($low-Ref($close,1)))), %d)/$close;RankIC均值:0.0618;ICIR:0.4152;因子方向:负向;

因子名称:std20_opti_2;因子表达式:EMA(Greater($high-$low,Greater(Abs($high-Ref($close,1)),Abs($low-Ref($close,1))))*$volume,%d)/EMA($volume,%d)/$close;RankIC均值:0.0780;ICIR:0.5520;因子方向:负向;

……

]

可用变量:

$open:开盘价;$close:收盘价;$high:最高价;$low:最低价;$vwap:均价;$volume:成交量。

可用算子代码:

[{code_content}]

注意以下几点:

1. 只使用提供的算子,且保证调用方法正确,可用算子见代码中OpsList变量。

2. 对因子进行正确的去量纲操作,转换成比例的形式,使得不同股票间可比。

3. 除了Ref外,每个算子的窗口期相同,且都用%d表示,不要出现算子窗口期为固定常数的情况。

4. 从逻辑出发进行挖掘,不需要计算因子的RankIC或ICIR等指标。

5. 生成的新因子与样例因子不能相同,相关性尽可能低。

按照以下格式返回结果,其中挖掘的因子表达式写在中括号内部,不要换行,表达式内部括号只能用小括号,并对挖掘的因子表达式进行解释:

"

改进后因子表达式:[表达式]

因子解释:[因子解释]

"

prompt_opti内容为:

第1次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

第2次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

第3次尝试因子表达式为{},RankIC均值为{},ICIR为{},因子方向为{}。

……..

在此基础上继续改进或者重新思考,如果表达式越来越复杂且效果越来越差,则可能需要对表达式进行简化或者完全重新思考新的方案。

    本节的prompt与从零生成因子的prompt相比,新增了将Alpha158原始与优化表达式及其IC统计量输入给模型这一内容,prompt_opti则与前文保持一致。

    经过有限测试,最终生成了5个ICIR在0.8以上的因子。其中,第一次尝试经一次迭代便得到满足条件的因子表达式,有时则需历经8次迭代才得到较好的因子。

    尽管我们在prompt中要求新因子与参考样例因子相关性尽可能低,但DeepSeek作为大语言模型自身不具备计算能力。因此,我们测算了新因子与样例因子中ICIR大于0.7的因子之间的相关性,以及新因子之间的相关性。

    从表中可见,新生成的因子与样例因子中效果较好的因子相关性较低,仅Factor_5与corr20_opti_2之间的相关性达到71.36%,其他因子之间的相关性均在50%以下,其中Factor_2与所有出色样例因子相关性均在25%以下。新因子之间的相关性也在可接受范围内,所有因子之间相关性最大值为48.19%,均值为26.07%,其中Factor_1与其它4个因子的相关性均在21%以下。

    以新生成的前两个因子为例,分析DeepSeek所生成因子的底层逻辑。

    第一个有效因子表达式为:

EMA(Greater($close-Ref($close,1),0)*Power($close/Ref($close,1)-1,2)*$volume,%d)/EMA($volume,%d)-EMA(Greater(Ref($close,1)-$close,0)*Power(Ref($close,1)/$close-1,2)*$volume,%d)/EMA($volume,%d)

    AI对该因子的逻辑解释为:“该因子捕捉量价协同增强效应。分子端计算上涨日价格涨幅平方与成交量的加权均值(EMA),突出强势股的量能驱动特征;分母端进行成交量标准化消除规模影响。通过对称计算下跌日的量价惩罚项并做差值,有效区分多头与空头动能。价格涨幅平方处理放大突破行情的区分度,EMA平滑避免短期噪声,最终形成兼具趋势强度和量能验证的双向驱动因子。”

    可见DeepSeek对因子表达式的理解基本正确。通过学习样例表达式,AI在第一次迭代中便能够使用“$volume/EMA($volume,%d)”表达成交量加权。在创新性上,AI使用“上涨日价格变动×涨幅平方 - 下跌日价格变动×跌幅平方”区分多头与空头动能,使得因子ICIR达到0.83。

    第二个有效因子表达式为:

EMA(($close/Ref($close,1)-1)*Sign($volume-EMA($volume,%d))*Abs($close/Ref($close,1)-1),%d)/Std($close/Ref($close,1)-1,%d)

    AI对该因子的逻辑解释为:“该因子聚焦量价共振的强度维度:1)价格收益率与成交量突破EMA的方向符号相乘,捕捉量价同向动量;2)乘以收益率绝对值强化大波动日的信号权重;3)EMA平滑保留趋势持续性特征;4)用收益率波动率标准化消除市场整体波动影响。通过"方向×幅度×量能验证"三维度构建纯净动量信号。” 

    人为拆分该因子,表达式分子由3个部分相乘组成

“($close/Ref($close,1)-1)”、

“Sign($volume-EMA($volume,%d))”和

“Abs($close/Ref($close,1)-1)”。

    不难发现,对于连续放量大涨,或者连续缩量大跌,又或者处于盘整过程中涨时放量跌时缩量的股票,在该表达式中的分子端值会偏大,反之则偏小。而在分母端除以近期的波动率,则进一步放大了近期连续放量大涨或缩量大跌的因子值。该因子周频ICIR达到0.82,且与第一个因子的相关性仅为8.92%。

03

策略应用与组合绩效验证:

复合因子在指增组合中的增益

1. 复合因子的收益增强:中证800中RankIC均值提升至11.03%

   在前两章中,我们借助DeepSeek成功实现了对原始Alpha158因子的优化,并在此基础上挖掘出5个相关性较低的新因子。从单因子测试结果来看,优化因子与新因子均展现出出色的选股预测能力。那么,若采用线性模型将这些因子进行复合,效果究竟如何?落实到指增组合上,又能带来多少提升?这是本节重点探讨的内容。

    我们以量价因子作为输入特征,在全A股票范围内,运用惩罚系数为0.001的Lasso模型对因子进行合成。具体而言,训练集长度设定为过去5个自然年,每年年初重新估算模型参数,这些参数将用于接下来一年的因子合成以及对未来5个交易日的收益预测,数据划分示意图如下。

    若使用Alpha158增强因子替代原始因子,代入Lasso模型进行合成,结果显示增强合成因子的最终选股能力略优于原始合成因子。增强合成因子的RankIC均值为11.03%,超越了原始因子的10.6%。从各年份数据来看,仅2015、2021与2025年RankIC均值低于原始合成因子,在其他年份均有不同程度的提升。同时,增强合成因子的年化多头超额收益为23.5%,收益波动比为4.66,这表明增强合成因子在获取收益方面具有一定优势,且收益的稳定性相对较好。

    进一步探讨第二章中生成的因子相对于原始Alpha158因子是否具有增量信息。我们将原始因子与生成因子一同代入Lasso模型进行合成,并比较“原始 + 生成”合成因子与原始合成因子的选股能力。结果表明,“原始 + 生成”合成因子的RankIC均值为10.94%,高于原始因子的10.6%。从各年份数据来看,仅2025年RankIC均值低于原始因子,在其他年份加入新生成因子后均有稳定提升。

    最后,我们将所有因子,即原始因子、增强因子与生成因子一起代入Lasso模型,得到最终的合成因子。该合成因子的RankIC均值为11.41%,明显优于原始因子、增强因子以及叠加生成因子后的原始因子。在多头超额收益方面,合成因子达到24.64%,同样优于原始因子组合的23.1%。

2. 指增组合的实战检验:月度800指增超额提升近1%

    我们将Lasso模型合成的因子值应用到800指增策略中,以此深入探究大语言模型优化与生成的因子对指增组合的增量贡献。约束条件与交易方式如下:

约束条件:

▶ 100%指数成分股内选股。

▶ 个股权重最大偏离0.8%。

▶ 中信一级行业最大偏离3%。

▶ 市值风格最大偏离0.01,其它CNE5风格最大偏离0.3。

▶ 每次调仓单边换手率40%以下。

交易方式:

▶ 月度调仓,以每月初第一个交易日的VWAP价格成交。

▶ 一字涨停不能买入,一字跌停不能卖出,停牌不能交易。

▶ 手续费:单边千分之一。

    在中证800指数成分股中,将原始因子与DeepSeek优化因子及新生成因子叠加后得到复合因子。与原始因子相比,复合因子展现出显著优势。月频RankIC均值从9.01%提升至10%,ICIR从0.93提升至1.01。

    当落实到中证800指增组合层面,复合因子的优势进一步凸显。复合因子多头超额年化收益达到7.92%,相较于原始因子组合7.05%的年化超额收益,实现了显著提升。同时,复合因子组合年化信息比为1.89,相较于原始组合1.63的年化信息比也有所增强。这表明复合因子不仅能够获取更高的超额收益,而且在风险调整后收益的稳定性方面表现更佳。    

风险因素:结论基于历史数据,在市场环境转变时模型存在失效的风险

本文源自报告深度学习揭秘系列之三:用DeepSeek优化价量因子

报告时间:2025年3月21日

发布报告机构:信达证券研究开发中心

报告作者:于明明   S1500521070001  周金铭  S1500523050003

免责声明

信达证券股份有限公司(以下简称“信达证券”)具有中国证监会批复的证券投资咨询业务资格。本报告由信达证券制作并发布。 

本报告是针对与信达证券签署服务协议的签约客户的专属研究产品,为该类客户进行投资决策时提供辅助和参考,双方对权利与义 务均有严格约定。本报告仅提供给上述特定客户,并不面向公众发布。信达证券不会因接收人收到本报告而视其为本公司的当然客户。客户应当认识到有关本报告的电话、短信、邮件提示仅为研究观点的简要沟通,对本报告的参考使用须以本报告的完整版本为准。 

本报告是基于信达证券认为可靠的已公开信息编制,但信达证券不保证所载信息的准确性和完整性。本报告所载的意见、评估及预测仅为本报告最初出具日的观点和判断,本报告所指的证券或投资标的的价格、价值及投资收入可能会出现不同程度的波动,涉及证券或投资标的的历史表现不应作为日后表现的保证。在不同时期,或因使用不同假设和标准,采用不同观点和分析方法,致使信达证券发出与本报告所载意见、评估及预测不一致的研究报告,对此信达证券可不发出特别通知。

在任何情况下,本报告中的信息或所表述的意见并不构成对任何人的投资建议,也没有考虑到客户特殊的投资目标、财务状况或需求。客户应考虑本报告中的任何意见或建议是否符合其特定状况,若有必要应寻求专家意见。本报告所载的资料、工具、意见及推测仅供参考,并非作为或被视为出售或购买证券或其他投资标的的邀请或向人做出邀请。

在法律允许的情况下,信达证券或其关联机构可能会持有报告中涉及的公司所发行的证券并进行交易,并可能会为这些公司正在提供或争取提供投资银行业务服务。 

本报告版权仅为信达证券所有。未经信达证券书面同意,任何机构和个人不得以任何形式翻版、复制、发布、转发或引用本报告的任何部分。若信达证券以外的机构向其客户发放本报告,则由该机构独自为此发送行为负责,信达证券对此等行为不承担任何责任。本报告同时不构成信达证券向发送本报告的机构之客户提供的投资建议。 

如未经信达证券授权,私自转载或者转发本报告,所引起的一切后果及法律责任由私自转载或转发者承担。信达证券将保留随时追究其法律责任的权利。

分析师声明

负责本报告全部或部分内容的每一位分析师在此申明,本人具有证券投资咨询执业资格,并在中国证券业协会注册登记为证券分析师,以勤勉的职业态度,独立、客观地出具本报告;本报告所表述的所有观点准确反映了分析师本人的研究观点;本人薪酬的任何组成部分不曾与,不与,也将不会与本报告中的具体分析意见或观点直接或间接相关。

本报告中所述证券不一定能在所有的国家和地区向所有类型的投资者销售,投资者应当对本报告中的信息和意见进行独立评估,并应同时考量各自的投资目的、财务状况和特定需求,必要时就法律、商业、财务、税收等方面咨询专业顾问的意见。在任何情况下,信达证券不对任何人因使用本报告中的任何内容所引致的任何损失负任何责任,投资者需自行承担风险。

相关内容

热门资讯

春运第15天全社会跨区域人员流... 格隆汇2月17日|昨天,腊月二十九,也就是春运的第15天,全社会跨区域人员流动量超2.2亿人次,比2...
特斯拉FSD转向订阅制,购买M...   炒股就看金麒麟分析师研报,权威,专业,及时,全面,助您挖掘潜力主题机会! (来源:IT之家)I...
海南自贸港封关后首个春节:美兰... 转自:中新网中新网海口2月16日电 (朱晨鹏 陈海泽)2月16日,农历除夕,上午11时40分许,来自...
立拍得 | “超旋”时代 知其不可而为之,是奥运精神的闪光之处。从北京到米兰,从单板滑雪跳台刀花滑冰面,运动员们通过自己的努力...
2月17日生意社豆粕基准价为3... 生意社02月17日讯 2月17日,生意社豆粕基准价为3164.00元/吨,与本月初(3...