量化选股策略框架:从零到一的完整流程
做量化选股这些年,我最大的感触是——很多人一上来就急着写代码、跑回测,结果往往是一顿操作猛如虎,一看收益二百五。说白了,策略设计是有章可循的。今天我就把这套框架掰开揉碎了讲给你听。
核心观点:量化选股不是玄学,而是一套可复用的工程化流程。掌握框架,比掌握某个具体策略重要十倍。
一、策略设计的一般流程
我个人习惯把策略设计分成五个步骤。嗯,这五个步骤缺一不可,跳步必踩坑。
- 明确目标——你要赚什么钱?是赚alpha(超额收益)还是赚beta(市场上涨的钱)?我见过有人把目标写成“我要跑赢沪深300”,结果回测时发现策略和指数走势一模一样,那还选什么股?
- 构建逻辑——你的策略凭什么赚钱?是低估值修复?是动量延续?还是事件驱动?逻辑必须可解释、可验证。
- 数据准备——巧妇难为无米之炊。数据质量直接决定策略上限。
- 因子挖掘与筛选——这是核心环节,后面会细讲。
- 回测与评估——验证你的想法是否真的可行。
你想想看,这五个步骤其实和做实验很像。先有假设,再收集数据,然后验证。我曾经犯过一个低级错误——跳过第一步直接写代码,结果花了三天写的策略,逻辑上根本说不通。从那以后,我再也不敢跳过框架设计了。
二、数据获取与处理
数据是量化策略的“原材料”。我常说一句话:垃圾数据进,垃圾策略出。
2.1 数据来源
目前主流的数据源有几种:
- 免费公开数据:Tushare、AkShare、Baostock等。适合学习和个人研究。
- 商业数据:Wind、Choice、聚宽等。数据质量高,但需要付费。
- 自建数据:爬取财报、新闻等。适合做另类因子。
我的建议:刚开始做策略,先用免费数据跑通流程。等策略成熟了,再考虑换商业数据。别一上来就花大价钱买数据,万一策略不行呢?
2.2 数据清洗
数据拿到手,第一件事不是分析,而是清洗。我遇到过最离谱的情况——某只股票某天的收盘价是负数。你想想看,这要是直接拿去算因子,结果得多离谱?
常见的清洗操作包括:
- 处理缺失值(前向填充、插值、删除)
- 处理异常值(3σ原则、分位数截断)
- 复权处理(前复权 vs 后复权,我习惯用前复权)
- 对齐时间戳(不同数据源的时间格式可能不同)
# 一个简单的数据清洗示例
import pandas as pd
import numpy as np
def clean_stock_data(df):
# 处理缺失值:前向填充
df = df.fillna(method='ffill')
# 处理异常值:超过3倍标准差视为异常
for col in ['close', 'volume']:
mean = df[col].mean()
std = df[col].std()
df[col] = df[col].clip(mean - 3*std, mean + 3*std)
return df
三、因子挖掘与筛选
因子,说白了就是选股的“依据”。你凭什么选这只股票而不选那只?因为它的某个指标更好。这个指标就是因子。
3.1 因子分类
| 因子类型 | 常见因子 | 逻辑 |
|---|---|---|
| 估值因子 | PE、PB、PS | 便宜的东西总会涨回来 |
| 动量因子 | 过去N日收益率 | 强者恒强,弱者恒弱 |
| 质量因子 | ROE、毛利率 | 好公司长期跑赢差公司 |
| 情绪因子 | 换手率、波动率 | 市场情绪会推动价格 |
3.2 因子筛选的“三板斧”
我一般用三个维度来筛选因子:
- 有效性——因子和未来收益有没有显著相关性?用IC(信息系数)来检验。
- 稳定性——因子在不同时间段表现是否一致?别今年有效明年就失效。
- 独立性——因子之间不能高度相关。否则你加再多因子,效果也差不多。
避坑指南:我曾经挖到一个IC值高达0.15的因子,兴奋得不行。结果仔细一看,这个因子和市值因子相关性超过0.9。说白了,它就是市值因子的“马甲”。所以一定要做相关性分析。
四、策略回测与评估
回测是检验策略的唯一标准。但回测也是最容易“作弊”的地方。
4.1 回测的核心要素
- 回测区间:至少包含一个完整的牛熊周期。我建议至少3-5年。
- 交易成本:包括佣金、印花税、滑点。很多人回测时忽略滑点,结果实盘一跑就亏。
- 调仓频率:日频、周频还是月频?频率越高,交易成本越高。
4.2 评估指标
别只看收益率。我见过年化50%的策略,最大回撤80%,你敢用吗?
| 指标 | 含义 | 理想值 |
|---|---|---|
| 年化收益率 | 策略每年的平均收益 | 越高越好 |
| 最大回撤 | 从最高点到最低点的跌幅 | 越小越好 |
| 夏普比率 | 每承担一单位风险获得的超额收益 | >1 |
| 胜率 | 盈利交易占比 | >50% |
五、知识体系总览
下面这张图是我自己总结的量化选股策略框架。每次做新策略,我都会对照这张图检查一遍,看看有没有遗漏的环节。
一个小技巧:每次跑完回测,我都会问自己三个问题——策略逻辑说得通吗?回测结果稳定吗?实盘能执行吗?如果有一个回答是否定的,那就回去重新检查。
好了,以上就是量化选股策略框架的全部内容。从策略设计到数据获取,从因子挖掘到回测评估,每一步都有坑,但也每一步都有方法可循。记住一句话:框架比代码重要,逻辑比结果重要。