量化策略研发全流程
所属分类 quant
浏览量 5
数据采集
数据清洗
特征工程
策略生成
策略评估
模拟交易
实盘验证
阶段/核心目标/关键操作/常用工具/核心风险点
一. 数据采集
获取策略所需的完整、准确、时序一致的数据源
1. 确定数据类型:
- 市场数据(OHLCV、成交量、买卖盘口)
- 基本面数据(财务指标、市盈率、股息率)
- 另类数据(舆情、资金流向、卫星数据)
2. 选择数据来源:
- 免费:Tushare、Akshare、Wind 金融终端免费版
- 付费:Wind、Choice、Bloomberg、QuantConnect
3. 数据存储:
按时间序列存储为 CSV/Parquet,
或接入时序数据库(InfluxDB、ClickHouse)
Tushare、Akshare、Wind、Choice、QuantConnect、聚宽
数据缺失、时序错位、复权处理错误、数据权限过期
二. 数据清洗
消除噪声和异常值,保证数据一致性和可用性
1. 缺失值处理:填充(均值 / 中位数 / 线性插值)、删除
2. 异常值处理:
- 统计法(3σ 原则、IQR 四分位数)
- 业务法(剔除涨跌停、停牌数据)
3. 数据标准化:
- 复权处理(前复权 / 后复权,股票必备)
- 格式统一(时间戳格式、字段命名规范)
Pandas、NumPy、PySpark(海量数据)
过度清洗导致数据失真、复权方式错误影响回测结果
三. 特征工程
从原始数据中提取有效信号,是策略盈利的核心
1. 特征分类:
- 技术指标特征(均线 MA、MACD、RSI、布林带)
- 统计特征(波动率、换手率、相关性)
- 衍生特征(量价比、均线乖离率、行业轮动因子)
2. 特征优化:
- 特征筛选(相关性分析、方差分析、递归特征消除)
- 特征变换(标准化、归一化、对数变换)
3. 因子挖掘:
通过金融理论或数据挖掘(如机器学习)发现 Alpha 因子
Pandas、Scikit-learn、TA-Lib、FactorAnalyzer
特征共线性、过拟合(挖掘到 “伪因子”)、特征时效性衰减
四. 策略生成
将投资逻辑转化为可量化的规则或模型
1. 策略类型选择:
- 基于规则的策略(如均线金叉买入、死叉卖出;均值回归策略)
- 基于模型的策略(机器学习模型:线性回归、随机森林、XGBoost;深度学习:LSTM)
2. 策略逻辑定义:
- 入场条件(如 “5 日均线上穿 20 日均线”)
- 出场条件(如 “跌破 10 日均线止损”)
- 仓位管理(固定仓位、凯利公式、风险平价)
Backtrader、VectorBT、Zipline、Python(自研)
逻辑漏洞(如未考虑手续费)、参数过度拟合(曲线拟合)
五. 策略评估
全面检验策略的盈利能力、稳定性和风险水平
1. 核心评估指标:
- 收益指标(年化收益率、累计收益率、夏普比率、卡玛比率)
- 风险指标(最大回撤、波动率、索提诺比率)
- 胜率指标(胜率、盈亏比、最大连续亏损次数)
2. 回测注意事项:
- 样本内回测(训练策略参数)
- 样本外验证(检验策略泛化能力)
- 避免未来函数(严禁使用未来数据)
Backtrader、VectorBT、Pyfolio、Matplotlib
未来函数、幸存者偏差、过度优化(参数过拟合)
六. 模拟交易
在真实市场环境中验证策略,排除回测偏差
1. 模拟交易设置:
- 对接实盘行情(实时或延迟)
- 严格模拟手续费、滑点、冲击成本
- 同步实盘交易规则(涨跌停、停牌限制)
2. 监控与调整:
- 跟踪策略执行情况(订单成交率、仓位偏离度)
- 对比模拟收益与回测收益的差异
券商模拟交易平台、聚宽 / 米筐模拟盘、自建模拟交易系统
模拟盘与实盘的滑点差异、交易执行效率差异
七. 实盘验证
小资金试错,最终确认策略的实战价值
1. 实盘阶段划分:
- 小资金试盘(10%-20% 资金,验证执行逻辑)
- 逐步加仓(策略稳定后提升仓位)
2. 实盘监控:
- 实时监控策略运行状态(是否触发异常信号)
- 定期复盘(对比实盘与回测的差异,优化参数)
3. 策略迭代:根据市场变化调整策略逻辑或因子
券商 API(如中信、华泰的量化交易接口)、VNPY、TradingView
流动性风险(订单无法成交)、市场风格切换导致策略失效、极端行情冲击
关键补充:策略迭代与风险管理
1.策略迭代
量化策略不是一成不变的,市场风格切换
如从 成长股 转向 价值股 会导致策略失效,需要定期:
重新评估因子有效性;
优化策略参数或逻辑;
引入新的数据源或特征
2. 核心风险规避
过拟合:
避免用过多参数拟合历史数据,必须保留样本外数据验证;
未来函数:
回测时严禁使用当时不可得的数据(如收盘价后计算的指标用于当日开盘交易)
滑点与手续费:
回测时必须加入真实的交易成本,否则收益会严重高估
技术栈适配(Java→Python/C++)
Python:
适合策略研发全流程(数据处理、回测、机器学习),
生态丰富(Pandas、Backtrader),是量化领域的主流语言;
C++:
适合高频交易策略的实盘执行,
优势是速度快、延迟低,可用于编写订单执行系统;
Java:
可用于搭建量化交易平台的后端架构(如行情接收、订单管理),与 Python/C++ 协同工作
上一篇
下一篇
量化策略评估指标
Python量化投资实战
《战胜一切市场的人》笔记
均值回归策略实例
python @classmethod 和 @staticmethod 区别
股票多因子模型实战