核心函数只有一行:
ŷ(t+1) = sign(P(t+1) - P(t))
问题不在于模型能否拟合历史数据。问题在于,输入特征是否包含可重复的增量信息,输出结果是否经过样本外验证,以及策略收益是否能够覆盖交易摩擦。
金融时序的信噪比极低。价格、成交量、波动率和资金流向都具有非平稳性。训练集中的相关性,不等于未来的预测能力。特征数量增加,模型容量增加,回测曲线通常会先改善。随后,过拟合开始接管结果。
这构成了金融特征工程的基本矛盾:极简特征可能遗漏非线性结构,复杂特征则容易把噪声包装成规律。没有参数约束和严格验证,复杂化只是更快地记住历史。
信噪比的残酷真相:金融预测为什么只需要约百分之五十一
在图像识别或语音识别任务中,较高准确率通常意味着模型捕获了稳定结构。金融市场不是这种数据环境。
金融价格受到多重因素共同影响。部分变量具有持续性,部分变量只在特定阶段有效,部分变量的预测效果来自交易成本尚未扣除的假象。即使特征与未来收益之间存在统计关系,关系也可能在下一段样本中衰减。
因此,方向准确率不能单独作为模型质量指标。
设每笔交易的毛收益为 \(r\),手续费和滑点合计为 \(c\),预测正确时获得正收益,预测错误时承担负收益。一个方向模型是否有价值,取决于期望净收益:
\[
E(R_{net}) = E(R_{gross}) - E(C)
\]
其中,\(E(C)\) 不是固定常数。换手率越高,交易成本越高。高频策略尤其明显。一个准确率为百分之五十三的模型,如果信号频繁翻转,可能不如准确率百分之五十一但换手率更低的模型。
这也是为什么金融预测中,百分之五十一并非一个普遍适用的神奇门槛。它只是基于低信噪比、特定收益分布和特定成本条件下的参考基准。模型的优势必须同时满足三个条件:
- 预测方向存在稳定偏差,而不是偶然偏差。
- 盈亏比和持仓周期能够覆盖手续费、滑点与冲击成本。
- 信号在样本外、不同时间区间和不同市场状态下仍然没有完全失效。
准确率的统计陷阱
方向标签本身可能不平衡。
如果上涨样本占比为百分之五十五,模型即使始终预测上涨,也能获得百分之五十五的表面准确率。这种结果没有预测价值,只是标签分布的延伸。
需要同时观察:
- 基准准确率,而不是只看模型准确率。
- 精确率、召回率和收益加权准确率。
- 预测概率的校准程度。
- 不同置信区间下的信号收益。
- 长多、长空和空仓状态下的收益差异。
- 每次交易收益、最大回撤与换手率。
- 扣除成本前后的收益曲线。
对于交易系统,收益分布比单点准确率更重要。一个模型可能总体准确率只有百分之五十一,但在高置信度样本上产生正的条件收益。另一个模型可能总体准确率达到百分之五十五,却依赖大量低质量交易,最终净值曲线无法承受成本。
非平稳性改变了特征评价方式
金融数据的均值、方差、自相关结构都会变化。
用全样本计算标准化参数,会把未来信息泄露到过去。用全样本筛选相关特征,也会把测试区间的信息带入训练流程。模型没有真正看到未来价格,但它看到了未来样本的统计分布。这已经足以破坏验证结果。
正确流程需要将以下步骤限制在训练窗口内部:
1. 缺失值处理。
2. 异常值截断。
3. 标准化或归一化。
4. 相关性计算。
5. 特征筛选。
6. 超参数搜索。
7. 阈值选择。
测试窗口只能被使用一次。它不是调参区,也不是展示系统表现的备用训练集。
在金融时序中,百分之五十一的净方向优势可能有价值;百分之八十五的训练集准确率通常只说明模型拥有足够的记忆容量。
极简主义的胜利:领域知识与树模型如何配合
极简特征工程不是拒绝技术指标,也不是只保留一列收盘价。它的定义更严格:
只保留具有明确经济含义、时间可得性清晰、统计关系经过样本外检验,并且能够解释模型行为的特征。
特征数量不是越少越好。有效的极简系统需要完成一次有约束的压缩。压缩目标不是追求最短输入向量,而是删除重复信息和不可复现信息。
先定义预测对象,再生成特征
“预测未来价格”这个目标过于模糊。
至少需要明确以下内容:
- 预测的是未来一个周期的方向,还是未来一段区间的收益。
- 标签使用收盘价、开盘价,还是可成交价格。
- 预测信号在哪个时间点生成。
- 信号生成后何时执行。
- 持仓周期是固定,还是由止盈止损决定。
- 是否允许空仓。
- 交易成本以固定比例、分层费率还是历史盘口估计。
如果标签是 \(y_t = sign(r_{t+1})\),特征必须在 \(t\) 时刻已经可用。使用 \(t+1\) 的最高价、收盘价或完整成交量构造特征,属于未来函数。使用当日收盘价计算信号并假设同一收盘价成交,同样需要额外解释。计算时点和成交时点必须分离。
特征的四个层次
在中低频金融时序中,特征可以按信息来源分成四层。
第一层:价格与收益结构
包括对数收益、区间收益、动量、均值回归距离、滚动波动率和高低价范围。
对数收益:
\[
r_t = \ln \frac{P_t}{P_{t-1}}
\]
比直接价格更适合描述相对变化。价格水平通常具有较强非平稳性。收益、收益波动率和价格相对均线的位置,通常更容易进入模型。
但同一个变量使用多个窗口重复展开,会迅速制造高度相关的特征组。例如五日、六日、七日到三十日的动量序列,表面上是多个变量,实际可能只表达同一个趋势状态。
第二层:成交量与流动性
成交量变化率、量价偏离、成交额、波动率调整后的成交量,可以描述交易活跃程度。
成交量不是方向信号本身。它更接近状态变量。成交量放大可能对应趋势延续,也可能对应波动结束。模型必须通过样本外检验判断其条件作用。
如果策略交易的是期货,还需要区分主力合约切换、合约到期和连续合成价格。简单拼接会制造价格跳变。跳变如果没有经过复权或价差处理,会污染收益和波动率特征。
第三层:横截面与相对强弱
单个资产的历史序列不一定足够。相对行业、指数、相关资产或期限结构的偏离,有时比绝对价格更稳定。
但横截面特征必须处理成分股变化和可交易性问题。使用今天的指数成分回看历史,会产生幸存者偏差。使用未来才公布的财务数据,也会引入时间泄露。
第四层:领域专属变量
不同资产需要不同特征集合。
股票、期货、债券和加密资产的交易机制不同。统一输入表可能便于工程管理,但不代表统计结构相同。研究显示,在决策树、随机森林和梯度提升模型的交易系统中,基于斯皮尔曼相关性的资产专属特征选择,比对所有资产使用统一特征集合更有效。
这不是因为斯皮尔曼相关性能够永久解决特征筛选问题。原因更简单:不同资产的收益分布、波动率结构和交易时段不同,统一特征集会带入大量与目标资产无关的变量。
为什么树模型适合处理这类输入
梯度提升、随机森林和相关树模型不要求所有特征满足正态分布,也不要求变量之间保持线性关系。它们可以处理阈值效应和部分非线性交互。
例如,某个波动率特征单独使用时没有显著预测力,但当波动率处于高位、动量为负、成交量同时放大时,未来收益分布可能发生变化。树模型可以通过分裂条件表达这种局部结构。
梯度提升模型的优势在于逐步修正前一组弱学习器的残差。它能以较低的特征预处理成本拟合复杂边界。研究中,特定交易测试下的梯度提升模型获得了百分之三十七点四四三的收益率,并在比较对象中达到最高值。
这个数字不能直接转换成可复用的策略收益。它对应特定数据集、标签定义、成本假设、测试周期和交易规则。离开这些条件,收益率没有独立含义。
合理的结论只有一个:在金融时序中,领域特征筛选与树模型结合,可能比盲目扩大特征集合更稳定。
复杂化的陷阱:自动因子挖掘如何制造过拟合
自动化因子挖掘解决了一个真实问题:人工设计特征的覆盖范围有限。
遗传规划、自动特征交叉和深度网络能够生成大规模候选变量。例如:
- 两个指标的比值。
- 一个收益率与一个波动率的乘积。
- 多个滚动窗口之间的差值。
- 不同资产收益之间的滚动相关性。
- 价格、成交量和波动率的多阶交叉。
- 文本、链上数据和订单簿变量的组合。
候选变量越多,出现偶然高相关特征的概率越高。搜索空间越大,数据挖掘偏差越明显。
相关性不是预测能力
某个特征与未来收益的相关系数较高,只能说明两者在当前样本中共同变化。它不能说明:
- 关系在未来仍然存在。
- 关系不是其他变量的重复表达。
- 相关性不是由极少数异常样本贡献。
- 关系没有被交易成本完全吞噬。
- 特征没有使用未来信息。
- 特征方向不会在市场状态变化后反转。
金融时序中的线性相关性尤其有限。斯皮尔曼相关性可以捕捉单调关系,但不能保证经济意义,也不能代替样本外验证。
特征筛选需要多层过滤,而不是一次排序。
自动因子库的四道过滤
第一道是可获得性过滤。
每个变量都需要记录数据时间戳、发布延迟和使用频率。财务数据的报告期不等于市场可见时间。链上数据的区块时间也不等于策略服务器收到数据的时间。数据进入系统的时点必须明确。
第二道是统计冗余过滤。
候选因子之间可能高度相关。多个变量都描述同一段趋势时,保留全部变量只会增加模型方差。可以通过相关矩阵、聚类或逐步筛选压缩变量组。
第三道是预测稳定性过滤。
不能只看全样本信息系数。需要观察滚动窗口中的符号稳定性、绝对值变化、不同市场区间的表现和不同持仓周期下的结果。
第四道是经济结果过滤。
因子的统计指标需要落到组合或交易层。研究中常用的信息系数、信息比率、分层单调性和相关性检验,都属于因子诊断工具。它们不能单独证明策略可交易,但可以帮助识别冗余因子和噪声因子。
自动化挖掘不是免费获得信息。它只是把人工搜索替换成程序搜索。搜索次数增加,偶然最优结果的概率同步增加。
过拟合不只发生在模型内部
最常见的误区是只把过拟合归因于深度网络层数。
实际上,以下每一步都可能过拟合:
- 从数百个技术指标中挑选表现最好的指标。
- 使用测试集反复调整持仓周期。
- 按照历史最高收益选择止盈止损参数。
- 通过回测曲线手动删除亏损月份。
- 只保留表现最好的资产。
- 反复修改交易成本直到结果仍然盈利。
- 根据结果选择数据起始日期。
- 先看完整样本,再决定训练区间和测试区间。
模型可能很简单,但研究流程已经复杂化。过拟合发生在流程层面。
因此,所谓极简主义不仅是少用几个特征,也包括减少人为决策次数。研究者对回测结果进行的每一次选择,都应该被视为一次隐含参数搜索。
实战性能对比:从随机森林到深度网络
不同模型的比较不能只看训练集准确率。至少需要统一四个条件:
1. 相同的标签定义。
2. 相同的时间切分方式。
3. 相同的交易成本和执行规则。
4. 相同的信号转持仓逻辑。
否则,比较的不是模型,而是实验设置。
随机森林:降低局部拟合风险,但不自动产生信号
随机森林通过多棵决策树进行集成。随机抽样和特征子集能够降低单棵树对局部样本的依赖。
它适合处理:
- 非线性阈值。
- 特征尺度差异。
- 混合类型变量。
- 特征之间的有限交互。
- 不需要精确标准化的数据。
缺点也明确。随机森林的概率输出不一定校准良好。树数量增加不能解决标签噪声。特征含有未来信息时,集成模型只会更稳定地放大错误。
随机森林可以作为基准模型。它的价值不只是收益表现,还在于能够验证复杂模型是否真正提供了增量信息。
梯度提升:更高的表达能力,也更高的调参敏感度
梯度提升模型通常比随机森林拥有更强的拟合能力。学习率、树深度、子采样比例、迭代次数和正则化参数都会改变模型复杂度。
调参过程必须被嵌套在训练窗口内。不能用全部历史数据选择最优树深度,再把同一数据切分后当作样本外结果。
梯度提升适合处理经过筛选的结构化特征。它不需要先把所有变量扩展到极高维。输入过多时,模型会利用偶然分裂点建立脆弱规则。
在公开研究中,精心构建的特征配合梯度提升模型取得了较高收益表现。但这类结果需要结合测试周期、交易规则和成本假设解释,不能简化为模型名称的宣传。
卷积网络和残差网络:结构更复杂,输入要求更高
卷积网络可以把价格、成交量和指标序列转换成局部模式问题。残差网络则通过跳跃连接缓解深层网络训练中的梯度问题。
在一项针对纳斯达克一百指数交易所交易基金收盘价走势的研究中,精细构建的单日特征工程配合随机森林、轻量卷积网络和残差网络,预测准确率达到百分之八十三至百分之八十五的区间。
这个结果不能直接与方向交易系统的净收益等同。
需要先回答三个问题:
- 标签是否与交易方向完全一致。
- 数据是否经过严格的时间隔离。
- 准确率是否扣除了交易成本和执行延迟。
如果模型预测的是某种收盘价类别,准确率可能较高;如果交易信号需要在收盘前生成,实际执行价格会改变结果。模型任务和交易任务必须一一对应。
深度网络的主要成本不只是训练时间。更大的问题是,网络可以从高维输入中提取大量组合关系。没有足够样本和严格正则化时,这些关系无法区分真实结构与噪声。
模型对比表
| 模型 | 适合的输入 | 主要优势 | 主要风险 | 适合作为 |
|---|---|---|---|---|
| 随机森林 | 经过基础清洗的结构化特征 | 对尺度不敏感,能处理非线性 | 概率校准不足,无法消除未来函数 | 稳健基线 |
| 梯度提升 | 领域筛选后的结构化特征 | 表达阈值效应和特征交互 | 对树深度和迭代次数敏感 | 主力候选模型 |
| 轻量卷积网络 | 连续窗口或矩阵化序列 | 能提取局部模式 | 容易把噪声局部结构当作信号 | 序列基线 |
| 残差网络 | 样本量较大、结构明确的序列输入 | 表达能力强,适合深层结构 | 参数多,解释和验证成本高 | 复杂模型对照 |
| 自动因子挖掘系统 | 大规模原始变量库 | 扩展候选空间,减少人工限制 | 搜索偏差、冗余和过拟合 | 候选生成器 |
表格不提供最终排序。模型的合理性取决于数据频段、样本规模、成本结构和验证方法。
构建稳健系统:用信息系数和样本外测试剔除噪声
一个可复现的金融预测系统,应当把特征工程、模型训练和交易回测分开。混在同一段脚本中,任何结果都难以审计。
第一步:建立时间一致的数据表
数据表至少需要包含:
- 资产标识。
- 交易时间。
- 特征生成时间。
- 数据发布日期或接收时间。
- 标签形成时间。
- 执行价格。
- 交易成本参数。
- 合约或成分状态。
时间字段不能只保留一个。交易时间回答的是市场什么时候发生变化。数据接收时间回答的是策略什么时候知道这件事。两者不同。
第二步:先做基准,再加复杂度
基准模型可以非常简单:
- 过去收益方向。
- 移动平均偏离。
- 滚动波动率。
- 成交量变化。
- 固定持仓规则。
基准的作用不是盈利最大化,而是建立比较下限。复杂模型必须证明自己相对于基准的增量价值。增量可以体现在净收益、回撤、换手率、收益稳定性或不同时间窗口的衰减速度上。
如果增加数百个特征后,模型只在单一测试区间提升收益,而换手率和最大回撤同步恶化,这不是有效复杂化。
第三步:按时间滚动验证
随机打乱样本不适合普通金融时序。相邻样本存在自相关,随机划分会让训练集和验证集共享相近市场状态。
更可靠的方式是滚动或扩展窗口:
- 用早期区间训练。
- 用紧接其后的区间验证。
- 向前移动窗口。
- 重新训练或更新参数。
- 在新的未来区间测试。
如果标签使用未来一段时间收益,训练和测试边界附近还需要处理标签重叠问题。否则,相邻样本可能共享同一段未来价格变化。
第四步:用多指标检查候选因子
信息系数可以衡量因子排序与未来收益排序的一致程度。信息比率可以观察信息系数的稳定性。分层单调性可以检查因子值从低到高时,未来收益是否大致呈有序变化。
这些指标应当按时间窗口输出,而不是只计算一个全样本均值。
可以用以下结构记录结果:
| 检验层次 | 观察内容 | 失败信号 |
|---|---|---|
| 单因子层 | 信息系数、符号稳定性 | 只有少数区间有效 |
| 分层层 | 不同分位数组合收益 | 分层收益无序或反转频繁 |
| 相关性层 | 因子之间的相关性 | 大量变量表达同一结构 |
| 模型层 | 样本外损失与概率校准 | 训练集提升,验证集下降 |
| 交易层 | 净收益、回撤、换手率 | 毛收益存在,扣成本后消失 |
| 稳定性层 | 不同时间段和资产表现 | 只在单一资产或单一阶段有效 |
没有任何单一筛选方法能够永久消除数据挖掘偏差。因子会衰减。市场状态会切换。执行成本也会变化。
第五步:把参数优化限制在合理范围
参数优化不是寻找历史最优点,而是寻找对邻域变化不敏感的区域。
例如,某个模型在树深度为六时表现最好,在深度五和七时明显失效,这个最优点可疑。某个持仓周期只有在精确设为十三个交易日时盈利,改为十二日或十四日就完全失效,也需要重新检查。
稳健参数通常表现为:
- 附近参数的结果差异有限。
- 不同滚动窗口的表现方向一致。
- 样本外收益不是由少数交易贡献。
- 成本提高后策略没有立即崩溃。
- 特征删除一部分后,核心结果仍然存在。
参数优化建议可以归纳为四条:
1. 优先优化数据处理和执行逻辑,最后才优化模型超参数。
2. 先确定特征可获得性,再比较模型收益。
3. 使用较小的候选空间,避免无限搜索。
4. 保留未参与调参的最终测试集,并且只使用一次。
极简与复杂并不是二选一
把极简特征和复杂模型放在对立面,是一个错误的抽象。
更合理的组合是:
- 特征工程保持克制。
- 模型结构根据数据规模增加复杂度。
- 自动化方法用于生成候选变量。
- 统计检验用于删除冗余变量。
- 样本外结果决定是否保留。
- 交易层指标负责最终裁决。
极简特征不等于低级模型。复杂模型也不等于错误模型。
当数据量足够大、输入结构稳定、时间戳清晰、正则化有效、验证流程严格时,深度学习可能捕获树模型无法表达的关系。尤其是在高频数据、订单簿数据、多资产联合建模和文本序列中,复杂网络具有合理的使用场景。
但中低频金融数据通常缺少足够独立样本。表面上的样本数量可能很大,真正独立的市场状态数量却有限。连续价格数据中的相邻样本不是独立观测。把一条长时间序列切成大量窗口,不会线性增加有效信息。
这会直接限制深度网络的泛化能力。
一个可执行的模型选择顺序
可以采用以下顺序减少无效复杂化:
1. 先用少量领域特征建立基准。
2. 用随机森林检查非线性收益是否存在。
3. 用梯度提升测试特征交互的增量。
4. 使用信息系数、信息比率和分层单调性剔除冗余因子。
5. 在统一验证框架下引入卷积网络或残差网络。
6. 比较净收益、回撤、换手率和参数稳定性。
7. 只保留在多个时间窗口中具有持续增量的模型。
这个顺序的重点不是模型排名,而是控制实验变量。每次只增加一层复杂度。否则无法知道收益变化来自新特征、新模型,还是新的数据处理方式。
结论:先减少自由度,再提高模型容量
金融时序预测的核心矛盾不是技术指标太少,也不是深度学习不够复杂。真正的问题是自由度过高,而可重复信号过少。
在低信噪比和非平稳数据中,复杂化具有明显诱惑。它能快速提高训练集拟合度,也能产生平滑的历史净值曲线。但只要特征搜索、参数优化和回测选择没有被隔离,曲线就可能只是数据挖掘结果。
当前更稳妥的工程路径是:
- 用领域知识确定候选变量。
- 用资产专属特征替代一套统一输入。
- 用斯皮尔曼相关性、信息系数、信息比率和分层单调性进行多层筛选。
- 用随机森林或梯度提升建立结构化基准。
- 用滚动样本外测试验证衰减。
- 用交易成本、换手率和回撤重新计算模型价值。
- 只有在数据规模和验证条件足够时,才增加深度网络。
模型最终需要解决的不是“能否预测”,而是“预测优势能否在成本、时间变化和参数扰动下继续存在”。
这条标准没有捷径。特征越多,审计成本越高。模型越深,验证要求越高。参数越精细,过拟合风险越高。
先做减法。再决定是否需要加法。
相关阅读: 交易员决策疲劳应对策略:减少日内无效交易的系统化方案 、 全职交易员的社交孤立:享受孤独还是走向心理失衡?.
