📑 查看全课大纲(第 16 / 38 节)
- 1.课程介绍与学习目标
- 2.量化交易的发展
- 3.主观投资与量化投资的关系
- 4.认识一个量化策略(1)
- 5.认识一个量化策略(2)
- 6.理工生做量化的优势
- 7.量化交易系统的基本架构
- 8.必要的交易基础知识及参考资料
- 9.上节课思考题及本节课内容介绍
- 10.技术指标简介
- 11.基于MACD的交易信号开发(1)
- 12.基于MACD的交易信号开发(2)
- 13.基于RSI的交易信号开发
- 14.基于BOLL的交易信号开发
- 15.基于分形的交易信号开发
- 16.总结及下节课预告
- 17.开发环境安装
- 18.获取指数和个股历史行情数据
- 19.修复行情数据中的问题
- 20.抓取财报数据、数据定时更新
- 21.实现低PE股票池(1)
- 22.实现低PE股票池(2)
- 23.实现低PE策略的回测(1)
- 24.实现低PE策略的回测(2)
- 25.风险控制综述
- 26.风险控制中的止盈止损
- 27.仓位管理的工程实现
- 28.完整策略介绍-基础策略
- 29.策略的分步优化
- 30.策略评价指标(1)
- 31.策略评价指标(2)
- 32.如何评价策略
- 33.如何优化策略
- 34.tick数据的意义
- 35.tick数据的介绍及使用
- 36.Hans123策略
- 37.经典买入三法策略
- 38.量化系统的完整研发和系统搭建
总结及下节课预告
约 3 分钟
📺 正在播放小象官方高清录播(支持倍速与清晰度调节)
信号系统全貌总结与回测实战预告
小象实战讲义 · 初阶量化交易:策略编写及系统搭建 本讲义仅用于编程与量化方法教学,不构成任何投资建议。
在完成了对四大经典量化信号系统的逐一拆解后,我们已经构建起完整的择时信号武器库。量化交易的本质是通过严格的数理逻辑与程序化代码,将离散的市场行情转化为确定性的交易决策指令。然而,单一信号系统无法独立支撑起持续盈利的投资组合,必须将其接入完整的数据清洗、因子选股、撮合回测与资金管理引擎中进行实证检验。
本讲作为第二章的收官与转折篇,系统横向复盘 MACD、RSI、BOLL 与分形(Fractals) 的数理内涵与适用边界;深入剖析实盘中信号闪烁(Signal Flickering)与”狼来了”效应的工程治理方案;并全面预告第三章即将展开的重头实战:从零搭建基于 MongoDB 与 Python 的轻量级量化回测验证系统。
💡 核心导读
- 第二章四大经典信号系统全景横向大对比:
信号系统 指标类型 核心数学机制 典型买入触发条件 核心适用市场环境 MACD 趋势型 快慢 EMA 离差与二次平滑 上穿 (黄金交叉) 单边趋势启动与主升浪 RSI 摆动型 上涨幅度占总波动的百分比 由下向上突破 20 超卖线 震荡行情极值情绪反弹 BOLL 统计型 移动均线 2 倍样本标准差 突破上轨(动量)/ 下轨(回归) 波动率挤压突破或均值回归 分形 (Fractals) 形态型 5 根 K 线局部极值几何拓扑 5-bar 底分型形态确认落地 支撑压力锚定与形态拐点 - 信号闪烁(Signal Flickering)与”狼来了”效应的工程防御:
- 成因:盘中未收盘时价格剧烈跳变,导致临界状态下的指标反复在触发与消失之间震荡,诱发高频无效报单与摩擦损耗;
- 三大防御准则:
- 基准线固定法:以 日已收盘固定的指标线作为当日判断阈值;
- 死区容差过滤(Deadband):对微小穿越设置最小变动幅度门槛;
- 收盘前定格确认(Bar Close Execution):仅在日线收盘前 3 分钟或次日开盘集合竞价执行信号。
- 第三章实战重头戏预告:
- 环境与数据库:配置 Python 3.12 科学计算环境与 MongoDB 非关系型数据库;
- 数据工程:抓取股票日线行情与财务基本面数据(PE 市盈率);
- 策略闭环:实现”低 PE 价值选股 + 经典技术信号择时”的完整全自动化回测框架,绘制真实资金净值收益曲线。
┌─────────────────────────────────────────────────────────────┐
│ 量化交易系统全模块进阶全景图 │
└──────────────────────────────┬──────────────────────────────┘
│
┌─────────────────────────────┼─────────────────────────────┐
▼ ▼ ▼
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ 第二章 (已完成) │ │ 第三章 (即将展开)│ │ 第四/五章 (进阶)│
├──────────────────┤ ├──────────────────┤ ├──────────────────┤
│ • 4大信号系统开发│ │ • MongoDB 环境搭建│ │ • 仓位与风控工程 │
│ • MACD/RSI/BOLL │ │ • 历史行情/财务爬取│ │ • 收益曲线深度诊断│
│ • 5-Bar 分形拓扑 │ │ • 低 PE 回测系统搭建│ │ • 多因子实盘优化 │
└──────────────────┘ └──────────────────┘ └──────────────────┘一、四大信号系统的工程集成与互补性
在量化投资实践中,没有孤立完美的”万能指标”。四大信号系统在底层特征上具备天然的互补优势:
┌────────────────────────────────────────────────────────────────┐
│ 多维度低相关信号互补矩阵 │
├────────────────────────────────────────────────────────────────┤
│ • 趋势验证: MACD 确认大周期方向 (过滤逆势逆向交易) │
│ • 动量突破: BOLL 捕捉波动率极度压缩后的爆发性破位点 │
│ • 情绪反弹: RSI 在箱体震荡中捕捉恐慌超卖点位 │
│ • 空间定位: 分形 (Fractal) 动态划定关键支撑位与硬性止损锚点 │
└────────────────────────────────────────────────────────────────┘二、信号闪烁与假突破治理
在实盘接入时,开发者最常遭遇的困境是:盘中 10:30 出现金叉买入,14:00 价格微跌金叉消失(被动套牢)。
- 量化纪律 1:明确时间粒度。日线级别策略应严格以日线收盘价(Bar Close)为结算基准,切忌使用日内即时 Tick 混杂判定;
- 量化纪律 2:防收割微调。避免全量资金集中在全市场皆知的经典参数上,结合标的特征进行参数个性化配置。
📝 动手练一练
下面我们用 Python 编写一段 第二章四大信号系统统一集成流水线(Unified Signal Pipeline),对单只标的并行输出多维度标准化特征信号,为第三章策略回测引擎的调用做好模块化封装:
import pandas as pd
import numpy as np
def build_unified_signal_pipeline(df):
"""
第二章四大信号系统统一计算流水线:
并行计算 MACD、RSI、BOLL、Fractal 四大信号,输出标准化信号特征矩阵
"""
df = df.copy()
# 1. MACD 信号 (12, 26, 9) - 趋势黄金交叉
ema12 = df['Close'].ewm(span=12, adjust=False).mean()
ema26 = df['Close'].ewm(span=26, adjust=False).mean()
diff = ema12 - ema26
dea = diff.ewm(span=9, adjust=False).mean()
df['MACD_Gold'] = (diff > dea) & (diff.shift(1) <= dea.shift(1))
# 2. RSI 信号 (N=6) - 情绪超卖上穿 20
change = df['Close'].diff()
up = change.apply(lambda x: max(x, 0.0))
abs_c = change.abs()
avg_up = up.rolling(6).mean()
avg_abs = abs_c.rolling(6).mean()
rsi = (avg_up / avg_abs) * 100.0
# 除零保护: 价格连续 6 日零波动时 avg_abs=0 (0/0 产生 NaN), RSI 定义退化, 取中性值 50
rsi = rsi.mask((avg_abs == 0) & avg_up.notna(), 50.0)
df['RSI_Buy'] = (rsi > 20.0) & (rsi.shift(1) <= 20.0)
# 3. BOLL 信号 (N=15, 2.0) - 动量向上突破上轨
mb = df['Close'].rolling(15).mean()
std = df['Close'].rolling(15).std()
up_band = mb + 2.0 * std
df['BOLL_Break_UP'] = (df['Close'] > up_band.shift(1)) & (df['Close'].shift(1) <= up_band.shift(1))
# 4. 5-bar 底分型 (Bottom Fractal) - 几何形态企稳
l_mid = df['Low'].shift(2)
df['Fractal_Bottom'] = (l_mid < df['Low']) & (l_mid < df['Low'].shift(1)) & \
(l_mid < df['Low'].shift(3)) & (l_mid < df['Low'].shift(4))
# 5. 信号列 NaN 防护: 指标暖机期内 pandas 对 NaN 的比较会静默判 False (吞信号),
# 显式 fillna(False) 保证下游回测引擎拿到无缺失的布尔信号矩阵
signal_cols = ['MACD_Gold', 'RSI_Buy', 'BOLL_Break_UP', 'Fractal_Bottom']
df[signal_cols] = df[signal_cols].fillna(False)
return df
def test_pipeline_run():
np.random.seed(42)
n = 20
dates = pd.date_range("2023-01-01", periods=n, freq="D")
prices = 10.0 + np.sin(np.linspace(0, np.pi*2, n)) * 2.0 + np.random.normal(0, 0.1, n)
highs = prices + 0.5
lows = prices - 0.5
df = pd.DataFrame({'Close': prices, 'High': highs, 'Low': lows}, index=dates)
res = build_unified_signal_pipeline(df)
print("================ 第二章四大信号系统统一集成矩阵 ================")
signal_cols = ['Close', 'MACD_Gold', 'RSI_Buy', 'BOLL_Break_UP', 'Fractal_Bottom']
print(res[signal_cols].tail(8))
print("---------------------------------------------------------------")
print(f"MACD 金叉天数: {res['MACD_Gold'].sum()}")
print(f"RSI 超卖买入天数: {res['RSI_Buy'].sum()}")
print(f"BOLL 突破上轨天数: {res['BOLL_Break_UP'].sum()}")
print(f"底分型确认天数: {res['Fractal_Bottom'].sum()}")
print("===============================================================")
if __name__ == "__main__":
test_pipeline_run()运行结果输出:
================ 第二章四大信号系统统一集成矩阵 ================
Close MACD_Gold RSI_Buy BOLL_Break_UP Fractal_Bottom
2023-01-13 8.552748 False False False False
2023-01-14 7.977125 False False False False
2023-01-15 7.834339 False False False False
2023-01-16 8.004971 False False False False
2023-01-17 8.224384 False False False True
2023-01-18 8.802999 False True False False
2023-01-19 9.259799 False False False False
2023-01-20 9.858770 False False False False
---------------------------------------------------------------
MACD 金叉天数: 1
RSI 超卖买入天数: 1
BOLL 突破上轨天数: 0
底分型确认天数: 1
===============================================================本章小结
- 融会贯通四大信号:掌握均线平滑、摆动极值、统计置信区间与几何分形四种完全正交的信号构建视角。
- 严密工程防范体系:深刻理解状态误判、成交量过载、未来函数及信号闪烁等实战陷阱的根因与解法。
- 迈向全系统集成:第二章提供了纯粹的信号生成算法,第三章将把这些信号直接注入回测引擎,完成多标的回测演练。
📋 行动清单 (Action Checklist)
- 运行本讲四大信号集成代码,观察不同市场阶段各信号的触发时序配合;
- 确保本地已安装 Python 3.12 常用数据科学包(Pandas, NumPy)及 MongoDB 服务;
- 预习第三章《上手搭建最简单的交易系统》,迎接量化回测系统的工程实战!
— 小象教研组
配套学习资源与课件
🎁 免费学习资源
领取《小象 11GB VIP 课件资料包与大厂真题手册》
包含全套实战 Jupyter 源码、清洗后数据集、大厂高频面试真题与专属学员答疑交流群。
- ✔完整 Python / 数据分析 Jupyter 实战源码
- ✔大厂真实业务数据集与练习题
- ✔微信扫码添加课程顾问,免费获取网盘下载链接
微信扫码添加顾问