第 05 课:经典策略范式

量化不是发明新策略,而是在正确的市场用正确的策略。


两种交易者的命运

2020 年 3 月,新冠疫情引发全球股市暴跌。

交易者 A 使用趋势跟随策略。在下跌初期,他的策略及时做空,一个月盈利 40%。随后市场触底反弹,他又顺势做多,年底账户翻了三倍。

交易者 B 使用均值回归策略。看到大跌后,他认为"跌多了必然反弹",不断抄底。结果越抄越跌,在最低点前一天爆仓离场。

同一个市场,两种策略,截然不同的结局。

2021 年,情况反过来了。

市场进入震荡期,交易者 A 的趋势策略开始反复被打脸:追涨杀跌,每次都买在高点、卖在低点。他亏掉了 2020 年的一半利润。

而交易者 B(换了新资金)的均值回归策略开始发威:高抛低吸,稳定盈利。年底账户增长 60%。

教训是什么?

  1. 没有一种策略能适应所有市场
  2. 趋势市场需要趋势策略,震荡市场需要均值回归策略
  3. 识别市场状态比选择策略更重要

这就是为什么我们需要多智能体系统——让不同的专家策略负责不同的市场状态。


5.1 趋势跟随

核心思想

"趋势是你的朋友,直到它不再是。"

趋势跟随的哲学:市场有惯性,涨的容易继续涨,跌的容易继续跌

特点描述
盈利模式捕捉大趋势,赚"头部"和"尾部"的钱
胜率通常只有 30-45%
盈亏比高,单笔盈利可能是亏损的 3-10 倍
适用市场趋势明显的市场(牛市、熊市)
致命场景震荡市反复被打脸

双均线策略

最经典的趋势跟随策略:

规则:
- 金叉买入:短期均线上穿长期均线(如 MA5 > MA20)
- 死叉卖出:短期均线下穿长期均线(如 MA5 < MA20)

直观理解

  • 短期均线代表"当前情绪"
  • 长期均线代表"长期趋势"
  • 短期超过长期 = 趋势可能向上转变
参数组合适用场景特点
MA5/MA20短线交易灵敏,假信号多
MA10/MA60中线交易平衡
MA20/MA120长线投资稳定,滞后严重

实际表现

市场状态双均线表现
强趋势(牛/熊市)盈利,能抓住大部分行情
弱趋势小亏小赚
震荡市亏损,频繁假信号

优化方向

  • 加入趋势过滤器(ADX > 25 才开仓)
  • 加入成交量确认(放量时信号更可靠)
  • 多周期验证(日线金叉 + 周线趋势向上)

日内趋势交易

适合全职交易者的策略:

规则:
1. 开盘后 30 分钟,观察价格方向
2. 如果突破开盘价 0.5%,顺势开仓
3. 止损设在开盘价另一侧 0.5%
4. 收盘前平仓,不留隔夜风险
优点缺点
不承担隔夜风险需要全程盯盘
信号明确手续费成本高
当天结算可能错过大趋势

趋势跟随的风险特征

趋势跟随净值曲线

关键洞察

  • 趋势策略在震荡期会连续小亏
  • 需要心理准备承受 10-20 次连续止损
  • 靠少数几次大趋势赚回所有亏损并盈利

5.2 均值回归

核心思想

"涨多了会跌,跌多了会涨。"

均值回归的哲学:价格终将回归到某个"正常"水平

特点描述
盈利模式高抛低吸,赚"震荡"的钱
胜率通常 55-70%
盈亏比低,单笔盈利通常小于亏损
适用市场震荡市、有界区间
致命场景趋势突破,越抄越跌

网格交易策略

在预设的价格区间内,等距设置买卖点:

网格交易结构

规则

  • 价格下跌到 95 → 买入 1 份
  • 价格下跌到 90 → 再买 1 份
  • 价格上涨到 105 → 卖出 1 份
  • 价格上涨到 110 → 再卖 1 份
参数建议值说明
网格间距3-5%间距太小手续费吃利润,太大信号太少
总网格数5-10 格太多资金分散,太少容错空间小
单格仓位总资金/网格数确保最坏情况不爆仓

网格交易的真相

市场状态网格表现
震荡市稳定盈利,每次震荡都能吃到价差
趋势市向上小盈利,但持仓被卖空,踏空后续涨幅
趋势市向下巨亏,越跌越买,资金被套

重要警告:网格交易最怕单边下跌,务必设置整体止损。

配对交易 (Pairs Trading)

找到两个高度相关的资产,当它们价差偏离正常范围时交易:

示例:SPY vs IVV(两只追踪 S&P 500  ETF)

计算标准化价差(而非原始价格比):
  标准化价差 = (SPY收益率 - IVV收益率)  Z-score

 Z-score > 2:SPY 相对高估
 Z-score < -2:SPY 相对低估

操作(假设 Z-score = 2.5):
- 做空 $10,000 SPY
- 做多 $10,000 IVV(等金额对冲)
- 等待 Z-score 回归到 0 附近平仓

注意:SPY 和 IVV 的绝对价格不同(SPY~$600,IVV~$550),不能直接比较价格比。配对交易应使用标准化价差或等金额对冲。

注意:经典的 KO vs PEP 配对在现代市场中协整性已减弱。追踪同一指数的 ETF(如 SPY/IVV、QQQ/QQQM)是更稳健的配对选择。

为什么有效?

  • 两只 ETF 追踪完全相同的指数
  • 价差偏离是因为市场微观结构差异(流动性、交易时间)
  • 偏离通常很快回归

关键概念:协整 (Cointegration)

概念定义举例
相关性两个序列同涨同跌黄金和黄金 ETF
协整性两个序列的差值是稳定的SPY 和 IVV(同一指数 ETF)

相关不代表协整。协整才是配对交易的基础。

均值回归的风险特征

均值回归净值曲线

关键洞察

  • 均值回归在震荡期非常稳定
  • 但一次趋势突破可能亏掉数月利润
  • 必须严格止损,不能"死扛"

5.3 多策略组合

为什么要组合?

单策略问题组合策略解决方案
趋势策略在震荡市亏损均值回归策略弥补
均值回归在趋势市亏损趋势策略弥补
单一策略风险集中多策略分散风险

策略相关性

组合的关键是低相关性

策略 A策略 B相关性组合效果
趋势跟随趋势跟随无分散效果
趋势跟随均值回归低/负良好分散
股票多头债券优秀分散

资本分配方法

方法 1:等权分配

策略 A: 33%
策略 B: 33%
策略 C: 34%

简单,但没有考虑策略风险差异。

方法 2:风险平价 (Risk Parity)

按波动率的倒数分配:
策略 A 波动率 20%  权重  1/0.20 = 5
策略 B 波动率 10%  权重  1/0.10 = 10
策略 C 波动率 40%  权重  1/0.40 = 2.5

标准化后:
策略 A: 5/17.5  29%
策略 B: 10/17.5  57%
策略 C: 2.5/17.5  14%

让每个策略对组合的风险贡献相等。

方法 3:动态调整

  • 趋势市场 → 增加趋势策略权重
  • 震荡市场 → 增加均值回归策略权重
  • 这需要准确的 Regime Detection(第 11 课详解)

5.4 高风险策略警示

马丁格尔策略(慎用)

逻辑:
 1 次下注 $100,输
 2 次下注 $200,输
 3 次下注 $400,输
 4 次下注 $800,赢!

赢了 $800,之前亏了 $700,净赚 $100

看起来很美,实际很危险

连亏次数累计投入单次下注
1$100$100
2$300$200
3$700$400
4$1,500$800
5$3,100$1,600
6$6,300$3,200
7$12,700$6,400
8$25,500$12,800
9$51,100$25,600
10$102,300$51,200

10 次连亏需要 10 万美金,而收益只是最初的 $100。

为什么会连亏 10 次?

  • 50% 胜率下,连亏 10 次的概率 = 0.5^10 ≈ 0.1%
  • 看起来很小,但交易 1000 次就会遇到一次
  • 一次就足以爆仓

如果一定要用

  • 设置最大加仓次数(如最多加仓 3 次)
  • 设置单日最大亏损(如 10%)
  • 理解这本质上是"用爆仓风险换高胜率"

5.5 期权策略简介(进阶)

期权是高级工具,风险也高。本节仅作入门介绍,实操前请深入学习希腊值。

期权基础概念

术语含义
认购期权 (Call)有权以约定价格买入
认沽期权 (Put)有权以约定价格卖出
行权价 (Strike)约定的买卖价格
到期日期权失效的日期
权利金购买期权的价格

牛市价差策略 (Bull Call Spread)

操作

  1. 买入低行权价的认购期权(如 100 元 Call)
  2. 卖出高行权价的认购期权(如 110 元 Call)
盈亏图:
盈利         ____
            /
  0  │──────●
          /
亏损 │____/ 
     └──────┴────── 股价
        100  110
特点描述
成本低于直接买 Call
最大亏损权利金净支出
最大盈利行权价差 - 净权利金
适用场景预期温和上涨

末日期权策略(高风险)

在期权到期前 1-3 天,押注波动率爆发:

原理

  • 临近到期,期权时间价值快速衰减
  • 但如果有大事件(财报、Fed 会议),波动率可能暴涨
  • Gamma 值极高,小幅价格变动会带来巨大收益(或亏损)
特点描述
潜在收益可能 10 倍以上
潜在亏损权利金归零(100%损失)
胜率通常低于 20%
仓位建议≤ 总资金的 5%

Gamma Scalping(专业)

原理:持有期权头寸,通过反复买卖标的资产对冲 Delta。

简化示意:
1. 持有 Call 期权(做多 Gamma)
2. 价格上涨  Delta 变大  卖出股票对冲
3. 价格下跌  Delta 变小  买入股票对冲
4. 反复操作,赚取波动差价

盈利条件:实际波动率 > 隐含波动率

要求描述
手续费必须极低
交易频率高,可能每天几十次
技术门槛需要精通期权定价和希腊值

5.6 策略选择框架

如何选择策略?(可证伪的规则)

模糊的"看趋势"没有意义,需要可量化、可验证的规则:

指标条件判定结果推荐策略失效信号
ADX > 25 且持续 5 日以上趋势确认趋势跟随ADX < 20 连续 3 日
ADX < 20 且价格在布林带内震荡震荡确认均值回归价格突破布林带 2σ 且 ADX 上升
波动率 > 历史 90 分位危机模式减仓/对冲波动率回落到 50 分位以下
以上均不满足不确定降低仓位 50%任一条件满足

可证伪的策略选择规则

如果以下条件满足  使用趋势跟随:
  1. ADX(14) > 25 连续 5 
  2. 价格在 20 日均线同侧连续 10 
  3.  20 日收益率显著不为 0(t 检验 p < 0.05)

如果以下条件满足  使用均值回归:
  1. ADX(14) < 20 连续 5 
  2. 价格在布林带(20日,2σ)内震荡
  3.  20 日收益率接近 0(t 检验 p > 0.2)

如果以上条件均不满足  降低仓位至 50%,等待信号明确

Regime 切换的过渡期处理

最危险的时刻不是趋势或震荡,而是切换期

切换场景风险应对策略
震荡 → 趋势均值回归策略被套、止损连击突破信号出现后立即减仓均值回归仓位
趋势 → 震荡趋势策略连续假突破、反复止损ADX 下降时逐步减仓趋势策略
正常 → 危机所有策略同时亏损,相关性飙升波动率突然飙升时优先减仓,而非切换策略

切换期的保守规则

  1. 确认滞后:Regime 变化确认需要 3-5 天,不要追第一天的信号
  2. 减仓优先:在不确定期,先减仓再换策略,而非直接全仓切换
  3. 亏损容忍:预留 5-10% 的"切换成本",接受这部分亏损

回测时必须检验

  • 切换期的亏损占总亏损的比例(如果 > 50%,说明切换逻辑有问题)
  • 切换延迟天数(如果 > 5 天,考虑更灵敏的指标)
  • 误切换次数(如果太频繁,考虑增加确认条件)

策略对比总结

维度趋势跟随均值回归网格交易
胜率30-45%55-70%60-75%
盈亏比3:1 以上1:2 左右1:3 左右
最大回撤20-40%15-30%可能爆仓
资金效率一般较高低(资金分散)
心理压力连续止损扛单压力被套压力
适用市场趋势市震荡市震荡市

常见误区

误区一:高胜率策略更好

不一定。胜率 40% 但盈亏比 3:1 的策略,期望收益远高于胜率 70% 盈亏比 0.5:1 的策略。关键是 期望收益 = 胜率 × 盈利 - 败率 × 亏损。

误区二:回测表现好的参数就是最优参数

危险假设。最优参数往往是"过拟合"的结果。参数 ±20% 变化后收益剧变,说明这套参数只是恰好在历史数据上表现好。

误区三:趋势策略在震荡市"调整参数"就能盈利

不能。趋势策略的逻辑是"趋势存在",震荡市没有趋势,再怎么调参数也无法盈利。正确做法是切换到均值回归策略。

误区四:网格交易是"稳赚"策略

极其危险。网格交易在震荡市确实稳定盈利,但遇到单边下跌会越跌越买,资金被套死。必须设置整体止损。

误区五:经典策略永远有效

当太多人使用同一策略时,策略会失效——这就是策略同质化(Strategy Crowding)风险。2024 年初,中国头部量化基金因小盘股因子拥挤集体亏损 8-13%,揭示了策略趋同的系统性风险。任何策略在被广泛采用后,超额收益都会衰减。详见第 18 课的策略拥挤案例分析。

多智能体视角

在多智能体系统中:

Agent主要策略激活条件
Trend Agent趋势跟随Regime Agent 判定为趋势市
Mean Reversion Agent均值回归Regime Agent 判定为震荡市
Crisis Agent防御策略波动率飙升或出现异常
Portfolio Agent多策略组合动态调整各策略权重
Risk Agent风控永远在线,一票否决

💻 代码实现(可选)

双均线策略回测框架

import pandas as pd
import numpy as np

def dual_ma_strategy(df, short_window=5, long_window=20):
    """
    双均线策略
    返回持仓信号:1=多头,-1=空头,0=空仓
    """
    df = df.copy()
    df['MA_Short'] = df['close'].rolling(short_window).mean()
    df['MA_Long'] = df['close'].rolling(long_window).mean()

    # 生成信号
    df['signal'] = 0
    df.loc[df['MA_Short'] > df['MA_Long'], 'signal'] = 1   # 金叉做多
    df.loc[df['MA_Short'] < df['MA_Long'], 'signal'] = -1  # 死叉做空

    return df['signal']


def grid_trading_signal(price, grid_center, grid_step, num_grids):
    """
    网格交易信号
    返回建议仓位变化
    """
    position_change = 0
    for i in range(1, num_grids + 1):
        buy_level = grid_center * (1 - grid_step * i)
        sell_level = grid_center * (1 + grid_step * i)

        if price <= buy_level:
            position_change = i  # 越跌买越多
        elif price >= sell_level:
            position_change = -i  # 越涨卖越多

    return position_change


def calculate_strategy_metrics(returns):
    """计算策略评价指标"""
    total_return = (1 + returns).prod() - 1
    annual_return = (1 + total_return) ** (252 / len(returns)) - 1
    volatility = returns.std() * np.sqrt(252)
    sharpe = annual_return / volatility if volatility > 0 else 0

    # 正确的最大回撤计算(基于权益曲线,非收益累加)
    equity = (1 + returns).cumprod()
    running_max = equity.cummax()
    drawdown = (equity - running_max) / running_max
    max_drawdown = drawdown.min()

    return {
        'total_return': f'{total_return:.2%}',
        'annual_return': f'{annual_return:.2%}',
        'volatility': f'{volatility:.2%}',
        'sharpe_ratio': f'{sharpe:.2f}',
        'max_drawdown': f'{max_drawdown:.2%}'
    }

本课交付物

完成本课后,你将获得:

  1. 对两大策略范式的理解 - 趋势跟随 vs 均值回归的本质差异
  2. 经典策略的实现思路 - 双均线、网格交易、配对交易
  3. 策略组合的框架 - 理解如何通过低相关性策略分散风险
  4. 对高风险策略的警惕 - 马丁格尔、末日期权的陷阱

✅ 验收标准

检查项验收标准自测方法
策略特征能说出趋势跟随和均值回归的胜率/盈亏比特点不看笔记,填写对比表
策略选择能根据 ADX 值判断应该用什么策略给定 ADX=30,说出策略选择理由
风险识别能解释马丁格尔为什么危险计算连亏 8 次需要多少资金
切换成本能说出 Regime 切换期的三个风险画出切换时的仓位调整流程

📝 场景练习

  1. 场景 A:SPY 过去 2 周 ADX 从 15 升到 28,价格突破 20 日均线

    • 问:应该选择什么策略?为什么?
  2. 场景 B:你的网格策略在过去 3 个月稳定盈利 15%,突然 SPY 连跌 5 天 12%

    • 问:应该如何调整?继续加仓还是止损?
  3. 场景 C:马丁格尔策略连亏 6 次后终于赢了

    • 问:这 7 次交易的总盈利是多少?总共投入了多少资金?
点击查看答案
  1. 场景 A 答案:切换到趋势跟随策略。理由:ADX > 25 且上升、价格突破均线,满足趋势确认条件。

  2. 场景 B 答案:应该止损!网格交易最怕单边下跌,5 天跌 12% 已经远超正常震荡。设置整体止损(如亏损 5%)是必须的。

  3. 场景 C 答案

    • 初始下注 $100
    • 第 7 次赢了 $6,400,之前累计亏了 $6,300
    • 净盈利只有 $100,但总共投入了 $12,700
    • 风险/收益比极差:冒 $12,700 的风险只赚 $100

本课要点回顾

  • 理解趋势跟随策略的特点:低胜率、高盈亏比、怕震荡
  • 理解均值回归策略的特点:高胜率、低盈亏比、怕趋势突破
  • 掌握网格交易和配对交易的基本原理
  • 认识马丁格尔策略的致命风险
  • 理解多策略组合的价值和方法

延伸阅读

  • 背景知识:高频交易与市场微结构 - 更复杂的策略类型
  • 背景知识:加密货币交易特点 - 7×24 市场的策略调整

下一课预告

第 06 课:数据工程的残酷现实

策略再好,数据有问题就是白搭。API 限流、数据缺失、时间对齐、幸存者偏差……这些问题杀死的策略比模型问题多得多。下一课直面数据的残酷现实。

Cite this chapter
Zhang, Wayland (2026). 第05课:经典策略范式. In AI Quantitative Trading: From Zero to One. https://waylandz.com/quant-book/第05课:经典策略范式
@incollection{zhang2026quant_第05课:经典策略范式,
  author = {Zhang, Wayland},
  title = {第05课:经典策略范式},
  booktitle = {AI Quantitative Trading: From Zero to One},
  year = {2026},
  url = {https://waylandz.com/quant-book/第05课:经典策略范式}
}