1. 先厘清量化策略的版图:每一类策略到底在赚什么钱
经常有人在后台问我:想做量化,第一步是不是得先把Python学得滚瓜烂熟?我的回答通常是一句反问:你打算赚哪种钱?这个问题想不清楚,代码写得再漂亮,最后多半还是在给券商和交易所交手续费。
量化交易策略本质上不是一堆指标和代码的堆砌,而是把一套可重复、可验证的交易逻辑用程序表达出来。这套逻辑必须回答三个问题:为什么这个价格会涨跌、什么时候触发买卖、错了怎么办。市面上流传的“常见策略”看起来花样很多,但拆开来看,赚的钱基本来自这么几个地方:市场参与者的情绪惯性、资产价格的暂时失衡、信息扩散的时间差、以及有人愿意为流动性付出溢价。搞明白策略赚的是哪一类钱,才能搞明白它在什么行情下有效、什么行情下会失灵。
先给一张我常用来给新人做科普的量化策略版图,按决策逻辑来切分要比按品种切分清晰得多:
| 策略大类 | 核心赚钱逻辑 | 典型时间周期 | 主要风险来源 |
|---|---|---|---|
| 趋势跟踪类 | 价格沿既有方向继续运行 | 日线级到周线级 | 震荡行情中反复止损 |
| 均值回归类 | 价格过度偏离后回归中枢 | 分钟级到日线级 | 单边行情下“接飞刀” |
| 统计套利类 | 相关资产价差回归长期均衡 | 高频到日内 | 协整关系瓦解 |
| 事件驱动类 | 信息公布后的预期差修复 | 数日到数周 | 事件不确定性 |
| 高频与做市类 | 为市场提供流动性换取价差 | 毫秒到秒级 | 技术系统风险、逆向选择 |
| 多因子选股类 | 横截面上因子风险溢价 | 月度调仓为主 | 因子拥挤、风格切换 |
工具是可以互相叠加的,比如一个CTA策略可以同时包含趋势和套利成分。但如果连自己主要吃的是哪种“市场beta”都说不清楚,后面的参数优化、绩效归因都会变成无源之水。
我之所以把“分类”放在全文最前面,是因为在实际带人做策略的过程中,发现大多数亏损并非策略本身失效,而是使用者在错误的行情里用了错误的策略类型。量化圈有句老话:没有万能的圣杯,只有错配的周期。开篇先把地图铺开,后面的每一类策略细节才有落脚点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 主流策略逐个拆解:核心逻辑、代码骨架与失效边界
这一部分我会把六类主流策略逐一说透。每一类都会讲清楚它最底层的假设、实际操作中的标准做法、以及普通人最容易忽略的失效场景。
2.1 趋势跟踪:市场惯性的钱,赚得最辛苦也最稳定
趋势跟踪是历史最悠久、逻辑最朴素的量化策略:价格一旦形成方向,就会在惯性作用下继续运行一段时间。均线交叉、唐奇安通道突破、动量因子都是这个思路的变体。
核心假设是市场存在“羊群效应”,趋势的形成需要时间,而多数交易者对信息的反应是渐进的,这就给了后来者搭乘趋势的机会。一个最传统的突破策略长这样:
python复制# 唐奇安通道突破策略
# 数据:日线OHLCV
import pandas as pd
def donchian_signal(df, lookback=20):
df['upper'] = df['high'].rolling(lookback).max()
df['lower'] = df['low'].rolling(lookback).min()
df['signal'] = 0
# 突破上轨开多
df.loc[df['close'] > df['upper'].shift(1), 'signal'] = 1
# 跌破下轨反手做空(期货/两融账户适用)
df.loc[df['close'] < df['lower'].shift(1), 'signal'] = -1
return df
注意我用了 shift(1),这是回测里避免未来函数的关键细节。用当天的最高价去和当天的唐奇安上轨比,逻辑上没问题,但成交只能发生在信号确认之后,所以实际买入应该用次日开盘价。
趋势策略真正考验人的不是入场信号,而是震荡期的连续磨损。价格在通道上下沿之间来回扫的时候,策略会连续触发止损,资金曲线形成一段很长的横盘或阴跌。我早期跑股指期货5分钟趋势策略时,曾经连续21个交易日没有盈利
