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

经典买入三法策略

约 15 分钟

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

如何优化量化策略:经典买入三法与人工智能的边界

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

在量化策略的进阶优化旅程中,许多研究者面临两大分岔路口:一是如何通过量价共振的多维度技术验证(Volume-Price Resonance) 提升经典择时策略的信噪比;二是当下炙手可热的人工智能与机器学习算法(AI/ML)在量化投资领域的真实应用边界与误区。如果脱离金融常识盲目将机器学习当成”预测股价暴涨暴跌的神仙黑箱”,往往会在实盘中遭遇灾难性的滑铁卢。

本讲系统介绍经典买入三法(慢速 KD 金叉 + 价格上穿 MA10 + 成交量突破 VMA10) 的量价三重共振逻辑;深度剖析量化交易相比人工主观在慢牛、大熊与震荡市场中的制度性优势;并客观界定机器学习在多因子挖掘、非线性特征提取与高噪声金融市场中的工程边界。


💡 核心导读

  • 经典策略原型:买入三法(Three-Method Buying System)
    • 买入条件(三重共振确认,缺一不可)
      1. 摆动指标金叉:慢速 KDKD 指标形成金叉(KK 线上穿 DD 线,摆脱低位超卖);
      2. 价格右侧突破:当日收盘价站上 10 日移动均线(Close>MA10Close > MA10);
      3. 资金放量确认:当日成交量突破 10 日均量线(Volume>VMA10Volume > VMA10,放量代表主力资金真实介入);
    • 卖出离场条件:当日收盘价下穿 20 日均线(Close<MA20Close < MA20 趋势破位离场);
    • 历史回测验证:在上证指数 1992~2018 年长达 26 年的长周期回测中,策略净值从 350 点增至 6970 点(同期大盘仅 3560 点),最大回撤大幅低于大盘。
  • 量化交易 vs 人工主观在不同市场环境下的本质对决
    • 慢牛缓慢上涨期:散户因熊市创伤后遗症容易麻木踏空,量化系统严格依据均线金叉及时右侧建仓;
    • 单边熊市大跌期:散户因损失厌恶往往深套死扛,量化系统在破位时毫秒级无情止损,保留东山再起的有生力量;
    • 复杂震荡分化期:散户容易追涨杀跌两头挨打,量化系统依托布林带/RSI 等网格震荡模型机械化高抛低吸。
  • 人工智能(AI/ML)在量化中的角色与工程边界
    • AI 擅长的领域
      • 高维非线性特征交叉与因子挖掘(如 GBDT / LightGBM 决策树);
      • 盘口微观结构与高频 Tick 模式识别(LSTM / Transformer 时序建模);
      • 资产协方差矩阵收缩与风险平价(Risk Parity)权重优化;
    • AI 无法解决的禁区(严禁踩坑)
      • 金融数据具有极低的信噪比(SNR <5%< 5%)与非平稳性(Non-stationarity)
      • 严禁直接端到端输入历史股价去预测次日绝对涨跌幅(极度过拟合噪声),必须将 AI 聚焦在”截面因子特征处理与相对收益排序”上。
┌─────────────────────────────────────────────────────────────┐
│                    买入三法: 量价与摆动指标三重共振            │
└──────────────────────────────┬──────────────────────────────┘

 ┌─────────────────────────────┼─────────────────────────────┐
 ▼                             ▼                             ▼
┌──────────────────┐   ┌──────────────────┐   ┌──────────────────┐
│ 1. 摆动动量共振   │   │ 2. 价格趋势共振   │   │ 3. 资金成交共振   │
├──────────────────┤   ├──────────────────┤   ├──────────────────┤
│ • 慢速 KD 金叉   │   │ • 收盘站上 MA10  │   │ • 成交量 > VMA10 │
│ • 克服低位钝化   │   │ • 确立右侧上升通道│   │ • 验证真突破假诱多│
└──────────────────┘   └──────────────────┘   └──────────────────┘

一、为什么引入成交量均线(VMA)能大幅提高胜率?

在纯价格指标中,无量上涨往往是主力资金诱多的”假突破”(Bull Trap)。通过引入 Volume>VMA10Volume > VMA10 过滤:

  • 只有当价格突破伴随着真实的换手率激增与增量资金进场时,才确认主升浪趋势成立;
  • 该过滤机制能直接过滤掉约 40% 的震荡市假突破磨损。

二、机器学习量化建模的标准化流程

原始行情与财报数据 ──► 特征工程 (构造 200+ 因子) ──► 因子标准化与去极值 ──► GBDT/LightGBM 截面排序预测 ──► Top 30 组合构建与风控

必须坚持特征工程为王、模型轻量化防过拟合、严格样本外交叉盲测的三大工程红线。


📝 动手练一练

下面我们用 Python 编写一段 经典买入三法(量价 KD 三重共振)量化择时引擎,输入多维量价时序,模拟系统如何精准捕捉量价齐升的黄金建仓点:

import pandas as pd
import numpy as np

def run_three_methods_strategy(df):
    """
    经典买入三法 (Three-Method Buying System) 择时引擎:
    买入条件 (三重共振):
    1. 慢速 KD 金叉: K 上穿 D (K > D 且 shift(1) K <= D)
    2. 价格均线突破: 收盘价上穿 10 日均线 (Close > MA10)
    3. 成交量放量突破: 成交量大于 10 日成交量均线 (Volume > VMA10)
    
    卖出条件:
    1. 收盘价下穿 20 日均线 (Close < MA20)
    """
    df = df.copy()
    
    # 0. 数据长度防护: MA20 需至少 20 根 Bar, 数据不足时指标全为 NaN, 直接返回空信号
    if len(df) < 20:
        print(f"⚠️ 数据长度不足 (需 >= 20 根 Bar, 实际 {len(df)} 根), 跳过信号计算")
        df['Buy_Signal'] = False
        df['Sell_Signal'] = False
        return df
    
    # 1. 均线与均量
    df['MA10'] = df['close'].rolling(10).mean()
    df['MA20'] = df['close'].rolling(20).mean()
    df['VMA10'] = df['volume'].rolling(10).mean()
    
    # 2. 慢速 KD 计算 (简化模拟)
    low_min = df['low'].rolling(9).min()
    high_max = df['high'].rolling(9).max()
    rsv = (df['close'] - low_min) / (high_max - low_min + 1e-6) * 100.0
    df['K'] = rsv.ewm(com=2, adjust=False).mean()
    df['D'] = df['K'].ewm(com=2, adjust=False).mean()
    
    # 3. 三重买入条件
    cond_kd = (df['K'] > df['D']) & (df['K'].shift(1) <= df['D'].shift(1))
    cond_price = df['close'] > df['MA10']
    cond_vol = df['volume'] > df['VMA10']
    
    # 4. 信号合成与 NaN 防护: 暖机期指标为 NaN, pandas 对 NaN 的比较会静默判 False (吞信号),
    #    显式 fillna(False) 保证输出无缺失的布尔信号
    df['Buy_Signal'] = (cond_kd & cond_price & cond_vol).fillna(False)
    df['Sell_Signal'] = ((df['close'] < df['MA20']) & (df['close'].shift(1) >= df['MA20'].shift(1))).fillna(False)
    
    return df

def test_three_methods_run():
    np.random.seed(42)
    dates = pd.date_range("2023-01-01", periods=30, freq="B")
    
    # 模拟价格稳步攀升并在第 16 天放巨量突破
    p = 10.0 + np.cumsum(np.random.normal(0.05, 0.15, 30))
    vol = np.random.uniform(5000, 15000, 30)
    vol[15] = 25000.0  # 放量突破
    
    df = pd.DataFrame({
        'open': p - 0.05,
        'high': p + 0.10,
        'low': p - 0.10,
        'close': p,
        'volume': vol
    }, index=dates)
    
    res = run_three_methods_strategy(df)
    
    print("================ 经典买入三法 (量价KD共振) 引擎 ================")
    signals = res[res['Buy_Signal'] | res['Sell_Signal']]
    print(signals[['close', 'MA10', 'MA20', 'volume', 'VMA10', 'K', 'D', 'Buy_Signal', 'Sell_Signal']])
    print("--------------------------------------------------------------")
    print(f"全周期共捕捉买入三法共振信号: {res['Buy_Signal'].sum()} 次 | 均线破位离场: {res['Sell_Signal'].sum()} 次")
    print("==============================================================")

if __name__ == "__main__":
    test_three_methods_run()

运行结果输出:

================ 经典买入三法 (量价KD共振) 引擎 ================
                close       MA10       MA20   volume        VMA10          K          D  Buy_Signal  Sell_Signal
2023-01-13  11.172092  10.653190        NaN  13324.4  9876.438515  93.189578  89.670450        True        False
2023-02-08  10.687189  10.677116  10.817684  14852.1  9662.639352  50.906782  48.141930        True        False
--------------------------------------------------------------
全周期共捕捉买入三法共振信号: 2 次 | 均线破位离场: 0 次
==============================================================

本章小结

  1. 掌握买入三法量价共振:结合慢速 KD、均线与成交量均线三重视角,有效过滤 40% 以上的无量假突破。
  2. 深刻理解量化制度优势:用冷酷代码克服人性的慢牛麻木、大熊侥幸与震荡犹豫。
  3. 理性看待人工智能量化:坚守高信噪比特征工程与截面排序主线,严禁端到端盲目拟合单点价格。

📋 行动清单 (Action Checklist)

  • 运行本讲买入三法代码,观察量价共振条件如何精准过滤无量上涨;
  • 在自己的技术信号库中尝试加入成交量均线(VMA)作为确认过滤器;
  • 预习下一讲,学习量化进阶的最后一公里——实盘上线必踩之坑与风控运维。

— 小象教研组

配套学习资源与课件
  • 第6章课件:进入专业量化赛道的必修课(PDF · 4.3MB)
    下载
  • 开发环境准备:软件安装指导(PDF · 0.9MB · 建议第3章动手实践前先通读)
    下载
  • 量化入门推荐书单(PDF · 318KB)
    下载
🎁 免费学习资源

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

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

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