风险提示 本网站内容仅面向合格投资者,不构成任何投资建议或要约邀请。私募基金投资有风险,过往业绩不代表未来表现,投资需谨慎。
根本投资 G Capital 北京根本私募基金管理中心
(有限合伙)

首页 / 前沿算法

深度学习
在量化策略开发中的应用

我们把前沿算法当作工具而非信仰:它扩展了可以表达的市场规律,也同时放大了过拟合的风险。这一页说明它在流水线的哪些位置真正起作用,以及我们如何约束它。

01 / 为什么

线性因子的边界在哪里

A / LINEAR

线性模型的假设

传统多因子模型把收益写成因子暴露的线性组合:估计稳定、可解释、对数据要求低。但它隐含假设——因子之间、因子与收益之间的关系是线性的,且不随市场状态改变。

B / STATE

现实是状态依赖的

同一个动量信号,在趋势市与震荡市的效果可能相反;同一组价值因子,在流动性宽松与紧缩阶段的表现也不同。这种“状态依赖”用固定系数的线性模型很难表达。

C / DEEP

深度学习带来的三件事

其一,非线性与交互项可由模型自行学习;其二,表示学习——从原始量价序列直接学出状态向量,减少人工特征设计引入的先验偏差;其三,为端到端优化组合目标留出可能。

但请把它放在正确的位置

深度学习不是“更强的线性回归”。金融数据的信噪比极低、有效样本受历史长度限制、分布随时间漂移——模型容量越大,越容易把噪声当成规律记住。所以我们的立场是:容量必须被约束,任何进入实盘的模型都要先通过可解释性检验与多重健壮性确认。

02 / 应用地图

深度学习在流水线的五个落点

数据层缺失填补 · 异常检测 · 多频对齐
表示层自编码器 · 一维卷积 · 状态压缩
预测层时序模型 · 截面模型 · 分布预测
组合层协方差估计 · 可微分优化
执行层拆单 · 择时 · 冲击成本控制
  • 数据层用模型做缺失值填补与异常检测,比简单插值更能保留尾部信息;多频级数据(Tick 至月频)在时间轴上的对齐,是后续一切工作的前提。
  • 表示层把高维原始序列压缩为低维状态向量。这一步的价值在于减少人工特征的设计偏差——研究员不必预先决定“什么形态重要”,模型自己在训练中学。
  • 预测层时序模型看单一标的的历史路径,截面模型看同一时点的横截面关系。输出通常是收益分布的分位数而非单点预测,因为组合优化真正需要的是不确定性。
  • 组合层用深度模型估计时变协方差,或把预测层接入可微分优化层,让模型直接对组合目标求导。
  • 执行层强化学习在这类“动作空间清晰、反馈快”的问题上相对成熟,用于拆单与择时以降低冲击成本。

03 / 注意力机制

让模型自己决定“看哪些历史”

循环神经网络(RNN / LSTM)按固定顺序把历史压缩进一个隐状态,距离越远的信息衰减越严重。自注意力机制换了一种做法:在每个时点,模型直接对全部历史时点做加权求和,权重由当前状态与历史状态的相关性决定——看谁、看多重,由模型学出来。

多头注意力让不同的“头”可以分别关注不同频率与尺度的模式;位置编码则负责保留时序顺序,否则注意力本身是对顺序不敏感的。

对金融场景而言,有一件事是硬约束:模型在 t 时点只能使用 s ≤ t 的信息。这靠因果掩码(causal mask)强制实现。下面的方格图把这件事拆成两个可调的维度:上方的开关决定是否屏蔽未来,左侧的滑块决定允许回看多少步历史——前者是合规问题,后者是建模选择。把开关切到「全注意力」,上三角会亮起橙色,那 66 格就是未来信息,回测里出现它会让指标系统性失真。

因果掩码 vs 全注意力

ROWS = 预测时点 t · COLS = 输入时点 s

12 步
↓ 预测时点 t
输入时点 s →
ROW PROFILE · 预测时点 t = 12 (点击网格中任意一格可切换)
VISIBLE · 可用单元
—
LEAKED · 泄漏单元
—
VERDICT · 判定
—

可见(窗口内历史) 当期对角 未来(泄漏) 窗口外 / 已屏蔽

注意力对做投资的人意味着什么

  • 可归因:注意力权重天然回答了“模型在看什么”,比黑箱模型更容易做投后复盘
  • 可校验:如果某个头总是盯住财报发布日这类可解释事件,我们对它的信任度会更高
  • 可对比:注意力分布随时间的变化本身就是一个监控指标——分布突变往往先于表现下滑

照搬 NLP 的做法会水土不服

  • 金融序列信噪比极低,大容量 Transformer 极易过拟合
  • 常见处理:降低模型容量、限制上下文长度、引入时间卷积与分块(patch)
  • 加入门控结构,让模型可以主动选择“不使用注意力”
  • 预测目标改为分位数或方向概率,而非单点收益率

首页的多资产注意力矩阵,正是这一机制的示意:不同资产与因子之间的权重,就是模型在做截面判断时的“关注对象”。

04 / 工程纪律

比模型结构更重要的是验证方式

01 / SPLIT

时序切分,而非随机切分

训练、验证、测试必须沿时间轴切分并滚动前移(walk-forward)。随机打乱样本会让模型“见过”未来,得到的回测指标没有意义。

02 / PURGE

清退与禁运期

当标签本身跨越一段时间窗口时,训练样本的标签可能与验证样本的输入重叠。做法是清退(purge)边界样本,并在验证集前后各留出一段禁运期(embargo)。

03 / NORMALIZE

标准化必须滚动计算

用全样本的均值与方差做标准化,等于把未来信息注入每一条历史样本。所有滚动统计量只能由该时点之前的数据算出。

04 / BUDGET

给超参搜索设预算

搜索次数越多,“最优”结果越可能只是噪声。我们记录每一次搜索的结果分布,只看模型是否在一个宽参数区间内稳定,而不是看峰值。

05 / ROBUST

多重健壮性确认

针对调仓日、因子计算窗口、资产池变动等随机扰动,核心评估指标不应发生显著变化。稳健的模型不该受超参数的过度扰动,这是有效性的最基本假设。

06 / MONITOR

上线后仍然在验证

监控因子衰减、预测分布漂移、特征缺失率,以及模型输出与实际执行之间的差异;为每一项设定阈值与回滚机制,而不是等结果变差再介入。

05 / 常见误区

回测很好、实盘很差的六个原因

误区它如何骗过回测我们的检查项
未来函数特征或标签用到了当时不可得的数据(含延迟披露的财务数据)因果掩码 + 数据可得性时间戳
幸存者偏差只用“今天还在”的标的构建历史样本,退市与违约样本被系统性剔除样本池按历史时点重建
隐式前视标准化、缺失值填补、样本筛选用到全样本统计量所有统计量滚动计算
随机切分相邻样本高度相关,验证集信息泄漏进训练集时序切分 + 清退 + 禁运期
过度搜索在回测指标上反复调参,最终选中一个偶然的好结果参数鲁棒性测试 + 搜索预算
忽视成本与容量只看毛收益,忽略换手、冲击成本与策略容量上限净额回测 + 容量约束

06 / 工程

算力决定可以探索多大的空间

A / COMPUTE

算法与算力双轮驱动

通过并行计算能力,把模型框架、参数与超参数的探索空间成几何级数扩展。很多想法不是不成立,而是没有算力去验证。

B / PLATFORM

特征平台与一致性

一次计算、多处复用。训练与推理使用同一套特征代码,避免 train-serving 不一致——这是线上表现与回测背离的隐藏原因之一。

C / REGISTRY

模型注册与灰度

每个模型记录版本、训练数据区间、评估指标与上线状态。上线走影子模式 → 小仓位 → 全量,任何一步异常即回滚。

07 / 边界

我们知道它做不到什么

深度学习擅长在历史出现过的模式中做插值,不擅长在从未出现过的情形中做外推。制度变化、政策转向、极端流动性事件——这些样本在训练数据里几乎不存在,模型无法从数据中学到应对策略。因此,越复杂的模型,越需要人工风控的兜底:仓位上限、品类敞口上限、以及预先设定的熔断规则,都不交给模型决定。

我们内部有一条硬性要求:每个进入实盘的模型都必须能回答“为什么”。能给出因子贡献、能指出它在看哪些时点、能说清风险暴露逻辑的模型才被允许上线;不能回答的模型,即使回测指标漂亮,也不会进入实盘。

说明

本页为研究方法与工程实践的一般性说明,不涉及任何模型参数、因子明细、信号构成或业绩数据,不构成投资建议,亦不构成对任何基金产品的宣传推介。

查看三条策略线 → 了解投研与算法团队 →

研究的深度决定回撤的可控边界

工程化的能力决定收益的兑现效率

联系我们