一、为什么我们要聊深度学习选股与择时融合?
说实话,我入行量化投资那会儿,大家还在用多因子模型和简单的统计套利。那时候选股和择时是两拨人干的活——选股的只管股票池,择时的只管买卖点。但我在实盘中发现一个问题:好股票买在了高点,照样亏钱;烂股票就算择时再准,收益天花板也低。
后来深度学习火起来了,我开始琢磨:能不能让模型既学会选股,又学会择时?说白了,就是让一个神经网络同时理解「买什么」和「什么时候买」。这个想法听起来简单,做起来可踩了不少坑。今天这堂课,我就把这几年的实战经验掰开揉碎讲给你听。
1.1 传统方法的痛点
先说说传统做法的问题在哪。我举个例子:
- 选股模型:用因子打分,选出排名前10%的股票。但模型不管市场情绪,牛市选对了,熊市照样跌。
- 择时模型:用技术指标判断买卖点。但指标滞后严重,等信号出来,行情已经走了一半。
你想想看,这两个模型各自为战,结果就是:选股模型推荐的股票,择时模型说「再等等」;择时模型发出买入信号,选股模型却说「这票不行」。这种割裂,在实盘里就是亏损的根源。
核心矛盾:选股和择时本质上是同一个问题的两个侧面——你不可能脱离市场环境去评价一只股票的好坏,也不可能脱离股票本身去判断买卖时机。
1.2 深度学习带来的转机
为什么深度学习能解决这个问题?我个人习惯用一句话概括:深度学习擅长从高维数据中自动提取交互特征。
传统方法需要人工设计选股因子和择时信号,然后硬生生拼在一起。但深度学习可以:
- 共享底层特征:让同一个网络同时学习股票的基本面特征和市场时序特征。
- 端到端训练:直接优化最终的收益目标,而不是分两步优化。
- 捕捉非线性关系:比如「当市场波动率上升时,低估值股票的防御属性会增强」——这种复杂关系,传统线性模型很难学到。
我在项目中遇到过最典型的案例:用LSTM同时预测股票未来收益和最佳买卖点,结果比分开训练的两个模型收益高出15%以上。嗯,这里要注意,不是所有融合都能提升,关键看你怎么设计网络结构。
1.3 融合框架的整体设计
下面这张图是我自己总结的融合框架,你可以把它当作整个课程的地图:
这个框架的核心思想是:先共享底层特征,再分头学习选股和择时,最后融合决策。我最早尝试的是直接用一个网络输出两个任务,结果发现两个任务互相干扰。后来改成这种「共享-分支-融合」的结构,效果才稳定下来。
1.4 你需要掌握的前置知识
这门课不是零基础入门,我假设你已经具备以下能力:
| 知识领域 | 具体要求 | 我建议的复习资料 |
|---|---|---|
| Python编程 | 熟练使用NumPy、Pandas、Matplotlib | 《利用Python进行数据分析》 |
| 深度学习基础 | 理解CNN、RNN/LSTM、Transformer原理 | 吴恩达深度学习课程 |
| 量化投资基础 | 了解多因子模型、回测框架、风险指标 | 《量化投资:策略与技术》 |
| PyTorch框架 | 能搭建简单的神经网络并训练 | PyTorch官方教程 |
避坑指南:我曾经带过一个学员,他跳过基础直接上手融合模型,结果调了两个月参数都没收敛。后来我让他先跑通单任务模型,再改双任务,三天就出效果了。所以我的建议是:先单后双,先简后繁。
1.5 课程的整体安排
整个课程我会按照「数据→特征→模型→训练→回测→实盘」这条线来组织。具体来说:
- 第2-3章:数据预处理和特征工程——这部分我踩过最多的坑,比如未来函数、幸存者偏差,我会重点讲怎么避免。
- 第4-6章:模型架构设计——从简单的双塔模型到复杂的Transformer融合,每种结构我都会给出PyTorch代码。
- 第7-8章:训练技巧和损失函数设计——多任务学习的权重怎么调?样本不平衡怎么处理?这里都有实战经验。
- 第9-10章:回测框架和实盘部署——回测跑得漂亮不代表实盘能赚钱,我会告诉你哪些坑是回测看不出来的。
学习建议:每章后面的代码示例,我建议你亲手敲一遍。别复制粘贴,因为很多细节只有亲手调试才能发现。比如我在写LSTM的序列长度时,一开始设了60天,结果模型老是过拟合,后来改成30天就好多了——这种经验,光看代码是学不到的。
1.6 本章小结
好了,导论部分就讲这么多。总结一下核心要点:
- 选股和择时必须融合,分开做就是「盲人摸象」。
- 深度学习提供了技术可能,但框架设计是关键。
- 「共享-分支-融合」结构是目前最稳定的方案。
- 先打好基础,再搞融合,别走捷径。
下一章,我们会正式开始数据预处理。我会带你处理A股的真实数据,包括怎么清洗停牌数据、怎么处理复权、怎么避免未来函数——这些都是实盘里必须过的坎。
公众号:蓝海资料掘金营,微信deep3321