← 返回《初阶量化交易:策略编写及系统搭建》
📑 查看全课大纲(第 32 / 38 节)

如何评价策略

约 29 分钟

📺 正在播放小象官方高清录播(支持倍速与清晰度调节)

从哪些方面去改进策略:多因子融合与全链路精细化

小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。

当一个量化策略通过初步回测与健康体检后,量化工程师通常会发现其存在某些局部短板(例如震荡市回撤略大、多头行情抓取不全或特定周期换手率偏高)。此时,策略迭代绝不是盲目调整几个数字参数,而是需要沿着底层交易逻辑的因果关系链条,从标的池因子质量、入场特征工程、出场风控精细化到多策略低相关性对冲展开全链路系统性改进。

本讲系统介绍量化策略全流程优化的标准框架;深入探讨多因子非同质化融合(价值/成长/动量/低波)与因子正交化去共线性;剖析基于 ATR 真实波幅的动态出场止损优化;并阐明多策略组合降低组合波动率的工程实践。


💡 核心导读

  • 策略优化的核心前提:逻辑驱动而非数据挖掘
    • 一切优化的起点必须源于清晰的经济学逻辑或市场微观结构逻辑(例如:为什么小市值具有壳价值溢价?为什么低估值具有均值回归动力?);
    • 严禁无逻辑地对上百个技术指标做穷举拼凑,避免落入伪相关性的陷阱。
  • 策略四大核心维度的改进抓手
    1. 标的池层(Universe Optimization)
      • 从单一单因子(如仅看 PE)升级为多因子融合模型(价值因子 PE/PB + 质量因子 ROE + 动量因子 Momentum + 波动率因子 ATR);
      • 因子正交化(Factor Orthogonalization):消除因子间的共线性重叠,提取纯净的增量 Alpha;
    2. 择时与特征层(Timing & Features)
      • 引入量价过滤(如成交量放大确认突破、威科夫努力与结果背离过滤);
      • 将固定时间窗口(如 MA10)升级为基于市场波动率的自适应均线(如 Kaufman 自适应均线 AMA);
    3. 出场与风控层(Exit & Sizing)
      • 将固定比例止损升级为 3×ATR3 \times ATR 动态波动率跟踪止损(棘轮式:止损线只上移、不下移),在暴风雨来临时自动放宽容忍度,在平静期自动收紧保护线,浮盈扩大时逐级上移锁定利润;
    4. 资产配置层(Portfolio Diversification)
      • 将单一趋势策略拓展为低相关性多策略组合(趋势跟踪策略 + 均值回归套利策略 + 基本面多因子策略),利用策略间的负相关性抹平组合回撤。
┌─────────────────────────────────────────────────────────────┐
│                    量化策略全链路精细化改进路径                 │
└──────────────────────────────┬──────────────────────────────┘

 ┌───────────────┬─────────────┴─────────────┬───────────────┐
 ▼               ▼                           ▼               ▼
┌─────────────┐ ┌─────────────┐             ┌─────────────┐ ┌─────────────┐
│ 1. 股票池   │ │ 2. 择时特征 │             │ 3. 出场风控 │ │ 4. 多策略   │
├─────────────┤ ├─────────────┤             ├─────────────┤ ├─────────────┤
│ • 多因子融合│ │ • 量价配合  │             │ • 3×ATR动态 │ │ • 趋势+套利 │
│ • 因子正交化│ │ • 波动自适应│             │ • 阶梯式止盈│ │ • 低相关对冲│
│ • 剔除伪因子│ │ • 威科夫过滤│             │ • CPR风险仓 │ │ • 抹平回撤  │
└─────────────┘ └─────────────┘             └─────────────┘ └─────────────┘

一、真实波幅(ATR)在动态风控中的应用

传统固定 5% 止损无法适应不同股票的波动个性(银行股日均波动 1%,而科技股日均波动 5%)。通过引入真实波幅 ATRATR

TRt=max(HightLowt,HightCloset1,LowtCloset1)TR_t = \max(|High_t - Low_t|, |High_t - Close_{t-1}|, |Low_t - Close_{t-1}|) ATRt=(N1)ATRt1+TRtN(Wilder 平滑,等价于 α=1/N 的指数平滑)ATR_t = \frac{(N-1) \cdot ATR_{t-1} + TR_t}{N} \quad (\text{Wilder 平滑,等价于 } \alpha = 1/N \text{ 的指数平滑})

注意 ATR 的经典定义采用 Wilder 平滑α=1/N\alpha = 1/N),而非普通 EMA 的 α=2/(N+1)\alpha = 2/(N+1)——pandas 中应对应 ewm(alpha=1/N, adjust=False);若写成 ewm(span=N),平滑系数近乎翻倍,ATR 响应速度约为经典定义的两倍,与主流行情软件(通达信/TradingView 均为 Wilder 口径)的数值不可比。将初始止损距离设定为 3×ATR3 \times ATR,动态实现”大波动给大空间、小波动给小空间”的自适应风控;多头跟踪止损线再叠加棘轮机制 Stopt=max(Stopt1, Closet3×ATRt)\text{Stop}t = \max(\text{Stop}{t-1},\ Close_t - 3 \times ATR_t)——只上移、不下移,随浮盈扩大逐级锁定利润。


二、多策略低相关性对冲的数学奇迹

若组合中包含策略 A(夏普 1.0)与策略 B(夏普 1.0),且两者收益率相关系数 ρ0.2\rho \approx -0.2

  • 组合后的整体夏普比率可直接跃升至 1.61.6 以上
  • 这正是对冲基金(Hedge Fund)通过跨品种、跨周期、跨逻辑组合实现净值平滑向上的核心奥秘。

📝 动手练一练

下面我们用 Python 编写一段 真实波幅(ATR)动态计算与自适应止损带构建引擎,演示如何根据标的实时波动率动态调整止损幅度:

import pandas as pd
import numpy as np

def compute_atr_and_dynamic_stop(df, window=14, multiplier=3.0):
    """
    真实波幅 (ATR, Wilder 平滑) 与 3×ATR 自适应跟踪止损带引擎
    """
    df = df.copy()
    
    # 1. 计算单日真实波幅 True Range (TR)
    hl = df['high'] - df['low']
    hc = np.abs(df['high'] - df['close'].shift(1))
    lc = np.abs(df['low'] - df['close'].shift(1))
    df['TR'] = np.maximum(hl, np.maximum(hc, lc)).fillna(hl)
    
    # 2. 计算 N 日 Wilder 平滑 ATR (alpha=1/N; 注意 span=N 对应 alpha=2/(N+1), 并非 Wilder 口径)
    df['ATR'] = df['TR'].ewm(alpha=1/window, adjust=False).mean()
    
    # 3. 动态计算 3 倍 ATR 止损距离与多头跟踪止损线
    #    棘轮机制: 止损线 = max(此前全部历史止损线, 今日 close - 3×ATR), 只上移不下移, 逐级锁定浮盈
    df['Stop_Distance'] = df['ATR'] * multiplier
    raw_stop = df['close'] - df['Stop_Distance']
    df['Dynamic_Stop_Line'] = np.maximum.accumulate(raw_stop.to_numpy())
    
    return df

def test_atr_run():
    np.random.seed(42)
    dates = pd.date_range("2023-01-01", periods=10, freq="B")
    
    # 模拟标的走势: 前 5 日冲高, 后 5 日回落 —— 检验棘轮止损线在下跌段是否守住高位
    highs = [10.5, 10.8, 11.2, 11.8, 12.0, 11.6, 11.4, 11.0, 10.8, 10.5]
    lows  = [9.8,  10.0, 10.4, 10.9, 11.2, 11.0, 10.7, 10.2, 10.1, 9.9]
    closes= [10.2, 10.6, 11.0, 11.5, 11.8, 11.2, 10.9, 10.4, 10.3, 10.1]
    
    raw_df = pd.DataFrame({'high': highs, 'low': lows, 'close': closes}, index=dates)
    res = compute_atr_and_dynamic_stop(raw_df, window=5, multiplier=3.0)
    
    print("================ ATR (Wilder) 动态跟踪止损带测算 ================")
    print(res[['high', 'low', 'close', 'TR', 'ATR', 'Dynamic_Stop_Line']])
    print("--------------------------------------------------------")
    print("量化精要: 价格自 11.8 回落至 10.1, 但棘轮止损线锁定在峰值 9.47488 不再下移, 浮盈保护生效!")
    print("========================================================")

if __name__ == "__main__":
    test_atr_run()

运行结果输出:

================ ATR (Wilder) 动态跟踪止损带测算 ================
            high   low  close   TR       ATR  Dynamic_Stop_Line
2023-01-02  10.5   9.8   10.2  0.7  0.700000            8.10000
2023-01-03  10.8  10.0   10.6  0.8  0.720000            8.44000
2023-01-04  11.2  10.4   11.0  0.8  0.736000            8.79200
2023-01-05  11.8  10.9  11.5  0.9  0.768800            9.19360
2023-01-06  12.0  11.2  11.8  0.8  0.775040            9.47488
2023-01-09  11.6  11.0  11.2  0.8  0.780032            9.47488
2023-01-10  11.4  10.7  10.9  0.7  0.764026            9.47488
2023-01-11  11.0  10.2  10.4  0.8  0.771220            9.47488
2023-01-12  10.8  10.1  10.3  0.7  0.756976            9.47488
2023-01-13  10.5   9.9  10.1  0.6  0.725581            9.47488
--------------------------------------------------------
量化精要: 价格自 11.8 回落至 10.1, 但棘轮止损线锁定在峰值 9.47488 不再下移, 浮盈保护生效!
========================================================

本章小结

  1. 坚持逻辑驱动优化:拒绝无脑数据挖掘,从选股、择时、风控与多策略协同四大维度推进策略迭代。
  2. 掌握 ATR(Wilder)动态跟踪止损:以 α=1/N\alpha=1/N 的 Wilder 平滑计算真实波幅,消除固定比例止损的僵化弊端;棘轮机制令止损线只上移、不下移,实现顺应市场波动、逐级锁定浮盈的智能保护。
  3. 利用多策略负相关性:通过不同逻辑策略的低相关性组合,打造平滑稳健向上的资产净值曲线。

📋 行动清单 (Action Checklist)

  • 运行本讲 ATR 动态止损代码,观察止损带随价格波动的动态收放过程;
  • 思考自己当前策略是否存在单因子共线性过高问题;
  • 预习下一讲,学习量化研发的头号杀手——策略过拟合(Overfitting)的深度诊断与防范。

— 小象教研组

配套学习资源与课件
  • 第5章课件:怎么评价和诊断交易策略(PDF · 1.5MB)
    下载
  • 开发环境准备:软件安装指导(PDF · 0.9MB · 建议第3章动手实践前先通读)
    下载
  • 量化入门推荐书单(PDF · 318KB)
    下载
🎁 免费学习资源

领取《小象 11GB VIP 课件资料包与大厂真题手册》

包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。

  • 完整 Python / 数据分析 Jupyter 实战源码
  • 大厂真实业务数据集与练习题
  • 微信扫码添加课程顾问,免费获取网盘下载链接
微信二维码:扫码添加课程顾问微信扫码添加顾问