量化交易策略大全
Quantitative Trading Strategy Compendium — 技术分析、统计套利、因子投资、机器学习、期权波动率与组合风控的可编码策略规格库
0. 总览
0.1 什么是量化交易策略
量化交易策略(Quantitative Trading Strategy)是把「市场规律」编码为可重复、可验证、可执行的决策规则的程序。它不是一句买卖建议,而是一个完整的决策函数:给定当前市场状态(行情、持仓、资金),输出「买/卖/不动作、买多少、风险上限在哪」。行业共识是:一个策略 = 信号产生 + 仓位决定 + 风险约束 + 执行方式 四部分组合,缺一不可——只有信号没有仓位管理,赚了指数也可能亏穿本金;没有风控,一次黑天鹅清零。
0.2 策略与系统的分工
| 文档 | 视角 | 回答的问题 |
|---|---|---|
| 量化交易系统 | 工程 | 策略产出的信号如何变成真实订单:数据、回测、风控、执行、对账、复盘八段链路 |
| 量化交易策略大全(本文) | 体系 + 规格库 | 策略本身做什么、由什么组成、怎么分类、怎么验证、怎么落地,以及每类策略的公式、参数、伪代码,可直接编码 |
0.3 核心认知:策略不是"预测",是"决策 + 风控 + 成本"
新手常把策略等同于「预测涨跌」,这是最大误区。成熟的策略观有三层:
- 预测可以错,决策不能错:胜率 40% 的策略通过盈亏比(赔率)管理照样赚钱——关键在「错时亏多少、对时赚多少」由仓位与止损决定,而非预测本身。
- 信号之上必有仓位层与风控层:同样的动量信号,满仓进出与 Kelly/ATR 仓位,长期结果天差地别(见 §19.2)。
- 成本决定策略存亡:一个毛利为正的策略,扣除滑点、手续费、冲击成本后可能转负(见 §4.3)。策略验证的第一课就是「成本模型」。
0.4 量化策略理论与技术分析的关系
量化交易策略理论与技术分析理论是「上层方法论」与「具体工具」的关系,而非并列关系。理解这一层级,才能正确使用本文档:技术分析是量化策略体系中的信号源之一,量化策略理论则是把「任何可盈利规律」变成可重复、可验证、可执行程序的完整作战体系。
层级定位
| 维度 | 技术分析理论 | 量化策略理论 |
|---|---|---|
| 层级 | 具体工具(怎么读盘) | 上层方法论(怎么系统化赚钱) |
| 本质 | 群体行为 → 价格信号 | 把可盈利规律变为可验证、可执行的程序 |
| 关注点 | 价格/成交量里找信号 | 信号如何产生、验证、组合、控风险、落地 |
| 回答的问题 | 价格「何时」向「何处」运动 | 信号可不可信、投多少、亏了怎么撤 |
三层关系
- 技术分析是量化策略理论的信号源之一(非全部):技术分析提供入场/出场信号(2B、均线交叉、BOLL 触轨…)。量化理论回答信号之外更上层的问题——验证(回测)、组合与资金分配(Markowitz/风险平价/Kelly)、成本(执行与微观结构)。且存在完全不需要 K 线的信号源:因子投资、统计套利、事件驱动。
- 量化是技术分析的科学化升级:同一 2B 信号,人工看图靠直觉,量化把它变成「突破-失败-反向」三条件程序 + 回测验证胜率 + ATR 定仓位。量化不改写技术分析内核,而是给它装上「验证、纪律、风控」三件套。
- 类比:技术分析 ≈ 侦察兵(发现目标);量化策略理论 ≈ 作战指挥系统(情报可信度、兵力配置、撤退预案)。
先澄清一个常见混淆:自动化交易 ≠ 量化交易
「量化交易系统不就是程序化执行交易策略吗?」——对了一半。程序化执行交易策略是量化系统的执行内核,但系统不等于只有执行。二者是递进关系而非并列关系:自动化把「策略执行」机械化,量化则连「策略的产生与验证」也交给数据与统计。
| 维度 | 自动化 / 程序化交易 | 量化交易 |
|---|---|---|
| 策略来源 | 人的主观规则(含技术分析),人工定好后交给程序 | 策略本身由数据/统计/模型产生并验证 |
| 例子 | 把 2B 编码成 if-else 让机器自动跑 | 在数千只股票上回归发现动量因子 → 自动选股执行 |
| 机器角色 | 忠实的执行者 | 从「找规律」到「执行」全程参与 |
| 在谱系中的位置 | 量化系统的初级形态 | 策略由数据挖掘而来并经受统计验证 |
仅把技术分析硬编码成机器人,严格说是程序化执行;行业里「量化」更强调策略不是人拍板、而是从数据里挖出来并经统计验证的。不过,哪怕只是把 2B 编码执行,也立刻会撞上这些「系统层」问题——它们不是「执行」本身,却是让程序可靠盈利的前提:
- 信号从哪来:2B 的「前高」「失败」怎么定义才不模糊?
- 怎么知道有效:回测、Walk-forward、防过拟合——否则程序只是稳定地亏。
- 下多大:Kelly/ATR 仓位——同样信号,仓位决定生死。
- 成交被吃掉多少:滑点/冲击成本模型。
- 多策略怎么分配:组合层。
这正是 Part 3 存在的原因:它描述的不是「怎么把信号搬进程序」,而是「让程序化执行真正长期有效」还缺的那些层。一句话总结:技术分析给你策略(if-then 规则),Part 3 给你「让这些规则可靠赚钱的系统」——量化系统 = 执行 + 验证 + 风控 + 执行质量,缺了后三样,「程序化执行」只剩自动化的壳。
0.5 交易演进史
交易的理论、技术、工具三者是相互咬合演进的:工具能力决定技术可行范围,技术实践催生理论总结,理论又反哺新工具设计。理解这条脉络,才能看清「技术分析 → 量化策略理论」不是人为划分,而是同一演进路径的两端。
演进时间线(理论 × 技术 × 工具三线并进)
| 时期 | 理论突破 | 技术/技法 | 工具 |
|---|---|---|---|
| 前现代(~1800) | 无系统理论,凭经验与直觉 | 手工盯盘、口头报价 | 米市柜台、咖啡馆、交易纸 |
| 古典奠基(1700s-1900s) | 本间宗久米市战法雏形;道氏理论(Dow)定义趋势 | 蜡烛图、三空战法 | 行情纸带、电报、报纸行情 |
| 图表学派(1930s-1950s) | 艾略特波浪(1938)、江恩理论、形态学(Edwards & Magee 1948) | 头肩顶底、趋势线、通道 | 图表纸、对数坐标、点数图 |
| 统计与指标(1950s-1980s) | Markowitz 现代组合理论(1952);Wilder 发明 RSI/ATR/ADX/SAR(1978);Appel 发明 MACD;Bollinger 布林带 | 技术指标系统化 | 电子行情终端(路透/彭博 1973)、PC 分析软件 |
| 量化革命(1970s-1990s) | Black-Scholes(1973);Fama-French 三因子(1993);统计套利成型 | 程序化交易、指数套利、配对交易 | 彭博终端、实时数据、纳斯达克电子盘(1971) |
| 互联网散户化(1990s-2000s) | 行为金融学兴起(心理进入定价) | 在线经纪、软件化看图 | E*Trade、Metastock/TradeStation/Amibroker |
| 高频与机器学习(2000s-2010s) | 风险平价(2005)、动量崩溃研究、HFT 理论 | 高频交易、因子投资成熟、机器学习信号 | FPGA、微秒撮合、量化平台 |
| AI 与数据时代(2010s-今) | 深度学习/强化学习交易、另类数据、LLM 投研 | 数据挖掘信号、算法执行(TWAP/VWAP) | 云量化平台、DeFi/加密货币市场 |
三条演变主线
- 工具驱动技术:电报→实时行情→PC→高速撮合→AI,每次算力跃迁都让更精细的技术/策略成为可能——低频手工只能看图,高频时代才有微秒级策略。
- 实践催生理论:市场现象(1987 崩盘、2008 危机)反向修正模型——量化从「追求精确」转向「承认不确定、控制风险」,直接催生了 Part 3 中的 VaR/回撤控制/执行成本理论。
- 理论反哺工具:组合理论→优化软件;期权定价→做市算法;机器学习→特征工程平台。每代工具都内置了上一代理论。
0.6 认识论边界:什么能被"证明"
回到最根本的问题:是否存在严格数学证明能盈利的交易策略?答案分三层,每一层都在给"盈利保证"划定边界。
第一层:严格可证明盈利的只有套利,且不构成可持续策略
在「市场有效」假设下,任何"可证明盈利"的策略都不存在——若一个策略能被证明必赚,所有人都会用,边际利润被抹平,edge 自我消灭。因此可证明盈利 = 市场存在失效点,而你恰好能捕捉它。少数有数学保证的形式:
- 跨市场/跨品种套利:同一资产不同市场价格差,价差存在且能同步成交时无风险盈利——但这是"一次性的",套利者越多价差消失越快。
- 期权平价套利(put-call parity violation):
C − P = S − K·e^(−rT)被打破时,组合对冲可锁定无风险利润,同属被瞬时消灭型。 - 事件套利:合并/回购等有确定条款的价格错位,非严格无风险。
- 做市商:数学上保证的是"每笔买卖价差收益",不保证不亏库存(被单边行情打爆)。
结论:严格数学可证明盈利的只有瞬时套利,本质是赚市场失效的钱;加上交易成本(手续费/滑点)后,"理论可证明"进一步被抹掉。可持续的盈利策略都不是数学证明出来的。
第二层:统计优势 ≠ 数学证明(演绎 vs 归纳)
区分两个词是理解的关键:
- 数学证明是演绎(deductive):从公理必然推出结论,永远为真(如 Kelly 定理、套利平价)。
- 统计优势是归纳(inductive):从历史样本推断未来规律,归纳永远无法在逻辑上保证未来——这是休谟问题的核心。
具体地说:回测通过显著性检验,只证明"过去数据里出现过这个规律",不证明"未来会继续"。市场非平稳(规律会衰减、对手方会进化去消灭你);统计检验的前提假设(平稳性、独立性)在对抗性市场里恰恰不成立。样本内永远过拟合,样本外只能估计,不能证明。所以 edge 这一环给的是概率,不是必然。
第三层:Kelly 是有条件的严格证明
Kelly criterion 是严格数学定理:给定胜率 p、赔率 b,使长期对数增长率最大化的下注比例 f* 有封闭解,证明是演绎的。但它是条件命题:
若 edge 已知且估计正确,则按 f* 下注是最优的。
它没有证明 edge 存在,只是把 edge 放大到最优。负期望策略按 Kelly 下注照样破产——Kelly 只管最优放杠杆,不管收益为正。完整逻辑链:
| 环节 | 是否可证明 | 性质 |
|---|---|---|
| edge 是否存在/持续 | 无法证明 | 只能统计估计(归纳,有误差) |
| edge 已给出 → Kelly 最优仓位 | 可严格证明 | 演绎,但条件性 |
| edge 估计错误 | 数学证明全部失效 | Garbage in, garbage out |
整条链里唯一可证明的环节是最末端的条件性最优,而最关键的前端——edge 本身——恰好不可证明。这就是为什么"可证明盈利的策略"在严格意义上不存在。
技术分析 vs 量化:经验之谈 vs 可证伪的学科
「技术分析、量化交易都只是没被证明的经验之谈吗?」——两者不在同一类问题:
- 技术分析基本是经验之谈,且是"无法证伪"的经验之谈:图表形态是事后画出来的("头肩顶"失败时你改说成"更大级别的头肩顶"),永远有解释 → 认知上是幸存者偏差 + 确认偏误的叙事框架;大样本严格检验绝大多数扣除成本后无显著边际。它是占星术式的,不是科学。
- 量化不是经验之谈,而是"证伪经验之谈的学科":区别不在结论,在方法论——把"经验之谈"转成可检验假设,用样本外数据证伪它,并诚实标出误差。它给出的结论同样只是统计推断(归纳,非数学证明),但它是一套承认不确定性的认知纪律:知道自己赌的是什么、赌注多大、何时认错离场。这正是它能长期生存的原因——不是 edge 永不失效,而是失效时被测量、被止损。
| 维度 | 技术分析 | 量化交易 |
|---|---|---|
| 假设来源 | 先有断言,事后找解释 | 先有假设,数据验证 |
| 可证伪性 | 不可证伪 | 明确预测 + 置信区间 |
| 误差 | 从不测量 | 显式测量(夏普、回撤、IC) |
| 失效处理 | 永远有效(叙事兜底) | 监控衰减,果断退役 |
被反复验证的真信号:可获得的最高证据等级
量化确实有被反复验证的规律:动量、规模、价值、低波动等风险溢价因子,在几十个国家、跨越几十年、样本外反复复现——这是金融学里被复制得最多的实证结果。它不是数学证明,但在对抗性环境下,这种跨市场跨时间的稳健性就是可获得的最高证据等级。
Part 1 策略体系
1. 行为视图:策略做什么
行为视图回答系统"做什么"。我们从宏观到微观递进:先看策略在整个生命周期有哪些行为(用例图),再看一条策略从想法到实盘的主流程(活动图),然后聚焦实盘运行时它与系统的交互(时序图),最后看策略状态如何迁移(状态机图)。
1.1 用例图:策略全生命周期行为
四个关键点:
- 研究阶段是策略的源头:提出假设(如"动量在 A 股 20 日窗口有效")→ 取数 → 定义信号 → 回测验证,这是一个研究员反复迭代的闭环。
- 风控是独立于研究的把关者:风控不参与策略发明,只审查"能不能上"(仓位上限、回撤约束、监管合规)与"要不要停"(异常下线)——权力分离防止研究员自说自话。
- 模拟交易(Paper Trading)是实盘的前置关卡:用实时行情、不真实成交,检验策略在"未来数据"上的表现,过滤"历史回测漂亮、当下失效"的策略。
- 监控与下线是长期行为:上线不是终点;策略会衰减(市场结构变化),必须持续监控并最终退役。
1.2 活动图:一条策略从想法到实盘的完整流程
主流程中的四个"关卡"(活动图中菱形判断):
| 关卡 | 判断内容 | 不通过则 |
|---|---|---|
| 回测稳健性 | 改参数/换样本后结果是否剧烈变化(过拟合信号) | 回炉修正假设或参数 |
| 样本外绩效 | 未参与调参的数据上是否仍达标 | 放弃或彻底重做 |
| 容量与成本 | 目标资金量下成本是否吃掉毛利、容量是否够 | 降规模或换执行方式 |
| 模拟期表现 | 实时行情模拟一段时间后是否与回测一致 | 暂停,定位偏差来源 |
1.3 时序图:实盘运行时策略与系统的交互
时序图上四件事值得记住:
- 策略是无状态的纯计算器:它只接收数据、产出信号,不直接接触券商接口——订单由下游 OMS 统一发出,保证"信号"与"执行"解耦,便于回测与实盘共用同一策略代码。
- 风控在每个决策点前插入:信号提交后、下单前都要过风控;实时敞口(总仓位、单票仓位、当日亏损)超限即拦截并告警。
- 组合层做"净变动"转换:策略给出目标权重,组合管理对比当前持仓算出「净买入/净卖出」,避免重复下单。
- 成交与 PnL 反馈闭环:成交回报更新持仓,持仓变化反向影响风控判断(如杠杆率),形成"信号→执行→反馈"的循环。
1.4 状态机图:策略生命周期状态迁移
状态机要点:
- 状态即"承诺":实盘(Live)状态意味着真金白银与自动下单,进入门槛最高(要过评审、过模拟);一旦异常可降级到暂停(Paused),暂停是"可逆"的,下线(Retired)是"不可逆"的。
- 大部分策略死在回测与评审之间:回测漂亮 → 评审发现容量不够/成本太高/监管禁止 → 否决下线。这是行业常态,不是失败。
- 监控触发状态回退:实盘绩效偏离、风控事件(连续止损、流动性异常)可强制暂停;复盘后决定恢复、重构或退役。
2. 结构视图:策略由什么组成
结构视图从宏观到微观:先看策略的内部模块(组件图),再看核心对象之间的抽象关系(类图),最后看策略在代码库中如何组织(包图)。
2.1 组件图:策略内部模块
五个模块的职责:
| 模块 | 职责 | 典型问题 |
|---|---|---|
| 信号发生器 Signal Generator | 由特征算出原始信号(方向 + 强度 + 时点) | 均线交叉、动量打分、因子 z-score、ML 模型输出 |
| 信号过滤器 Signal Filter | 去噪、合并冲突、防抖(如"信号持续 N 根 K 线才生效") | 过滤假突破、避免频繁翻转 |
| 仓位管理器 Position Sizing | 由信号强度与资金/风险预算算出目标仓位 | 固定比例、Kelly、ATR 仓位、风险平价 |
| 风控叠加层 Risk Overlay | 在目标仓位之上叠加硬约束 | 单票上限、总杠杆、止损线、当日亏损熔断 |
| 执行适配器 Execution Wrapper | 把最终净头寸包装成订单指令,适配回测/模拟/实盘不同后端 | 同一策略代码三端复用 |
2.2 类图:策略核心抽象
对象职责速览:
| 对象 | 关键字段/方法 | 设计意图 |
|---|---|---|
Strategy | on_tick / on_bar / generate_signal | 所有策略的统一接口——事件驱动,回测与实盘共用 |
Signal | direction / strength / timestamp | 信号是"意图",不是"订单",与执行解耦 |
PositionSizer | apply_kelly / apply_atr | 仓位逻辑可替换、可插拔 |
RiskManager | check(portfolio, signal) | 风控独立,返回 bool,拦截即止 |
Portfolio | positions / equity / net_exposure | 账户状态中枢,供给仓位与风控读取 |
Order | symbol / side / qty / type / status | 落到系统的最终产物,进入 OMS 生命周期 |
2.3 包图:策略库组织
组织原则三条:
- 策略 = 数据 + 参数,与运行环境分离:同一策略模板(Strategy Template)通过「回测适配器 / 模拟适配器 / 实盘适配器」在三种环境运行,杜绝"回测能跑、实盘跑不了"。
- 参数外置(配置化):参数表(JSON/YAML)独立于代码,调参不改代码、可版本管理、可批量实验——这是研究效率的关键。
- 评估模块独立:绩效指标与归因分析作为通用库供所有策略复用,保证"不同策略用同一把尺子量"。
3. 策略分类体系
市场上有上万种"策略",但分类维度只有少数几个。理解维度,才能在任何策略面前快速定位:它靠什么信号赚钱、持有多久、承担多少市场风险、怎么执行。
3.1 四个分类维度
| 维度 | 取值 | 决定的问题 |
|---|---|---|
| 信号来源 | 技术量价 / 统计套利 / 因子 / 机器学习 / 事件驱动 | 规律从哪来、容量多大、衰减多快 |
| 持仓周期 | 高频 / 日内 / 波段 / 中长线 | 交易频率、成本敏感度、基础设施要求 |
| 市场中性度 | 方向型 / 中性型 / 套利型 | 赚的是 Beta 还是 Alpha、对大盘依赖 |
| 执行方式 | 人工下单 / 半自动 / 全自动 | 速度与成本、容错与监管 |
3.2 按信号来源
信号来源决定策略的"认知内核"。下表给出六大来源的定位(每类具体公式与参数见 §10 技术分析策略规格库 与 §11-17 量化策略理论)。
| 门类 | 原理(赚什么钱) | 典型策略 | 优势 | 局限 |
|---|---|---|---|---|
| 技术量价 | 市场参与者行为在价格/成交量上留下的规律 | 趋势跟踪、均值回归、突破形态、量价背离 | 规则透明、易实现、信号频率灵活 | 参数敏感、拥挤后失效、样本依赖 |
| 统计套利 | 相关资产价格偏离统计关系后的收敛 | 配对交易、指数套利、跨期/跨市场套利 | 市场中性、与大盘相关性低 | 收敛可能不来(基差持续走阔)、容量有限 |
| 因子投资 | 可复现的横截面溢价(价值/动量/质量/低波…) | 多因子选股、Smart Beta | 逻辑有学术支撑、可规模化、容量大 | 因子拥挤、长期但慢、回撤周期长 |
| 机器学习 | 从高维特征中学习非线性关系 | GBDT 选股、深度学习时序、强化学习 | 能挖到人工难发现的组合规律 | 极易过拟合、可解释性差、需要强风控 |
| 事件驱动 | 事件对价格的系统性冲击与反应不足 | 财报/公告套利、并购套利、指数成分调整 | 事件窗口明确、逻辑清晰 | 事件频次低、样本少、依赖时效 |
| 期权波动率 | 隐含与已实现波动率的价差(VRP)、事件波动爆发 | IV Rank、买/卖跨式、铁鹰 | 与大盘相关性低、事件窗口明确、多空双向 | 依赖期权数据与模型、尾部风险大(Volmageddon) |
3.3 按持仓周期
| 周期 | 持有时间 | 成本敏感度 | 基础设施要求 | 典型战场 |
|---|---|---|---|---|
| 高频 HFT | 毫秒~秒 | 极高(佣金/滑点即生死) | 托管机房、低延迟、FPGA、微秒级行情 | 做市、盘口失衡、跨所套利 |
| 日内 Intraday | 分钟~数小时 | 高 | 实时行情、盘中断执行、不过夜 | 日内动量、日内均值回归 |
| 波段 Swing | 数天~数周 | 中 | 日线数据 + 日频执行即可 | 趋势跟踪、波段反转、事件驱动 |
| 中长线 Medium/Long | 数月~数年 | 低 | 基本面/因子数据 + 低频调仓 | 多因子、Smart Beta、另类数据 |
规律:周期越短,成本与基础设施占比越高、逻辑越微观;周期越长,容量越大、但等待 Alpha 兑现的耐心要求越高。周期选择必须与自身资源匹配——个人研究者直接从波段/中长线起步最现实。
3.4 按市场中性度
| 类型 | 承担的市场风险 | 收益来源 | 例子 |
|---|---|---|---|
| 方向型(Beta 依赖) | 高——大盘涨跌直接决定盈亏 | 部分 Beta + 部分 Alpha | 趋势跟踪、多头选股 |
| 中性型(市场中性) | 低——对冲掉系统性风险,只留 Alpha | 纯 Alpha | 多空对冲(买强卖弱)、股票市场中性 |
| 套利型(理论无风险) | 极低——价格关系收敛即盈利 | 定价偏差 | 配对交易、期现套利、可转债套利 |
提醒:所谓"无风险"是相对的。套利的风险在于"价差不收敛"(如基差持续走阔)和"资金与保证金风险",2008 年与 2020 年都出现过"套利崩盘"——中性不等于无风险。
3.5 适用场景速查矩阵
| 场景 / 诉求 | 推荐方向 | 理由 |
|---|---|---|
| 个人 / 小资金起步 | 波段技术量价、中长线因子 | 成本可承受、数据易得、基础设施要求低 |
| 追求稳定、怕大幅回撤 | 市场中性、统计套利 | 与大盘相关性低,回撤相对可控 |
| 大资金、可长期持有 | 多因子 / Smart Beta | 容量大、可容纳机构级资金 |
| 技术团队强、有低延迟能力 | 高频 / 日内 | 利润厚但门槛高,先有基础设施再谈策略 |
| 研究能力 > 工程能力 | 事件驱动 + 另类数据 | 逻辑清晰、可验证、工程要求适中 |
| 有期权账户/数据、懂 Greeks | 期权波动率(O1~O4) | 收益与方向解耦、事件窗口清晰;但尾部风险须严格管理 |
4. 策略评估与验证
策略好坏不靠"感觉",靠一整套指标 + 稳健性检验 + 成本检验。本节给出评估的三件套。
4.1 回测指标族
单一指标都会被"美化",必须看一组指标,且都要扣掉成本。
| 指标 | 含义 | 健康参考(随周期/品种变化) | 坑 |
|---|---|---|---|
| 年化收益率 | 复利折算的年收益 | 显著高于基准与无风险利率 | 孤立看无意义,必须配回撤看 |
| 年化波动率 | 收益的标准差 | 与策略定位匹配(低波策略不应高波动) | 衡量风险的大小,不是好坏 |
| Sharpe 比率 | 超额收益 / 波动率(单位风险换多少超额) | 趋势/波段 >1;高频 >2;中长线 0.5~1.5 | 对"肥尾"与"正偏"不敏感,会被尾部策略虚高 |
| Sortino 比率 | 只计下行波动(分母用下行标准差) | 通常高于 Sharpe | 同上,仅改进下行侧 |
| 最大回撤(Max Drawdown) | 从峰值到谷底的最大跌幅 | 与收益匹配(回撤过大=风险失控) | 历史样本外的黑天鹅可能更深 |
| Calmar 比率 | 年化收益 / 最大回撤 | >1 较健康;>2 优秀 | 回撤是单点极值,样本依赖强 |
| 胜率 / 盈亏比 | 盈利交易占比 / 平均盈利÷平均亏损 | 高胜率低赔率 vs 低胜率高赔率都可行 | 单独看胜率无意义,必须看盈亏比 |
| Profit Factor | 总盈利 / 总亏损 | >1.3 才值得考虑实盘 | 对极端尾部敏感 |
| IC / Rank IC | 因子值与未来收益的相关性(横截面) | |IC| > 0.03 有价值;>0.05 优秀 | 用于因子类策略的"信号质量"度量 |
| 换手率 | 持仓替换比例 | 越低成本越低 | 高换手必须配低成本环境 |
4.2 防过拟合方法
回测漂亮的最大来源是过拟合——参数调得太细,记住了历史噪音,实盘即失效。四道防线:
| 防线 | 做法 | 识别什么 |
|---|---|---|
| 样本内外分离 | 调参只允许用 in-sample,验证只在 out-of-sample | OOS 大幅劣于 IS = 过拟合信号 |
| Walk-forward | 滚动"训练→验证"窗口(见 §1.2) | 每段验证绩效是否一致,而非某一小段爆发 |
| 参数平原检查 | 在最优参数周围画绩效热力图 | 周围性能急剧下降 = 尖峰 = 过拟合;平原宽 = 稳健 |
| 随机化检验 | 打乱行情/用白噪声序列跑同一策略 | 白噪声上还能赚钱 = 严重过拟合/数据错误 |
经验法则:交易次数(样本量)不足 100~200 次的回测结果不可信;参数数量越多,所需样本量越大(每多一个自由参数,过拟合概率显著上升)。
4.3 成本与执行质量
回测毛利与实盘净利之间的鸿沟,几乎全部来自执行成本。评估时必须显式建模:
| 成本项 | 含义 | 影响最大的策略类型 |
|---|---|---|
| 滑点(Slippage) | 期望价与实际成交价之差 | 高频、日内(毫秒级信号最敏感) |
| 手续费/印花税 | 交易费率 | 高频、高换手策略 |
| 冲击成本(Market Impact) | 大单买卖推动价格对自己不利 | 大资金、流动性差品种 |
| 资金成本/保证金 | 杠杆利息与占用成本 | 套利、高杠杆策略 |
| 容量上限 | 超过后收益被冲击成本吞噬 | 小市值、低频、套利 |
评估动作:至少做三档成本敏感性测试——"零成本 / 保守成本 / 恶劣成本",若策略在保守成本下毛利仍为正,才有资格进入下一步;同时估算容量,避免"能赚但装不下"。
4.4 评估结论判定
把上面三件套合起来,一条策略评估的"通过线"大致是(经验值,随类型浮动):
- 绩效层:扣成本后 Profit Factor > 1.3,最大回撤在可承受范围,Calmar > 1;
- 稳健层:Walk-forward 各段绩效一致,参数平原宽,OOS 与 IS 差距不悬殊;
- 可行性层:保守成本下仍盈利,容量 ≥ 拟投入资金,监管与账户条件满足;
- 风控层:预先定义好的止损、仓位上限、熔断规则齐全且可编码执行。
4.5 回测方法论(Backtesting Methodology)
回测(Backtest)是用历史数据验证策略的「虚拟实验」。正确性是策略库的元前提:错误的方法会让随机策略看起来有效。
要点 1:前视偏差与幸存者偏差控制
# 错误示例(前视):用了整段数据算出的均值/协方差去生成历史信号 signal_t = f(X_t, params_fitted_on_full_data) # ✗ 泄漏未来 # 正确:只用 t 及以前数据递推/滚动估计 signal_t = f(X_t, params_fitted_on_data[:t]) # ✓ 逐点合法 # 幸存者偏差:选股池须用当时真实存在的标的(含后来退市的)
要点 2:时间序列切分与 Walk-Forward
# 滚动训练-验证:训练窗 → 验证下一段 → 前移
for fold in walk_forward_folds(data, train=3y, val=1y):
params = optimize(fold.train) # 只在此段调参
equity = simulate(fold.val, params) # 参数在样本外测试
# 最终性能以多个 fold 的样本外合并为准,杜绝「用验证集反复调参」
要点 3:过拟合与参数敏感性
# 参数不应在窄峰上最优(脆弱);应测试邻域稳定性
def robustness_check(params):
neighbors = grid(params, step=[1, 0.5, 2])
return all(metric(p) > baseline for p in neighbors) # 稳健才通过
# 多重检验:尝试越多参数组合,偶然最优概率越高(多重检验惩罚)
参数敏感性(Parameter Sensitivity):参数邻域变化时策略表现是否稳定。
幸存者偏差(Survivorship Bias):仅用现存标的回测会高估收益。
Part 2 技术分析
5. 技术分析概述
技术分析(Technical Analysis)是研究市场历史价格与成交量数据,以预测未来价格走势的方法论。它不关注标的的内在价值,只关注「市场参与者如何在价格上表达自己的行为」。其成果形态多样:既有可编码的量化规则,也有难以形式化的图形直觉;就量化体系而言,它扮演的是价格行为信号源的角色(与量化策略理论的整体关系见§0.4)。
5.1 三大前提
技术分析建立在三个前提之上(J. Murphy《期货市场技术分析》):
- 市场行为涵盖一切信息(Market action discounts everything):价格已反映所有已知信息(基本面、消息、心理、内幕)。研究价格即研究全市场。
- 价格沿趋势运动(Prices move in trends):趋势一旦形成,倾向于延续而非立即反转,因此「顺势」是技术分析的核心。
- 历史会重演(History repeats itself):人类在贪婪与恐惧驱动下的行为模式反复出现,使形态与信号具有统计上的重复性。
成交量(Volume):单位时间内的成交数量,用于验证价格运动的可信度。
5.2 技术面 vs 基本面
| 维度 | 技术分析 | 基本面分析 |
|---|---|---|
| 研究对象 | 价格、成交量、时间 | 财务报表、经济数据、行业景气 |
| 时间尺度 | 短线 ~ 波段,可精确到分钟 | 以月、季度、年为单位 |
| 核心问题 | 价格「何时」向「何处」运动 | 资产「价值」是多少 |
| 本质 | 群体行为分析(行为科学 + 概率统计) | 价值评估(会计 + 经济推理) |
| 可编码性 | 高:规则可量化,易于回测 | 中:定性判断占比高,难以完全机械化 |
5.3 流派总览
| 流派 | 代表工具 | 侧重 |
|---|---|---|
| 价格行为 / 形态 | K线形态、头肩顶底、2B | 图形 → 人性模式 |
| 指标类 | MACD、RSI、KDJ、BOLL | 数据运算 → 统计信号 |
| 量价类 | OBV、放量突破、量价背离 | 成交量验证价格 |
| 周期类 | 波浪理论、江恩、斐波那契 | 时间与空间规律 |
| 趋势类 | 均线、趋势线、通道、ADX | 趋势识别与跟随 |
6. 道氏理论
道氏理论(Dow Theory)由 Charles Dow 提出,是现代技术分析的基石。它首次系统定义了「趋势」,并给出趋势持续与反转的判定框架。绝大多数趋势策略(均线、通道、突破)都是道氏理论的操作化。
6.1 趋势的定义与分类
- 上升趋势:一系列依次抬高的高点与低点(Higher Highs, Higher Lows)。
- 下降趋势:一系列依次降低的高点与低点(Lower Highs, Lower Lows)。
- 横盘 / 无趋势:高点与低点大致持平,价格在一定区间内震荡。
| 级别 | 持续时间 | 典型策略适配 |
|---|---|---|
| 主要趋势(Primary) | 数月 ~ 数年 | 长期持有、周线波段 |
| 次要趋势(Secondary) | 数周 ~ 数月 | 波段交易、均线交叉 |
| 短期趋势(Minor) | 数日 ~ 数周 | 短线、分钟级突破 |
Higher Low(HL):高于前一个低点的当前低点,上升趋势的支撑证据。
Lower High(LH)/ Lower Low(LL):下降趋势的对应定义。
6.2 反转的确认信号
道氏理论最重要的观点是:趋势反转需要确认,即前一个趋势方向最后一个未被突破的极值被反向穿越(L/H 被破坏)。例如上升趋势中,价格跌破最后一个显著低点(HL),才确认趋势可能反转。这一思想直接衍生出「突破入场」「趋势线破坏」「2B 假突破」等具体策略。
7. K线理论
K线(Candlestick,蜡烛图)由日本米市交易者 Munehisa Homma 发展,现为全球最通用的价格记录方式。单根K线编码了开盘(Open)、最高(High)、最低(Low)、收盘(Close)四要素,其形态反映多空力量对比。
7.1 单根K线含义
| 要素 | 含义 | 量化用途 |
|---|---|---|
| 实体(Body) | 开盘与收盘之间;阳线(close>open)为多头主导 | 涨跌方向、动能 |
| 上影线(Upper Shadow) | 冲高后回落,多头承压 | 顶部压力 |
| 下影线(Lower Shadow) | 探低后拉起,空头受挫 | 底部支撑 |
| 全实体 / 光头光脚 | 极端单边 | 强趋势信号 |
7.2 经典组合形态
| 形态 | 结构 | 信号 | 可编码要点 |
|---|---|---|---|
| 吞没(Engulfing) | 阳线实体完全包裹前一根阴线 | 底部反转看涨 | close[i] > open[i-1] 且 open[i] < close[i-1] |
| 孕线(Harami) | 小实体被前一根大实体完全包含 | 反转犹豫、收敛 | open[i] 在前根区间内 |
| 十字星(Doji) | 开盘≈收盘,上下影线明显 | 多空僵持、可能变盘 | |close-open| ≤ 某阈值×振幅 |
| 锤头 / 上吊线(Hammer/Hanging Man) | 下影线长、实体小 | 低位看涨 / 高位看跌 | 下影线 ≥ 2×实体 |
| 三只乌鸦 / 三白兵 | 连续三根同向K线 | 持续或反转 | 连续 3 根阳线且均创新高 |
影线(Shadow/Wick):实体之外到最高/最低价的细线。
阳线(Bullish):收盘高于开盘;阴线(Bearish):收盘低于开盘。
8. 趋势与支撑阻力
8.1 支撑/阻力互换
支撑(Support)与阻力(Resistance)是价格反复测试后形成的心理价位。其核心规律是角色互换:一旦被有效突破,原来的阻力变为新的支撑,反之亦然。这一现象是「突破回踩」策略的理论基础。
- 支撑:价格下跌至此区域时买盘增强、止跌回升。
- 阻力:价格上涨至此区域时卖盘增强、滞涨回落。
- 有效突破判定:收盘价站上/跌破,而非盘中影线刺穿;通常叠加成交量放大确认。
8.2 假突破(2B)
假突破(False Breakout / 2B Rule)出自 Victor Sperandeo《专业投机原理》,是技术分析中最重要的反转形态之一。它描述的是:价格突破前高/前低后,因后续动能不足而快速反向收回,构成反转预警。
- 确定前高(1 点);
- 价格冲破前高创新高(2 点),但很快(3~5 根K线内)跌回前高之下收盘 → 顶部 2B;
- 入场:收盘跌回前高下方做空;
- 止损:放在 2 点新高上方;目标:前一波回调低点。
要点:时间要求(拖太久信号失效);本质是识别「突破方没能跟上」;与量能背离、支撑阻力密集区配合使用更有效。2B 是少数能被严格规则化的反转形态,常作为反转类策略的入场核心。
8.3 趋势识别的编码实现
本节把 6.1 的趋势定义(HH/HL/LH/LL)落到可编码的算法,是 10.1 各趋势跟踪策略与 M2 斐波那契中 detect_swing 调用的底层依赖。核心分两步:先从原始K线找出摆动点(Swing High / Swing Low),再从摆动点序列判定高低点结构(HH/HL/LH/LL)与趋势方向。代码沿用全文约定:bars 为按时间正序排列的K线数组,每根含 open/high/low/close/volume/ts。
8.3.1 摆动点检测(Swing High / Swing Low)
摆动点是「局部极值」:某根K线的高点若为左右各 k 根中的最高,记为一个 Swing High;低点为左右各 k 根中的最低,记为一个 Swing Low。k 越大越稳健但越滞后(漏掉小摆动),k 越小越灵敏但噪音越多。
def detect_swing(bars, k=2):
# 返回摆动点序列,每项 (idx, kind, price),kind 为 'H' 或 'L'
swings = []
for i in range(k, len(bars) - k):
win_high = max(bars[j].high for j in range(i - k, i + k + 1))
win_low = min(bars[j].low for j in range(i - k, i + k + 1))
if bars[i].high == win_high:
swings.append((i, 'H', bars[i].high))
if bars[i].low == win_low:
swings.append((i, 'L', bars[i].low))
return swings
局限性与研究结论:摆动点需在右确认 k 根后才确定,是滞后指标(最后一根 Swing 天然不确定);可用 ATR 最小摆动幅度过滤(相邻摆动价差 < min_move 时合并),消除微小抖动。这是所有结构识别(HH/HL、趋势线、斐波那契回调)的公共地基。
8.3.2 判定 HH/HL/LH/LL 结构
在摆动点序列上,依次比较相邻的同类摆动点:同升序为 HH/HL(上升结构),同降序为 LH/LL(下降结构)。
def label_structure(swings):
highs = [(p, idx) for idx, kind, p in swings if kind == 'H']
lows = [(p, idx) for idx, kind, p in swings if kind == 'L']
out = {}
for (p1, _), (p2, _) in zip(highs, highs[1:]):
out['HH' if p2 > p1 else 'LH'] = out.get('HH' if p2 > p1 else 'LH', 0) + 1
for (p1, _), (p2, _) in zip(lows, lows[1:]):
out['HL' if p2 > p1 else 'LL'] = out.get('HL' if p2 > p1 else 'LL', 0) + 1
return out # 计数最近的 HH/HL/LH/LL 结构
8.3.3 趋势方向判定
上升趋势 = 最近 min_structure 组高低点同时呈 HH + HL;下降趋势 = 同时呈 LH + LL;否则为横盘。结构识别为主口径,ADX/均线排列仅作可选辅助确认(见第 9 节),避免单一指标误判。
| 最近结构 | 判定 | 示例 |
|---|---|---|
| HH + HL | 上升趋势(做多方向) | 高点抬高且低点抬高 |
| LH + LL | 下降趋势(做空方向) | 高点降低且低点降低 |
| 混合 / 无连续结构 | 横盘(趋势未确认) | 区间震荡,禁用趋势策略 |
def trend_direction(swings, min_structure=2):
s = label_structure(swings)
if s.get('HH', 0) >= min_structure and s.get('HL', 0) >= min_structure:
return 'up'
if s.get('LH', 0) >= min_structure and s.get('LL', 0) >= min_structure:
return 'down'
return 'flat'
8.3.4 道氏反转确认的编码
衔接 6.2:趋势反转需确认——上升趋势中收盘跌破最后一个显著低点(HL)才判反转。这一规则把 8.1 的支撑突破、8.2 的 2B 统一到「结构被破坏」这一判定上。
def reversal_signal(bars, swings, direction):
if direction == 'up':
last_hl = min((p for idx, kind, p in swings if kind == 'L'), default=None)
return last_hl is not None and bars[-1].close < last_hl # 跌破最后 HL → 反转预警
if direction == 'down':
last_lh = max((p for idx, kind, p in swings if kind == 'H'), default=None)
return last_lh is not None and bars[-1].close > last_lh # 升破最后 LH → 反转预警
return False
局限性与研究结论:结构识别天然滞后(需摆动点右侧确认),适合做中低频趋势判定的地基,不宜用于高频;高频场景通常直接用均线/通道等实时指标替代。结构法 vs 指标法对照可参考第 9 节。
9. 市场状态分类
一个稳健的策略库应先判断市场处于何种状态,再匹配合适策略。最常见的分类是「趋势 / 震荡 / 单边」三态(或再加「低波动待变」态)。
| 状态 | 特征 | 识别指标 | 适配策略 |
|---|---|---|---|
| 上升 / 下降趋势 | HH/HL 或 LH/LL 结构 | ADX>25、均线多头/空头排列 | 趋势跟踪类 |
| 震荡 | 区间反复、无明确方向 | ADX<20、BOLL 带宽收窄 | 反转类、均值回归类 |
| 单边(爆发) | 连续大实体、放量 | BOLL 带宽扩张、ATR 放大 | 突破类、动量类 |
| 低波动待变 | BOLL 收口、波动率压缩 | 带宽处于历史低位 | 波动率突破预备 |
ATR(Average True Range):平均真实波幅,衡量波动幅度,常用于止损与仓位设置。
10. 技术分析策略规格库
以下策略均整理自公开的技术分析研究成果,每个策略给出一份可编码规格:类型、适用市场、参数、入场/出场逻辑(Python 风格伪代码)、局限性与研究结论。文档不绑定任何具体实现系统,伪代码中的 bars 为按时间正序排列的K线数组,每根包含 open/high/low/close/volume/ts。
10.1 趋势跟踪类(Trend Following)
策略 T1:双均线交叉(MA Crossover)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| fast_period | 5 | 3 ~ 15 | 短期均线周期 |
| slow_period | 20 | 10 ~ 60 | 长期均线周期 |
| adx_filter | 20 | 15 ~ 25 | 低于此值不做多(趋势过滤) |
fast = MA(close, fast_period) slow = MA(close, slow_period) adx = calc_adx(bars, 14) long_enter = fast[-1] > slow[-1] and fast[-2] <= slow[-2] and adx[-1] >= adx_filter long_exit = fast[-1] < slow[-1]
出场/止损:反向交叉出场;或加 ATR 止损。
局限性与研究结论:震荡市中频繁假交叉、回撤大;胜率通常不足 40%,靠盈亏比取胜(趋势利润覆盖震荡亏损)。历史研究(如 Faber 2007 年《A Quantitative Approach to Tactical Asset Allocation》)表明双均线在股票指数上显著降低回撤。
参考实现:mementum/backtrader(内置 SmaCross 示例,官方文档首页即是);rbhatia46/Dual-Moving-Average-Crossover-Python(AAPL 两年数据回测)。
策略 T2:唐奇安通道突破(Donchian Channel Breakout)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| entry_period | 20 | 10 ~ 55 | 突破入场通道长度 |
| exit_period | 10 | 5 ~ 20 | 反向出场通道长度 |
| vol_filter | 1.2 | 1.0 ~ 1.5 | 放量倍数过滤(可选) |
hh = max(high[-entry_period-1:-1]) # 不含当前K线 ll = min(low[-entry_period-1:-1]) exit_ll = min(low[-exit_period-1:-1]) long_enter = close[-1] > hh and (vol[-1] >= vol_filter * mean(volume, 20)) short_enter = close[-1] < ll long_exit = close[-1] < exit_ll short_exit = close[-1] > max(high[-exit_period-1:-1])
局限性与研究结论:趋势启动初期入场,抓大波段;震荡市被反复止损。著名的 Turtle Trading(海龟交易法则)即此策略框架,其核心经验是「让利润奔跑、截断亏损」。
参考实现:mementum/backtrader(官方 Strategy Examples 中的 DonchianChannelBreakout);je-suis-tm/quant-trading(趋势/突破类脚本合集)。
策略 T3:均线排列 + 葛兰碧法则(Granville's Rules)
葛兰碧(Joseph Granville)给出 8 条均线与价格关系的买卖法则,核心思想:均线既是支撑/阻力,也是趋势标尺。
- 多头排列(MA5>MA10>MA20):趋势向上,回踩不破 MA 持有/加仓。
- 价格远离均线过远:乖离过大,短期回归风险(反转/减仓)。
- 均线走平、价格围绕均线缠绕:无趋势,观望。
bullish_align = all(ma5[-1] > ma10[-1] > ma20[-1]) overshoot = close[-1] / ma20[-1] - 1 > dev_threshold # 乖离过大预警
局限性与研究结论:均线天然滞后,适用于趋势明确的标的;乖离阈值需按标的波动率标定(可用 ATR 归一化)。
参考实现:mementum/backtrader(均线系统/乖离示例,内置 SMA/EMA 指标)。
策略 T4:ADX 趋势过滤(Trend Strength Filter)
ADX 不给出方向,只给强度,是趋势策略的「开关」而非信号源。
adx = calc_adx(bars, 14) trend_mode = adx[-1] >= 25 # 强趋势,启用趋势策略 range_mode = adx[-1] <= 20 # 震荡,启用反转策略
局限性与研究结论:ADX 滞后性强,常与均线交叉、通道突破组合成「趋势策略只在强趋势开启」的过滤器,显著降低震荡市中的无效交易。
参考实现:mementum/backtrader(内置 ADX 指标);mrjbq7/ta-lib(ADX/标准指标库)。
策略 T11:海龟唐奇安突破(Turtle System)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| entry_lookback (N) | 20 | 10 ~ 55 | 进场通道长度:收盘突破最近 N 根最高/最低进场 |
| exit_lookback (M) | 10 | 5 ~ 20 | 退出通道长度:持仓中跌破/突破最近 M 根通道退出 |
| position_pct | 100% | — | 仓位比例(海龟原版按 ATR 分档加仓,简化版常满仓/固定) |
hh = max(high[-entry_lookback-1:-1]) # 不含当前K线 ll = min(low[-entry_lookback-1:-1]) exit_ll = min(low[-exit_lookback-1:-1]) exit_hh = max(high[-exit_lookback-1:-1]) long_enter = flat and close[-1] > hh # 空仓时收盘突破 → 做多进场 short_enter = flat and close[-1] < ll # 空仓时收盘跌破 → 做空进场 long_exit = holding_long and close[-1] < exit_ll # 退出回空仓,不反手 short_exit = holding_short and close[-1] > exit_hh
出场/止损:M 根反向通道退出回空仓(不复开),空仓后再等新突破进场;与策略 T2 的区别在于 T2 反向即反手、Turtle 明确「退出后等待」。海龟原版按 ATR 分档加仓、以入场通道为原始止损,本规格为单仓位简化版。
局限性与研究结论:趋势启动初期入场,「让利润奔跑、截断亏损」,趋势市表现突出;震荡市被反复止损。N/M 越大信号越滞后、交易越少;海龟实证与后续研究(Faber 2007 等)均表明长周期通道在指数趋势上的回撤控制优于短线。
参考实现:mementum/backtrader(DonchianChannelBreakout 示例,即海龟法则框架)。
策略 T12:Supertrend ATR 趋势
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| atr_period | 14 | 10 ~ 21 | ATR 周期(Wilder 平滑) |
| multiplier | 3.0 | 1.5 ~ 4.0 | 通道倍数:supertrend 带 = 中价 ± mult × ATR |
tr = max(high - low, abs(high - prev_close), abs(low - prev_close)) atr = wilder_smooth(tr, atr_period) # 首值 SMA(period),之后递推 mid = (high + low) / 2 basic_upper = mid + multiplier * atr basic_lower = mid - multiplier * atr # 最终通道:basic 更收紧或前收已穿越旧带 → 跟随 basic,否则维持旧带 final_upper = basic_upper if (basic_upper[-1] < final_upper[-2] or close[-2] > final_upper[-2]) else final_upper[-2] final_lower = basic_lower if (basic_lower[-1] > final_lower[-2] or close[-2] < final_lower[-2]) else final_lower[-2] # supertrend 线:前收在上通道下方 → 跟上通道,否则跟下通道 st_line = final_upper[-1] if close[-2] <= final_upper[-1] else final_lower[-1] long_enter = close[-1] > st_line and trend != 'long' # 收盘穿越 → 翻多 short_enter = close[-1] < st_line and trend != 'short' # 收盘穿越 → 翻空
出场/止损:无独立止损——反向穿越 supertrend 线即反手,始终在趋势中(与策略 T6 抛物线 SAR 同族的跟踪翻转逻辑)。
局限性与研究结论:ATR 自适应通道天然匹配波动率,趋势市胜率与盈亏比好,震荡市翻转频繁;ATR 平滑方式(Wilder/SMA/EWM)与 multiplier 对结果敏感,建议在 1.5 ~ 4.0 内按品种标定。为 freqtrade 社区最热门的趋势模板之一,常叠加多周期确认过滤假翻转。
参考实现:freqtrade/freqtrade-strategies(user_data/strategies/Supertrend.py)。
10.2 反转类(Reversal)
策略 R1:2B 战法(False Breakout Reversal)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| lookback | 20 | 10 ~ 40 | 前高/前低回看窗口 |
| fail_bars | 3 | 2 ~ 5 | 突破后失败确认的时间窗 |
prior_high = max(high[-lookback-2:-2]) # 1 点:前高 new_high = high[-1] > prior_high and close[-2] > prior_high # 突破创新高后 N 根内收盘收回前高之下 → 顶部 2B top2b = new_high and close[-1] < prior_high short_enter = top2b # 入场做空 stop = new_high_price + atr * 1.5 # 止损放新高上方
出场/止损:止损于 2 点新高上方(做空)或新低下方(做多);目标为前波段回调极值。
局限性与研究结论:在真实突破与假突破之间需靠时间窗与量能甄别;单独使用胜率中等,叠加趋势状态过滤(只在震荡或反趋势)可提升。为可严格编码的少数反转形态之一。
参考实现:je-suis-tm/quant-trading(含 London Breakout 等突破/反转脚本,思路同源)。
策略 R2:RSI 背离(Divergence)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| period | 14 | 9 ~ 21 | RSI 周期 |
| overbought | 70 | 70 ~ 80 | 超买阈值 |
| oversold | 30 | 20 ~ 30 | 超卖阈值 |
rsi = calc_rsi(close, period)
def bullish_divergence():
# 价格创新低,RSI 未创新低
return low[-1] < low[-div_window] and rsi[-1] > rsi[-div_window]
long_enter = bullish_divergence() and rsi[-1] < oversold
局限性与研究结论:背离常领先价格数根K线(可能过早入场);强趋势中背离可能钝化(连续背离)。研究(Wilder 提出)表明 RSI 更适合震荡环境。
参考实现:je-suis-tm/quant-trading(含 RSI 背离脚本);mrjbq7/ta-lib(RSI 指标)。
策略 R3:头肩顶/底(Head & Shoulders)
头肩形态是三峰结构:左肩 → 头部(最高)→ 右肩,颈线连接两峰之间的低点。
# 规则化近似:识别三个峰 + 颈线突破 left, head, right = detect_three_peaks(bars) # 头部最高,左右肩次之 neckline = min(close_between(left, head), close_between(head, right)) head_and_shoulders = head > left and head > right and right_is_lower_than_head short_enter = head_and_shoulders and close[-1] < neckline # 跌破颈线入场 target = neckline - (head - neckline) # 量度目标=颈线-头部到颈线的高度
局限性与研究结论:形态识别主观性强、难精确编码,回测中的「形态发现」易过拟合;量度目标有参考价值但非保证。
参考实现:je-suis-tm/quant-trading(含 Pattern Recognition 形态识别脚本)。
策略 R4:双顶/双底(Double Top / Bottom)
# 双顶:两次冲高到近似同一高度后回落,跌破两峰之间的谷底 top1 = find_local_peak(high, w) top2 = find_local_peak(high, w) double_top = abs(top1 - top2) < tolerance and price fell between short_enter = double_top and close[-1] < valley_between
局限性与研究结论:双顶/双底是 2B 的「更弱一级」变体,级别(两个峰的时间跨度)越大越可靠。
参考实现:je-suis-tm/quant-trading(含 Pattern Recognition 形态脚本)。
策略 R5:吞没/锤头反转(K-line Reversal)
bull_engulf = open[-1] <= close[-2] and close[-1] >= open[-2] \
and close[-1] > close[-2] and prev_was_bearish
hammer = (min(open[-1], close[-1]) - low[-1]) >= 2 * abs(close[-1] - open[-1]) \
and in_oversold_area
long_enter = (bull_engulf or hammer) and trend_filter_allows_long
局限性与研究结论:单根/两根K线信号噪音大,必须配合支撑位或超卖区使用,不宜单独成策略。
参考实现:je-suis-tm/quant-trading(含 Shooting Star / Heikin-Ashi 等 K 线脚本)。
10.3 波动率类(Volatility)
策略 V1:布林带(Bollinger Bands)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| period | 20 | 10 ~ 30 | 中轨均线周期 |
| mult | 2.0 | 1.5 ~ 3.0 | 标准差倍数 |
| deviation | 0.95 | 0.9 ~ 1.0 | 触碰判定容差(相对于带宽) |
upper = ma20 + mult * std20 lower = ma20 - mult * std20 # 均值回归:触上轨回落做空 / 触下轨反弹做多 touch_upper = high[-1] >= upper * (1 - deviation) revert_short = touch_upper and close[-1] < close[-2] # 波动率突破:带宽收缩后爆发 bandwidth = (upper - lower) / ma20 squeeze = bandwidth[-1] < percentile(bandwidth, 20)
局限性与研究结论:触轨≠必然反转,需结合动量与趋势过滤;「布林带收缩 → 扩张」是经典的波动率突破预警。注意统计口径:总体标准差 vs 样本标准差(pstdev/sample stdev)对带宽影响显著。
参考实现:mementum/backtrader(官方 Strategy Examples 中的 BollingerBandsMeanReversion);je-suis-tm/quant-trading(Bollinger Bands 脚本)。
策略 V2:ATR 动态止损与仓位(Volatility-based Position Sizing)
atr = calc_atr(bars, 14) stop_distance = atr * atr_mult # 默认 atr_mult=2 stop_price = enter_price - stop_distance # 做多 position_size = risk_budget / stop_distance # 固定风险金额反推仓位
局限性与研究结论:ATR 止损让止损随波动自适应,避免「固定点数在波动放大时被瞬杀」。这是 Turtle 与多数专业基金的标准做法。
参考实现:mementum/backtrader(内置 ATR 指标与 Sizer 仓位模块)。
策略 V3:保利加格带宽突破(Bandwidth Expansion Breakout)
bandwidth = (upper - lower) / ma20 expansion = bandwidth[-1] > k * MA(bandwidth, 20) # 带宽扩张 + 价格突破近期区间 → 顺势入场 long_enter = expansion and close[-1] > max(high[-lookback:-1])
局限性与研究结论:波动率扩张常伴随强趋势启动,适合在低波动待变后捕捉爆发段。
参考实现:je-suis-tm/quant-trading(布林带/波动率类脚本)。
策略 V4:Dual Thrust 区间突破
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| lookback | 48 | 20 ~ 120 | Range 计算回看 K 线根数 |
| k1 | 0.5 | 0.3 ~ 0.7 | 上破系数:上阈值 = 前收 + K1×Range |
| k2 | 0.5 | 0.3 ~ 0.7 | 下破系数:下阈值 = 前收 - K2×Range |
hh = max(high[-lookback-1:-1]); lc = min(close[-lookback-1:-1]) hc = max(close[-lookback-1:-1]); ll = min(low[-lookback-1:-1]) rng = max(hh - lc, hc - ll) # 核心 Range:取「最高高-最低收」与「最高收-最低低」较大者 upper = close[-2] + k1 * rng # 上破阈值(以本根前收为基准) lower = close[-2] - k2 * rng # 下破阈值 long_enter = close[-1] > upper # 收盘上破 → 做多 short_enter = close[-1] < lower # 收盘下破 → 做空 # 反向突破即反手:由对侧阈值驱动,无独立止损
出场/止损:无独立止损——反向突破另一侧阈值即反手离场。经典日内版(Dual Thrust 原始定义)以「开盘价±K×Range」为阈值、收盘清仓不过夜;本规格为通用 K 线版(以本根前收为基准,适合连续 K 线回测)。
局限性与研究结论:Range 衡量近期波动区间,突破即「波动率扩张」入场,适合捕捉启动段;震荡日假突破频繁。K1/K2 可非对称(多空信号不对称的品种设 K1≠K2)。原始策略由 Universal Technical Systems 创始人提出,多用于日内期货。
参考实现:je-suis-tm/quant-trading(Dual Thrust backtest.py,日内版)。
10.4 持续形态类(Continuation Patterns)
持续形态出现在趋势中途,含义是「休整后沿原方向继续」。
| 形态 | 结构 | 入场 | 量度目标 |
|---|---|---|---|
| 旗形 / 三角旗形(Flag/Pennant) | 快速拉升后的小幅反向整理通道/三角 | 突破整理区间上沿 | 约等于旗杆高度 |
| 楔形(Wedge) | 收敛的倾斜通道 | 突破上沿 | 楔形高度投影 |
| 对称三角形(Sym. Triangle) | 高降低、低抬高的收敛 | 突破方向(趋势方向优先) | 三角形底边高度 |
| 矩形(Rectangle) | 水平震荡箱体 | 突破箱体边界 | 箱体高度 |
# 旗形突破(上升旗)示例 pennant_high = max(high[-consolidation:]) consolidation_slope = slope(regression(close, consolidation)) flag_breakout = prior_rally and consolidation_slope ≈ 0 and close[-1] > pennant_high long_enter = flag_breakout target = breakout_price + flagpole_height
局限性与研究结论:持续形态在趋势明确时成功率更高;形态定义依赖人工/启发式,需谨慎回测避免过拟合。
10.5 周期与动量类(Cycle & Momentum)
策略 M1:MACD 金叉/死叉与背离(MACD)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| fast | 12 | 8 ~ 20 | 快线 EMA |
| slow | 26 | 20 ~ 40 | 慢线 EMA |
| signal | 9 | 7 ~ 12 | 信号线 |
dif = ema(close, fast) - ema(close, slow) dea = ema(dif, signal) macd_hist = dif - dea long_enter = dif[-1] > dea[-1] and dif[-2] <= dea[-2] # 金叉 # 顶背离:价格创新高,MACD 高点降低 → 反转预警
局限性与研究结论:零轴上方金叉胜率更高;背离为左侧信号,常被用于辅助趋势策略出场。MACD 由 Gerald Appel 提出,是应用最广的动量指标。
参考实现:je-suis-tm/quant-trading(含 MACD 脚本)。
策略 M2:斐波那契回调与扩展(Fibonacci Retracement)
swing_high, swing_low = detect_swing(bars) retrace_levels = [0.382, 0.5, 0.618] # 回调至 0.5/0.618 未破前低 → 顺势买入(上升趋势) long_enter = pullback_hits(swing_high, swing_low, 0.618) and trend_up target = swing_high + (swing_high - swing_low) * 0.618 # 扩展目标
局限性与研究结论:斐波那契是「自我实现的预言」——因众多交易者关注而生效;水平位置为概率优势区域而非精确保证。
参考实现:无直接专仓(主观回撤工具),指标见 mrjbq7/ta-lib 与 wilsonfreitas/awesome-quant 目录。
策略 M3:波浪理论概要(Elliott Wave)
艾略特波浪理论将价格走势拆分为推动浪(5 浪)与调整浪(3 浪),并强调斐波那契比例关系。其主观成分高,难以机械编码,通常作为宏观位置判断的辅助(如判断当前处于第 3 主升浪)。
局限性与研究结论:浪的划分经常在事后才唯一清晰;不宜作为独立信号源,适合与趋势指标互相印证。
参考实现:无直接专仓(主观性高、难编码),见 wilsonfreitas/awesome-quant 目录。
10.6 量价类(Volume-Price)
策略 Q1:放量突破 / 缩量回调(Breakout on Volume)
vol_ratio = volume[-1] / mean(volume, 20) breakout_vol = vol_ratio >= 1.5 and close[-1] > prior_resistance # 突破需放量,回调应缩量(缩量=惜售/惜买) pullback_shrink = mean(volume[-5:]) < 0.8 * mean(volume, 20)
局限性与研究结论:成交量是价格运动的「燃料」,放量突破比缩量突破更可信;缩量回调是健康的趋势中继。量价规则简单但在不同市场有效性差异大,需按品种标定阈值。
参考实现:je-suis-tm/quant-trading(量价/突破类脚本)。
策略 Q2:量价背离(Volume-Price Divergence)
# 价格创新高,成交量未创新高 → 上涨动能衰竭 price_new_high = high[-1] > max(high[-lookback:-1]) vol_not_new_high = volume[-1] < max(volume[-lookback:-1]) distribution = price_new_high and vol_not_new_high # 出货预警
局限性与研究结论:量价背离常出现在顶部/底部的反转前夜,是左侧预警信号。
参考实现:je-suis-tm/quant-trading(量价类脚本)。
策略 Q3:OBV 动量(On-Balance Volume)
obv = [0] * len(bars)
for i in range(1, len(bars)):
if close[i] > close[i-1]: obv[i] = obv[i-1] + volume[i]
elif close[i] < close[i-1]: obv[i] = obv[i-1] - volume[i]
else: obv[i] = obv[i-1]
# OBV 趋势与价格趋势一致 → 确认;背离 → 预警
局限性与研究结论:OBV 把「资金流」线性累积,方向比绝对值更有意义;对除权、拆股不敏感问题需要处理。
参考实现:mrjbq7/ta-lib(内置 OBV 指标)。
10.7 补充策略规格
补齐技术分析内部常用但上面未覆盖的工具:随机指标 KDJ、抛物线 SAR、%B 与带宽、Ichimoku 一目均衡、VWAP 策略。规格级别同本部分其它策略。
策略 T5:KDJ 随机指标
| 参数 | 默认值 | 说明 |
|---|---|---|
| n | 9 | RSV 回看周期 |
| k_smooth / d_smooth | 3 / 3 | K、D 的 SMA 平滑 |
| overbought / oversold | 80 / 20 | 超买/超卖阈值 |
rsv = (close - min(low, n)) / (max(high, n) - min(low, n)) * 100 k = SMA(rsv, k_smooth); d = SMA(k, d_smooth) j = 3 * k - 2 * d # 用法:K 上穿 D 且处于低位 → 买;高位 J>100 超买预警 long_enter = k[-1] > d[-1] and k[-2] <= d[-2] and d[-1] < oversold + margin
局限性与研究结论:KDJ 对短线反应快、噪音大,常用于 A股短线;震荡有效、强趋势钝化,需趋势过滤。
参考实现:mrjbq7/ta-lib(STOCH 随机指标);mementum/backtrader(内置随机指标)。
策略 T6:抛物线 SAR(停损转向)
sar, trend = calc_sar(high, low, af=0.02, af_max=0.2) # 加速度因子 0.02→0.2
# SAR 点从上方逐步逼近价格,被价格穿越 → 反转(止损离场并反向)
long_while = close > sar and trend == 'up'
if close[-1] < sar[-1] and close[-2] >= sar[-2]: # SAR 翻转
exit_long(); maybe_enter_short()
局限性与研究结论:SAR 本质是跟踪止损系统,趋势市表现好;震荡市被反复「打脸」。适合作为出场管理器叠加在趋势入场之上。
参考实现:je-suis-tm/quant-trading(Parabolic SAR 脚本);mrjbq7/ta-lib(SAR 指标)。
策略 T7:%B 与带宽
boll = BOLL(close, 20, 2.0) pct_b = (close - lower) / (upper - lower) # %B:0=下轨, 1=上轨 bandwidth = (upper - lower) / middle # %B 过 0/1 + 带宽收窄 → 均值回归信号;带宽突破历史低位 → 扩张预备 mean_revert_buy = pct_b[-1] < 0 and bandwidth_pctile < 20
局限性与研究结论:%B 将触轨量化到 0~1,便于阈值化与回测;带宽是「波动率压缩」的标准量化。
参考实现:mementum/backtrader(内置 %B / 带宽指标)。
策略 T8:Ichimoku 一目均衡表
| 参数 | 默认值 | 说明 |
|---|---|---|
| tenkan / kijun | 9 / 26 | 转换线与基准线 |
| senkou_b | 52 | 先行带 B |
| chikou_shift | 26 | 迟行线平移 |
tenkan = (max(high,9)+min(low,9))/2 kijun = (max(high,26)+min(low,26))/2 senkou_a = (tenkan+kijun)/2 shifted +26 # 先行带 A senkou_b = (max(high,52)+min(low,52))/2 shifted +26 cloud = between(senkou_a, senkou_b) # 云区 # 价格在云上=多头;云为动态支撑/阻力;tenkan/kijun 金叉为入场 long_filter = close > senkou_a and close > senkou_b
局限性与研究结论:Ichimoku 是一个完整交易系统(趋势+动态支撑+时间过滤),日线传统参数 9/26/52;对参数不敏感于单指标,但需完整理解各线关系。
参考实现:mementum/backtrader(内置 Ichimoku 指标)。
策略 T9:VWAP 策略(成交量加权均价)
# 日内 VWAP:从开盘累计 (价格×成交量) / 累计成交量 vwap = cumsum(typical_price * volume) / cumsum(volume) # 当日 # VWAP 是日内机构基准:价在 VWAP 上偏多、下偏空 long_enter = intraday_price > vwap and vwap_trend_up # 也用于判断入场价好坏:偏离 VWAP 过大不宜追
局限性与研究结论:VWAP 在日内交易与大单执行评估常用;单日重置,跨日需另行处理。对短线噪音敏感。
参考实现:mementum/backtrader(内置 VWAP 指标与示例);freqtrade/freqtrade(加密日内框架含 VWAP 策略模板)。
策略 T10:开盘区间突破(Opening Range Breakout, ORB)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| range_minutes | 15 | 5 ~ 60 | 开盘后定义区间高低的时间窗 |
| breakout_buffer | 0.05% | 0 ~ 0.2% | 突破确认缓冲(相对区间高度) |
| vol_filter | 1.5 | 1.0 ~ 2.5 | 突破需放量倍数(可选) |
| stop_type | range_mid | range_mid / atr | 止损位=区间中点或 ATR 倍数 |
| rr | 1.5 | 1.0 ~ 3.0 | 止盈=初始风险×盈亏比 |
| eod_exit | 15:30 | 收盘前 | 日内策略,收盘强制平仓不过夜 |
# 开盘 N 分钟的高 / 低 = 当日开盘区间 (Opening Range) or_high = max(high[0:range_minutes]); or_low = min(low[0:range_minutes]) mid = (or_high + or_low) / 2 # 收盘价有效突破区间 + 放量确认 → 顺向入场(当日仅一次) vol_ratio = volume[-1] / mean(volume, 20) long_enter = close[-1] > or_high + buffer and vol_ratio >= vol_filter short_enter = close[-1] < or_low - buffer and vol_ratio >= vol_filter stop = mid if stop_type == 'range_mid' else enter_price - atr * 2 target = enter_price + (enter_price - stop) * rr if now >= eod_exit: force_close() # 收盘前平仓
局限性与研究结论:ORB 依赖开盘时段波动与流动性,最适用于股指期货/大盘股的分钟级数据;开盘区间时长、缓冲、量能阈值对结果敏感,须按品种标定;震荡日假突破频繁,叠加量能 / ADX 趋势过滤可显著提升胜率(研究级实现常见 0.5%~0.2% 缓冲 + 1.5 倍量能过滤)。
参考实现:umerdawood23/Opening-Range-Breakout-Strategy-in-Python(ORB 回测器)、saurav-1980/ORB-strategy-(研究级回测引擎,ATR 仓位/量能过滤/绩效报告)、vp275/pj_orb_backtester(Zerodha 版,印度市场)。
10.8 期权与波动率交易(Options & Volatility)
期权是「交易波动率」最直接的载体:隐含波动率(IV)与已实现波动率(RV)之差——方差风险溢价(VRP)——是期权卖方长期收割的核心收益来源。以下策略把波动率当作独立标的来交易,需期权链数据与 Greeks 计算(Black-Scholes 定价 / 数值反解 IV)。
策略 O1:隐含波动率排名(IV Rank / IV 分位)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| window | 252 | 126 ~ 504 | IV 排名回看窗口(交易日) |
| low_th | 30 | 20 ~ 40 | IV Rank 低于此值 → 波动率便宜(买方环境) |
| high_th | 70 | 60 ~ 80 | IV Rank 高于此值 → 波动率昂贵(卖方环境) |
iv_rank = (iv_now - min(iv[window])) / (max(iv[window]) - min(iv[window])) * 100 long_vol_env = iv_rank < low_th # 波动率便宜,倾向买期权(赌升波) short_vol_env = iv_rank > high_th # 波动率昂贵,倾向卖期权(收割溢价)
局限性与研究结论:IV Rank 把当前 IV 放到历史分位,避免「IV 绝对值高 ≠ 贵」的误区;它是择时开关而非独立信号,须叠加具体期权结构使用。
参考实现:goldspanlabs/optopsy(期权研究与回测库)、OptionsnPython/Option-strategies-backtesting-in-Python(Greeks/IV 回测教材代码)。
策略 O2:买入跨式 / 宽跨式(Long Straddle / Strangle)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| dte | 30 | 7 ~ 60 | 到期天数(事件前建仓) |
| strike_mode | atm | atm / otm | 跨式=ATM 双买;宽跨式=OTM 双买 |
| event | 财报/宏观日历 | — | 事件驱动的波动爆发窗口 |
# 事件前建仓:同到期日买 Call + 买 Put(同 strike=跨式,不同 strike=宽跨式) long_straddle = buy_call(atm, dte) + buy_put(atm, dte) breakeven_up = atm_strike + (call_prem + put_prem) # 标的上行到该价才不亏 breakeven_dn = atm_strike - (call_prem + put_prem) if iv_rank > high_th: skip() # 事件前 IV 已贵 → 成本高、易被 IV Crush 吃掉
局限性与研究结论:买跨式是「波动率多头」——有限亏损(权利金)、胜率低、盈亏比高;最大敌人是 IV Crush(事件落地后 IV 崩塌,方向对也可能亏)。只应在 IV Rank 低位 + 事件窗口买入,并预判事件日隐含波动「已被计入多少」。
参考实现:je-suis-tm/quant-trading(Options Straddle backtest.py)、mcf-long-short/ibkr-options-volatility-trading(Long/Short Straddle 实盘,IBKR)。
策略 O3:卖出跨式 + Delta 对冲(Short Straddle + Delta Hedge)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| dte | 30 | 20 ~ 60 | 卖出到期天数 |
| delta_threshold | 0.10 | 0.05 ~ 0.20 | 组合 |Δ| 超阈值触发对冲 |
| trend_filter | sma50 偏离 < 5% | — | 强趋势市禁卖波动率 |
# 卖出 ATM Call + Put(收权利金),每日用标的期货/股票对冲 Delta short_straddle = sell_call(atm, dte) + sell_put(atm, dte) if abs(portfolio_delta) > delta_threshold: hedge_with_underlying() # 收益 ≈ Theta(时间衰减)+ VRP(IV-RV 差)- 交易成本 ± Gamma/Vega PnL # ΔPnL ≈ -½Γ·S²·(ΔS/S)² + Θ·Δt - ν·Δσ
局限性与研究结论:短跨式 + Delta 对冲是最经典的「收割方差风险溢价」策略(Carr & Wu 2009);风险在短 Gamma——单边剧烈行情下亏损巨大(如 2018-02 Volmageddon)。必须叠加趋势过滤、控制单次仓位,警惕 VIX 突然跳升。
参考实现:umaangk13/Delta-Neutral-Volatility-Arbitrage-Engine(短跨式+连续 Delta 对冲+Theta/Gamma/Vega PnL 归因)、kartikmunjal/options-vol-research(IV 曲面 + VRP 收割回测)。
策略 O4:铁鹰 / 垂直价差(Iron Condor / Vertical Spread)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| dte | 45 | 30 ~ 60 | 到期天数 |
| strike_loc | ±1σ | ±1 ~ ±1.5σ | 卖出腿按 IV 预期波动定位置 |
| credit_ratio | 30% | 20% ~ 40% | 净权利金占价差宽度比(盈亏比) |
# 铁鹰 = 卖出 OTM Call 价差 + 卖出 OTM Put 价差(买腿封死尾部) iron_condor = sell_call_spread(above_1sd, dte) + sell_put_spread(below_1sd, dte) max_loss = width - net_credit max_profit = net_credit # 动态调节:用当前 IV 估计 1SD 预期波动 → 高 IV 时腿更宽更靠外 expected_move = spot * iv * sqrt(dte / 365)
局限性与研究结论:铁鹰用买腿封住尾部风险,换取「有限收益/有限风险」的高胜率结构;核心是把卖出腿定在基于 IV 的 1SD 预期波动之外。胜率可达 70%+,但单次大亏会吃掉多次小赢——止损纪律与仓位控制是生死线。
参考实现:sudheerbez/nifty-options-algorithmic-backtester(VIX 动态调节的铁鹰/跨式回测)、OptionsnPython/Option-strategies-backtesting-in-Python(价差/铁鹰教材代码)。
Part 3 量化策略理论
本部分补充技术分析之外的量化策略理论来源。每章规格与技术分析同等:理论定义 + 核心公式 + 参数表 + Python 风格伪代码 + 局限性与研究结论。`bars` 为按时间正序 K线序列,`close_prices`/`returns` 等为其派生序列,`asset/bench` 指两只或多只标的的价格序列。
11. 统计套利(Statistical Arbitrage)
统计套利(Stat Arb)不押注方向,而是利用相关标的间价差(Spread)的均值回归特性盈利:价差偏离历史均衡后回归。区别于无风险套利,其风险在于「均衡关系被打破」,故须用协整检验确认关系的稳定性。
策略 S1:配对交易(Pairs Trading / 协整 Cointegration)
配对交易的核心是寻找两只价格序列具有协整关系(线性组合平稳)的标的,当价差偏离均值时做多被低估方、做空被高估方,价差回归后平仓。
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| train_window | 60 | 30 ~ 120 | 协整回归/估计的滚动窗口 |
| entry_z | 2.0 | 1.5 ~ 2.5 | 价差 z-score 入场阈值 |
| exit_z | 0.5 | 0 ~ 1.0 | 价差回归至 z-score 出场 |
| stop_z | 3.5 | 3 ~ 5 | 价差继续发散止损 |
import statsmodels.api as sm
def hedge_ratio(y, x): # y = 标的A 价格, x = 标的B 价格
x_c = sm.add_constant(x)
model = sm.OLS(y, x_c).fit() # OLS 回归求对冲比
return model.params[1], model.resid # 对冲比 beta, 残差=价差
beta, spread = hedge_ratio(price_a, price_b)
z = (spread - spread.mean()) / spread.std() # 标准化价差
if z[-1] > entry_z and z[-2] < entry_z: # 价差过高 → 做空价差
short_asset_a, long_asset_b # 空A多B,比例按 beta
if z[-1] < exit_z and position_open: # 回归 → 平仓
close_positions()
if abs(z[-1]) > stop_z: # 继续发散 → 止损
stop_loss()
出场/止损:价差回归至 exit_z 平仓;发散超过 stop_z 止损。对冲比例由 beta 决定并按窗口滚动重估。
局限性与研究结论:协整关系的检验功效与样本长度强相关;金融危机期间价差可能长期发散(如 2008)。研究(Gatev et al. 2006)在美股配对样本上获得正超额收益,但拥挤后收益下降。协整 ≠ 相关性:两序列高度相关但不一定协整,须用 ADF 检验残差平稳性。
参考实现:nirajneupane17/Statistical-Arbitrage-Pairs-Trading(协整/ADF/Johansen/z-score/Kelly 全流程);Ivan-Finance/pairs_trading(简化版配对回测)。
ADF 检验(Augmented Dickey-Fuller):单位根检验,用于判断序列/残差是否平稳。
价差(Spread):y - β·x,即对冲后的残差组合。
策略 S2:z-score 均值回归(单标的)
把「价差」概念应用于单一标的相对其均值带:价格相对其移动均值/标准差带偏离过大即反转。
ma = SMA(close, window) sd = stdev(close, window) z = (close - ma) / sd if z[-1] > entry_z and z[-2] <= entry_z: short_enter() # 偏离过高回落做空 if z[-1] < -entry_z and z[-2] >= -entry_z: long_enter() # 偏离过低回升做多 if abs(z) < exit_z: exit()
局限性与研究结论:均值回归只在震荡市有效,单边趋势中会持续被止损(「接飞刀」)。必须配合市场状态过滤(ADX/趋势斜率)。
参考实现:nirajneupane17/Statistical-Arbitrage-Pairs-Trading(含 z-score 信号与回测引擎)。
策略 S3:Kalman 滤波动态对冲比
静态 OLS 对冲比假设关系恒定;Kalman 滤波允许对冲比随时间演变,适用于关系缓变的对。
from pykalman import KalmanFilter kf = KalmanFilter(n_dim_obs=1, n_dim_state=2) state_means, _ = kf.filter(price_a.values) # 状态含 [beta, alpha] beta_t = state_means[:, 0] # 时变对冲比 spread_t = price_a - beta_t * price_b # 对 spread_t 用 z-score / 阈值逻辑与 S1 相同
局限性与研究结论:Kalman 响应快于滚动 OLS,但参数(状态噪声)需调优;滤波滞后对实时交易敏感。
参考实现:nirajneupane17/Statistical-Arbitrage-Pairs-Trading(src/signals.py 含 Kalman 滤波对冲比)。
策略 S4:统计套利组合框架(多标的)
将若干配对/价差组合成中性组合,使整体对市场 Beta 敞口≈0,赚取分散化的均值回归收益。
# 组合构建 pairs = [(a_i, b_i) for i in range(n_pairs)] weights = optimize_neutral_portfolio(pairs) # 约束 sum(beta_i*w_i)=0 portfolio_pnl = sum(w_i * pnl(pair_i)) # 每日合成组合盈亏 risk_check: stop_all if portfolio_drawdown > max_dd
局限性与研究结论:组合化降低单对风险但引入模型与参数风险;相关性在危机期趋近 1,「分散」失效是主要尾部风险。
参考实现:nirajneupane17/Statistical-Arbitrage-Pairs-Trading(多对组合/中性化框架思路)。
12. 因子投资(Factor Investing)
因子投资将股票收益分解为若干可解释的「风险因子」暴露。它属于横截面(Cross-section)方法:在同一时点比较众多标的,依据某个特征(因子)的高低分组并做多高分、做空低分,赚取特征溢价。
策略 F1:动量因子(Momentum / 横截面)
| 参数 | 默认值 | 推荐范围 | 说明 |
|---|---|---|---|
| lookback | 12M | 6 ~ 12 月 | 动量回看窗口(经典 12-1) |
| skip | 1M | 0 ~ 1 月 | 跳过最近一个月(反转效应) |
| hold | 1M | 1 ~ 3 月 | 持有窗口 |
| top_pct / bot_pct | 10% / 10% | 5% ~ 30% | 做多/做空分位 |
mom = (px_t - px_{t-lookback+skip}) / px_{t-lookback+skip} # 每只股票动量
# 每期重排:做多动量最高 top_pct,做空动量最低 bot_pct(等权)
def factor_portfolio(returns_df, char_df, top=0.1, bottom=0.1):
rank = char_df.rank(axis=1, pct=True)
long_mask = rank >= (1 - top)
short_mask = rank <= bottom
weights = (long_mask.astype(float) - short_mask.astype(float))
weights = weights.div(weights.abs().sum(axis=1), axis=0) # 归一化
return (returns_df * weights).sum(axis=1)
局限性与研究结论:动量是横截面研究中最稳健的异象之一(Jegadeesh & Titman 1993);但存在动量崩溃(Momentum Crash,如 2009),需结合波动过滤。
参考实现:iamzaheen/dax-momentum-backtest(Jegadeesh-Titman 12-1 完整回测)、Kevin20250000000/Quant-Trading---Momentum-Strategy(S&P500 动量 vs 买入持有)。
策略 F2:估值因子(Value)
value_score = 1 / composite_value_ratio # 如 E/P, B/P, S/P 合成 # 合成常用法:对多个估值比按截面分位打分后取平均 # 做多最便宜,做空最贵
局限性与研究结论:价值因子长期有效(Fama-French),但可能长期「价值陷阱」;价值与动量存在负相关,二者可互补组合。
参考实现:microsoft/qlib(Alpha158 因子集含价值类特征);quantopian/alphalens(因子 IC/分层检验)。
策略 F3:质量因子与低波因子
quality = zscore(ROE) + zscore(profit_margin) + zscore(low_leverage) low_vol = -zscore(realized_vol_60d) # 波动越低分数越高 composite = quality_weight * quality + vol_weight * low_vol # 截面做多高分、做空低分(与 F1 同框架)
局限性与研究结论:低波因子(Betting Against Beta, Frazzini & Pedersen 2014)在多数市场提供风险调整后超额;质量因子防守性强,牛市可能跑输。
参考实现:microsoft/qlib(低波/质量因子示例);quantopian/alphalens(因子评估)。
策略 F4:多因子合成(IC/IR 加权)
| 参数 | 默认值 | 说明 |
|---|---|---|
| factor_set | [mom, value, quality, lowvol] | 参与合成的因子 |
| weight_mode | ic_weight | 等权 / IC 加权 / IR 加权 |
| rebalance | 月频 | 调仓频率 |
def ic_weights(factor_returns, forward_returns):
# IC = 每期因子值与下期收益的截面相关系数;IR = mean(IC)/std(IC)
ics = [spearmanr(f, fwd).correlation for f, fwd in zip(...)]
return ics / sum(abs(x) for x in ics) # IC 加权
composite_score = sum(w_f * normalize(factor_f) for f in factors)
portfolio = long_top(composite_score, top_pct) # 多因子选股
局限性与研究结论:多因子降低单因子失效风险;但因子拥挤与数据挖掘(Factor Zoo)问题突出,需样本外与行业中性化处理。
参考实现:microsoft/qlib(多因子组合/模型全流程);quantopian/alphalens(IC/IR 加权评估)。
IC(Information Coefficient):因子值与未来收益的截面相关系数,衡量预测力。
Fama-French 三/五因子:市场、规模(SMB)、价值(HML)、盈利(RMW)、投资(CMA) 等系统风险因子。
13. 时间序列建模(Time Series Modeling)
时间序列方法直接对价格/收益/波动率序列建模,用于预测收益方向或估计波动率(风险与仓位输入)。
策略 TS1:ARIMA 收益预测
| 参数 | 默认值 | 说明 |
|---|---|---|
| p / d / q | 由 AIC 自动选择 | AR / 差分阶 / MA 阶 |
| forecast_horizon | 1 | 预测步长(K线) |
| confidence | 0.8 | 信号需预测方向显著 |
from statsmodels.tsa.arima.model import ARIMA model = ARIMA(returns, order=(p, d, q)).fit() forecast, conf = model.get_forecast(1) pred = forecast.mean[0] # 方向信号:预测收益显著为正是做多候选 if pred > 0 and conf_low > 0: long_candidate()
局限性与研究结论:资产收益近随机游走,ARIMA 单独预测方向的边际胜率有限;更常用于残差/价差建模与波动率辅助。金融收益常具厚尾、异方差,ARIMA 假设不满足,需配合 GARCH。
参考实现:statsmodels/statsmodels(官方 ARIMA 文档示例);alkaline-ml/pmdarima(auto_arima 自动定阶)。
策略 TS2:GARCH 波动率预测
收益率的波动存在聚集(Volatility Clustering)——大波动后仍大波动。GARCH 模型刻画条件方差随时间演变,为仓位与止损提供前瞻波动估计。
from arch import arch_model am = arch_model(returns * 100, vol='Garch', p=1, q=1).fit() forecast = am.forecast(horizon=1) vol_pred = np.sqrt(forecast.variance.iloc[-1, 0]) / 100 # 下一期波动率 position_size = risk_budget / (vol_pred * k) # 波动目标仓位
局限性与研究结论:GARCH(1,1) 常已足够;杠杆效应可用 EGARCH/GJR-GARCH 刻画(跌的波动放大更多)。波动预测比方向预测更可信、应用更广。
参考实现:bashtage/arch(ARCH/GARCH 族官方库,含 EGARCH/GJR)。
策略 TS3:状态空间模型(动态水平)
# 局部水平模型:price = level + noise; level 随机游走 # Kalman 滤波给出平滑的水平估计,价差/回归可基于状态 level_t = kalman_level(price) # 状态估计 residual = price - level_t # 残差(对状态均值回归)
局限性与研究结论:适合对缓慢漂移的水平做估计,用于趋势分解或价差构造;参数先验影响大。
参考实现:statsmodels/statsmodels(statespace 状态空间/Kalman 平滑);oseiskar/pykalman(轻量 Kalman)。
14. 机器学习(Machine Learning)
机器学习将「信号发现」从人工规则转为数据驱动:从特征(特征工程)学习「特征 → 未来收益」的映射。技术分析/统计套利的方法可作为特征输入 ML 模型,构成混合策略。
策略 ML1:特征工程基础
features = {
'ret_1': returns(t=1), 'ret_5': returns(t=5), 'ret_20': returns(t=20),
'rsi14': RSI(close, 14), 'bb_position': (close-ma20)/(2*sd20),
'vol_ratio': volume / SMA(volume, 20), 'atr_norm': ATR(14)/close,
'mom_12_1': (px_{t-12}-px_{t-1})/px_{t-1}, 'zscore20': zscore(close, 20),
}
X = build_feature_matrix(bars) # 每行=某根K线的特征向量
y = sign(forward_return(h)) # 标签=未来 h 期收益方向
要点:特征必须只用 T 时刻及以前的信息(避免前视偏差);标准化/稳健化处理离群值;时间序列切分而非随机切分。
参考实现:microsoft/qlib(特征/因子工程全流程流水线)。
策略 ML2:梯度提升树信号(XGBoost / LightGBM)
| 参数 | 默认值 | 说明 |
|---|---|---|
| n_estimators | 300 | 树数量(早停截断) |
| max_depth | 4 | 防止过拟合,浅树更稳 |
| learning_rate | 0.05 | 学习率 |
| early_stop | 50 | 验证集早停轮数 |
| train_val_split | 按时间 70/30 | 禁止随机打乱 |
import lightgbm as lgb
model = lgb.LGBMClassifier(n_estimators=300, max_depth=4, learning_rate=0.05)
model.fit(X_train, y_train, eval_set=[(X_val, y_val)],
callbacks=[lgb.early_stopping(50)])
prob_up = model.predict_proba(X_latest)[:, 1] # P(上涨)
# 信号:prob_up 超过阈值并满足最低持仓/流动过滤后入场
局限性与研究结论:决策树对特征尺度鲁棒、可解释性较好(特征重要性);金融信噪比极低,须克制过拟合——用时间序列交叉验证与样本外留一。论文与实践常见「过拟合的模型在样本外失效」。
参考实现:microsoft/qlib(LightGBM 基线模型,30+ 训练器);microsoft/LightGBM(GBDT 官方库)。
策略 ML3:深度学习时序(LSTM/Transformer)
model = Sequential([
LSTM(64, return_sequences=True, input_shape=(seq_len, n_feat)),
Dropout(0.2), LSTM(32), Dense(1, activation='sigmoid')
])
model.fit(X_seq_train, y_train, epochs=50, validation_data=(X_val, y_val))
pred = model.predict(X_seq_latest)[0, 0]
局限性与研究结论:深度模型容量大、易过拟合且难解释;对数据量与特征质量要求高。多数实践显示对噪声序列并不稳定优于 GBDT,常作为组合成员而非唯一信号。
参考实现:microsoft/qlib(LSTM/GRU/Transformer 等深度学习模型)。
策略 ML4:强化学习交易(RL Agent)
# 状态=最近特征窗口;动作=空仓/持仓/仓位变化;奖励=账户收益(含交易成本) agent = train_dqn(env=portfolio_env, episodes=500) action = agent.act(state_latest) # 输出目标仓位
局限性与研究结论:RL 直接优化序列收益,但环境非平稳、奖励噪声大、训练不稳定;交易成本与滑点须进环境否则学到无效策略。
参考实现:AI4Finance-Foundation/FinRL(强化学习交易框架,15k+⭐)。
前视偏差(Look-ahead Bias):错误使用未来信息产生的虚假高收益。
样本外(Out-of-sample):未参与训练的数据,用于验证真实泛化能力。
15. 事件驱动(Event Driven)
事件驱动策略围绕公告、财报、宏观数据发布等「事件」展开:事件前后价格存在系统性反应不足或过度反应,可捕捉异常收益(Abnormal Return)。
策略 E1:财报漂移(PEAD / Post-Earnings-Announcement Drift)
| 参数 | 默认值 | 说明 |
|---|---|---|
| surprise_metric | SUE | 标准化未预期盈余(或超预期幅度) |
| top_pct | 20% | 做多最高超预期组 |
| hold | 60 日 | 事件后持有窗口 |
sue = (actual_eps - expected_eps) / std_eps # 标准化未预期盈余 # 事件日 T 建仓:做多高 SUE 组,持有至漂移耗尽(研究显示可持续数十交易日) if sue >= top_quantile: long_at(T+1, hold)
局限性与研究结论:PEAD 是最稳健的异象之一(Bernard & Thomas 1989),根源是市场对信息的反应不足;近年拥挤后效应减弱。
参考实现:fincell-xaviers/pead-earnings-drift(S&P500 PEAD 回测)、aniketnmishra/PEAD(SUE 计算 + Nifty 回测)。
策略 E2:公告事件窗口 CAR 分析
# CAR = 事件窗口内累计异常收益,异常=标的收益-期望收益(如市场模型/基准) car = sum(asset_ret[t] - expected_ret[t] for t in window) # 用途:1) 评估某类事件是否产生系统性漂移;2) 依事件日提前/延迟入场 if historical_car_of_event_type > 0: execute_event_strategy()
局限性与研究结论:须用市场模型/因子模型分离系统性收益;涨跌停/停牌机制(A股)显著影响窗口收益捕获。
参考实现:dylan-jeon/earnings-surprise-analysis(CAR 事件研究 + 市场效率检验)。
策略 E3:新闻情绪 NLP(Sentiment)
from transformers import pipeline
sent = pipeline('sentiment-analysis', model='finbert')
text = fetch_headline(ticker, ts)
label, score = sent(text)[0] # POSITIVE/NEGATIVE + 置信度
signal = (1 if label == 'POSITIVE' else -1) * score
# 与行情事件结合:情绪显著 + 成交量放大 → 入场
局限性与研究结论:金融文本需领域模型;情绪是弱信号,需聚合大量文本或叠加事件权重;延迟敏感,新闻推送时效是成败关键。
参考实现:ProsusAI/finBERT(金融情感分析预训练模型)。
SUE(Standardized Unexpected Earnings):标准化未预期盈余,衡量财报超预期程度。
事件窗口(Event Window):事件日前后用于观测异常收益的区间。
16. 组合与风控(Portfolio & Risk)
单策略信号之上是组合层:如何在多个标的/策略间分配资金,以及如何控制整体风险。这是策略库的「元层」,决定单位风险的长期收益。
策略 P1:Markowitz 均值-方差优化(有效前沿)
| 参数 | 默认值 | 说明 |
|---|---|---|
| cov_window | 60 | 协方差估计窗口 |
| target_vol | 10% | 目标组合年化波动 |
| constraints | 非负 + 权重和=1 | 可加行业/单标的限额 |
import numpy as np mu = mean_returns(cov_window) # 期望收益向量 Sigma = cov_matrix(returns, cov_window) # 协方差矩阵 # 求解 min w'Σw s.t. w'mu=μ_target, sum(w)=1(凸优化) from scipy.optimize import minimize res = minimize(risk_fun, x0, method='SLSQP', bounds=bounds, constraints=cons) weights = res.x
局限性与研究结论:均值-方差对输入(尤其协方差)极敏感,直接优化常产生极端权重;实务常用收缩估计(Shrinkage)或风险平价替代。
参考实现:robertmartin8/PyPortfolioOpt(均值-方差/Black-Litterman/收缩估计)。
策略 P2:风险平价(Risk Parity)
# 各资产风险贡献相等:w_i ∝ 1/σ_i(忽略相关时);带相关的精确解
# w_i * (Σw)_i 对每项相等
def risk_parity_weights(sigma): # 简化(不相关假设)
inv = 1.0 / sigma
return inv / inv.sum()
局限性与研究结论:风险平价无需预测收益,通过均衡风险贡献获得稳健组合;债券/低波资产获权重较高(风险预算视角)。
参考实现:robertmartin8/PyPortfolioOpt(risk_models 风险平价)、dcajasn/Riskfolio-Lib(风险预算/层级风险平价)。
策略 P3:Kelly 仓位(Kelly Criterion)
p = win_rate; b = avg_win / avg_loss # 盈亏比 f_star = (b * p - (1 - p)) / b # 满 Kelly 比例 position_frac = f_star * kelly_fraction # 实务用半 Kelly (0.5) # 满 Kelly 使长期对数收益最大,但回撤巨大,通常用分数 Kelly
局限性与研究结论:Kelly 在收益分布未知时高估仓位,对参数误差极敏感;回撤极度深(几何下降)。业界普遍采用 1/4~1/2 Kelly。
参考实现:无专门专仓(公式简单可自实现);绩效评估可用 ranaroussi/quantstats。
策略 P4:风险度量(VaR / CVaR)与回撤控制
var_95 = np.percentile(returns_hist, 5) # 95% VaR(最差5%分位) cvar_95 = returns_hist[returns_hist <= var_95].mean() # 期望尾部损失 drawdown = (cum_equity.cummax() - cum_equity) / cum_equity.cummax() # 风控规则: if drawdown > max_drawdown: reduce_risk(half) # 触及回撤线减半仓 if cvar_95 < risk_budget: cap_leverage() # 尾部风险超限降杠杆
局限性与研究结论:VaR 不满足次可加性(非一致性风险度量),CVaR 更稳健;回撤控制是实盘存活的关键,防止「负复利」螺旋。
参考实现:dcajasn/Riskfolio-Lib(CVaR/CDaR/回撤约束组合优化)。
风险平价(Risk Parity):令各资产对组合总风险贡献相等的配置。
Kelly 公式:最大化长期对数增长率的仓位比例。
VaR / CVaR:给定置信度下的最大可能损失 / 其条件期望(尾部均值)。
17. 执行与微观结构(Execution & Market Microstructure)
策略产生的「理想信号」与实际成交之间存在差距:滑点、冲击成本、订单排队。执行层决定回测收益能否兑现,尤其对高频与小盘标的影响显著。
策略 X1:成本模型(滑点 + 冲击)
| 参数 | 默认值 | 说明 |
|---|---|---|
| spread_bps | 2 ~ 5 bps | 买卖价差成本 |
| impact_bps | 5 ~ 20 bps | 按 ADTV 比例的冲击成本 |
| slippage_bps | 1 ~ 3 bps | 执行滑点 |
trade_cost = spread_bps + impact_bps * sqrt(order_adv_ratio) + slippage_bps # 在回测中每笔成交价加/减 trade_cost,验证策略在含成本下仍盈利 exec_price = market_price + trade_cost * direction
局限性与研究结论:冲击成本近似随 sqrt(订单/日均成交额) 增长(Almgren 模型);剔除成本后仍显著盈利是策略真实有效的必要条件。
参考实现:abbass2/pyqstrat(回测含执行/成本建模)。
策略 X2:算法执行(TWAP / VWAP / 冰山)
# TWAP:在 [T0, T1] 内按时钟等量拆分订单 slice_qty = total_qty / n_slices for each slice at equal time: submit_market(slice_qty) # VWAP:按历史成交量分布分配每片数量 vol_profile = hourly_volume_profile(history) slice_qty[t] = total_qty * vol_profile[t] / total_profile # 冰山单:单次仅暴露小量,减少信息泄漏(尤适用于大单)
局限性与研究结论:算法单目标是「降低市场冲击与信息泄漏」,代价是执行时间与暴露风险(价格不利变动);大单必需,小单市价更省时。
参考实现:joequant/algobroker(算法交易执行引擎)、timkpaine/aat(研究/回测/实盘统一,含算法单)。
策略 X3:订单类型与排队(Limit vs Market)
# 市价单:立即成交,付价差 # 限价单:排队等待,可能吃到价差但也可能不成交(选择偏差) passive = place_limit(bid + edge) # 被动吃价差,等待被成交 if not filled by deadline: cross_spread # 未成交则追价保证信号执行 # 回测中须建模「未成交」概率,否则高估被动单策略收益
局限性与研究结论:限价单策略的回测存在严重选择偏差(只统计到成交的部分),会系统高估收益;须按价差到达模型估计成交概率。
参考实现:alpacahq/pylivetrader(实盘执行,含限价单)、timkpaine/aat(订单类型模拟)。
选择偏差(Selection Bias):这里指限价单「未成交就撤」导致样本不完整。
ADTV:日均成交额(Average Daily Trading Value),衡量流动性。
Part 4 实战与速查
18. 实战操作手册
本章把 §1~§4 落到动作:从零到一落地一条策略的分步操作、常用工具链、以及新手最容易踩的坑。
18.1 从零落地一条策略(以"20 日动量选股"为例)
- 定义假设:近 20 日涨幅居前的股票,未来一个月倾向跑赢(动量异象)。写下一句话假设 + 明确标的池(如沪深300 成分)与调仓频率(月频)。
- 准备数据:日线 OHLCV、复权处理(前复权)、剔除 ST/停牌/上市不足 60 日,区间尽量长(≥ 10 年)。数据质量决定一切,先对数据做 sanity check。
- 编码信号:每月末计算每只股票 20 日收益率,按截面排序取前 20% 为目标持仓(见 §19.1)。
- 回测验证:逐月模拟调仓,计入手续费与滑点;记录逐月收益序列与指标族(见 §4.1)。
- 稳健性检验:换动量窗口(10/30/60 日)、换成分池子集、换样本区间,观察结果是否稳定;用 Walk-forward 做滚动验证(§4.2)。
- 成本与容量:在月换手率基础上按保守成本重算,确认盈利;估算该策略能承载的资金量。
- 风控配置:设单票上限(如 5%)、总仓位上限、最大回撤熔断线(如 15% 触发降仓)、禁止规则(如禁止买入 ST)。
- 模拟交易:接入实时行情跑 1~3 个月 Paper Trading,确认"实盘数据下的表现 ≈ 回测表现"。
- 小额实盘:以最小可操作规模上线,先跑 1~2 个月验证执行链路(信号→订单→成交→对账)无误,再逐步放大。
- 持续监控:月度复盘(绩效归因、与回测偏差定位)、季度检查信号是否衰减、触发熔断即暂停(见 §1.4)。
18.2 工程工具链(Python 生态为主)
| 环节 | 常用工具 | 备注 |
|---|---|---|
| 数据处理 | pandas / numpy / Polars | Polars 处理大数据量更快 |
| 数据获取 | akshare / tushare / yfinance / 数据商 API | 国内 A 股优先 akshare/tushare,注意复权与 PIT 对齐 |
| 回测引擎 | backtrader / vectorbt / zipline-reloaded / qlib(微软) | vectorbt 极快适合参数扫描;qlib 适合因子/ML 流水线 |
| 因子与统计 | alphalens / statsmodels / scipy | alphalens 专做因子 IC 与分层检验 |
| 机器学习 | scikit-learn / LightGBM / XGBoost / PyTorch | 先用树模型,深度学习放最后 |
| 参数优化 | Optuna / 网格搜索 | Optuna 做贝叶斯搜索,注意防过拟合(配 OOS) |
| 实盘执行 | 券商 API / 开源交易框架(vnpy 等) | 连接经纪商、订单管理、风控网关 |
18.3 新手陷阱清单
| 陷阱 | 症状 | 对策 |
|---|---|---|
| 未来函数(Look-ahead Bias) | 回测收益异常地高、几乎不亏 | 只用当时可得的 PIT 数据;事件严格按时间戳回放 |
| 幸存者偏差 | 选股池只有"活到现在的股票" | 成分池必须含历史上退市/被剔除的标的 |
| 过度调参 | 参数微调收益暴涨 | 参数平原检查 + 样本外验证(§4.2) |
| 忽略成本 | 实盘收益远低于回测 | 回测一开始就计入保守成本(§4.3) |
| 回测与实盘不一致 | 实盘信号和回测对不上 | 同一策略代码三端复用(§2.3) |
| 没有风控就上实盘 | 一次黑天鹅亏掉全部利润 | 实盘前必配止损/熔断/仓位上限(§19.3) |
| 样本量不足就下结论 | 几十次交易就断言有效 | 交易次数 < 100~200 的结果不可信 |
19. 参数指令速查手册
核心参数的速查表。完整参数规格(含每类策略专属参数)见 §19.6 全量参数速查表;此处是策略骨架的通用参数。
19.1 信号类参数
| 参数 | 含义 | 典型默认 | 调参方向 |
|---|---|---|---|
window | 信号计算窗口(N 日/根 K 线) | 20(动量/均线) | 短=快但噪;长=慢但稳 |
lookback | 回看区间长度 | 随周期定 | 至少覆盖 1 个完整牛熊 |
threshold | 信号触发阈值(如 z-score 上下限) | ±1.0~±2.0 | 阈值高=信号少而强 |
top_n / bottom_n | 截面选股数量(横截面策略) | 前 20% | 数量多=分散、单票权重低 |
min_holding | 最短持有期(防过度翻转) | 5~10 日 | 抑制噪音交易,降换手 |
signal_filters | 附加过滤(成交额、流动性、ST 排除) | 排除低流动性 | 保证可执行性 |
19.2 仓位类参数
| 方法 | 仓位公式 | 适用 | 注意 |
|---|---|---|---|
| 固定比例 | 仓位 = 固定常数 × 资金 | 起步、简单 | 不随风险变化 |
| Kelly(分数 Kelly) | f* = p − (1−p)/b(p=胜率, b=盈亏比),建议用 f*/2 或 f*/4 | 有稳定胜率与盈亏比估计时 | 全 Kelly 波动极大,务必打折 |
| ATR 仓位 | 仓位 ∝ 风险预算 / ATR(单位波动止损额) | 趋势/波段策略 | 波动自适应,市场波动小时加大 |
| 风险平价 | 各标的贡献相等风险(权重 ∝ 1/波动) | 多资产组合 | 需波动率估计,低波标的易超配 |
| 目标波动率 | 仓位 = 目标波动率 / 当前波动率 | 组合层面 | 把组合波动钉在目标值 |
19.3 风控类参数
| 参数 | 含义 | 典型默认(仅供参考) |
|---|---|---|
max_position_pct | 单标的仓位上限 | 5%~20% |
max_leverage | 总杠杆上限 | 1.0~3.0(A 股两融受监管约束) |
stop_loss_pct | 单笔止损线 | 2%~10%(ATR 自适应更佳) |
max_drawdown_pct | 策略最大回撤熔断线 | 10%~20% |
daily_loss_limit | 当日亏损熔断 | 账户 2%~5% |
forbidden_list | 禁止标的/行为 | ST、退市整理、业绩雷池 |
sector_limit | 行业集中度上限 | 单行业 ≤ 30% |
19.4 评估类参数
| 参数 | 含义 | 常见取值 |
|---|---|---|
risk_free_rate | 无风险利率(Sharpe/Sortino 用) | 中国:一年期国债或 SHIBOR,2%~3% |
benchmark | 基准指数(计算超额) | 沪深300 / 中证500 |
confidence_level | VaR 置信度 | 95% / 99% |
oos_ratio | 样本外占比 | 20%~30% |
walk_forward_windows | 滚动验证窗口数 | ≥ 5 段 |
19.5 回测设置速查
| 设置项 | 建议 |
|---|---|
| 回测区间 | ≥ 10 年,必须覆盖至少一轮完整牛熊 |
| 交易成本 | 保守估计:佣金 + 印花税 + 滑点(如 10~20 bps 单边,随品种调整) |
| 数据频率 vs 调仓频率 | 数据频率必须 ≥ 信号频率(日频信号勿用周线数据) |
| 复权方式 | 统一前复权;分红除权日期精确对齐 |
| 事件时间戳 | 收盘后出信号 → 下一交易日开盘执行(避免未来函数) |
| 多档成本测试 | 零成本 / 保守 / 恶劣三档都要测 |
19.6 全量参数速查表(按策略)
| 策略 | 关键参数 | 常用默认 | 备注 |
|---|---|---|---|
| T1 双均线 | fast / slow / adx_filter | 5 / 20 / 20 | 震荡市加 ADX 过滤 |
| T2 唐奇安突破 | entry / exit / vol_filter | 20 / 10 / 1.2 | Turtle 经典配置 |
| T3 均线排列 | ma5 / ma10 / ma20 | 5/10/20 | 乖离阈值按 ATR 归一化 |
| T4 ADX 过滤 | period / threshold | 14 / 25 | 状态开关 |
| R1 2B | lookback / fail_bars | 20 / 3 | 需时间窗约束 |
| R2 RSI 背离 | period / 70 / 30 | 14 / 70 / 30 | 震荡环境更有效 |
| R3 头肩 | 颈线 / 量度目标 | — | 编码难、易过拟合 |
| R4 双顶/双底 | 容忍差 tolerance | 0.5% | 级别越大越可靠 |
| R5 K线反转 | 影线倍率 | 2× | 须配合支撑/超卖 |
| V1 布林带 | period / mult | 20 / 2.0 | 标准差口径要明确 |
| V2 ATR 止损 | atr_mult / risk | 2 / 1% | 仓位随波动自适应 |
| V3 带宽扩张 | k / lookback | 2 / 20 | 捕捉爆发段 |
| M1 MACD | 12 / 26 / 9 | 12/26/9 | 零轴过滤 |
| M2 斐波那契 | 0.382/0.5/0.618 | — | 自我实现区域 |
| Q1 放量突破 | vol_ratio | 1.5 | 回调应缩量 |
| Q2 量价背离 | lookback | 20 | 顶部/底部预警 |
| Q3 OBV | 累积规则 | — | 关注方向而非绝对值 |
| S1 配对交易 | train_window / entry_z / exit_z | 60 / 2.0 / 0.5 | 须 ADF 检验协整 |
| S2 z-score 回归 | window / entry_z / exit_z | 20 / 2 / 0.5 | 仅震荡市有效 |
| S3 Kalman 对冲 | obs_var / trans_var | 按波动标定 | 滚动自适应对冲比 |
| F1 动量 | lookback / skip / hold | 12M / 1M / 1M | 含动量崩溃风险 |
| F2 估值 | E/P, B/P 权重 | 等权合成 | 价值陷阱需质量过滤 |
| F3 质量/低波 | zscore 权重 | — | 防守型因子 |
| F4 多因子 | weight_mode / rebalance | IC 加权 / 月频 | 行业中性化 |
| TS1 ARIMA | p / d / q | AIC 自动 | 收益近随机游走 |
| TS2 GARCH | p / q | 1 / 1 | 波动预测强于方向 |
| ML2 GBDT | n_est / depth / lr | 300 / 4 / 0.05 | 时间序列切分防泄漏 |
| E1 PEAD | surprise / top_pct / hold | SUE / 20% / 60日 | 反应不足异象 |
| P1 均值-方差 | cov_window / target_vol | 60 / 10% | 需收缩估计 |
| P2 风险平价 | σ 估计窗口 | 60 | 无需收益预测 |
| P3 Kelly | kelly_fraction | 0.25 ~ 0.5 | 满 Kelly 回撤巨大 |
| T5 KDJ | n / k / d / 80 / 20 | 9 / 3 / 3 | A股短线常用 |
| T6 抛物线 SAR | af / af_max | 0.02 / 0.2 | 跟踪止损属性 |
| T7 %B / 带宽 | period / mult | 20 / 2.0 | 带宽压缩量化 |
| T8 Ichimoku | 9 / 26 / 52 | 日线经典 | 完整系统 |
| T9 VWAP | 日内累计 | — | 日内基准 |
| T10 ORB | range_minutes / buffer / rr | 15 / 0.05% / 1.5 | 日内突破,收盘强制平仓 |
| O1 IV Rank | window / low_th / high_th | 252 / 30 / 70 | 波动率买卖择时开关 |
| O2 买跨式 | dte / strike_mode | 30 / atm | IV 低位 + 事件窗口 |
| O3 卖跨式+Delta 对冲 | dte / delta_threshold | 30 / 0.10 | 收割 Theta/VRP,须趋势过滤 |
| O4 铁鹰 | dte / strike_loc / credit_ratio | 45 / ±1σ / 30% | 有限风险高胜率 |
| H1 UT Bot | atr_period / key_value | 10 / 1.0 | ATR 跟踪带翻转 |
| H2 HalfTrend | amplitude / channel_deviation | 2 / 2 | 通道平滑趋势 |
| H17 BbandRsi | bb / rsi_period / rsi_buy / rsi_sell | 20,2.0 / 14 / 30 / 70 | 触轨 + 超卖双确认 |
| H19 ADX+DMI | adx_period / adx_threshold | 14 / 25 | 方向 + 强度 |
| H21 Chandelier | n / mult | 22 / 3.0 | ATR 吊灯跟踪止损 |
| CR1 网格 | lower / upper / n_grids | 区间 / 10~50 | 震荡收割,需区间管理 |
| CR3 资金费率套利 | funding_threshold / hedge_ratio | 0.01% / 1.0 | delta 中性收资金费 |
| AR1 ETF 套利 | premium_threshold | 成本 + 缓冲 | 净值折溢价套利 |
| FT1 规模因子 | size_metric / rebalance | log(mktcap) / 月 | 小盘溢价(多空组合) |
文末提示:本文为方法论梳理,不构成投资建议。文中参数、阈值、判定标准均为经验参考,实盘务必以自身账户、品种与监管要求为准;任何回测结果都不能保证未来收益。
Part 5 全网热度最高策略全览(全市场 × 全风格)
本部分回答「全网热度最高的交易策略有哪些」。它不受任何具体实现系统(引擎能力、标的类型、交易制度)的限制,追求覆盖的全面与完整:从 A 股民间自媒体战法,到美股因子与事件驱动,到加密网格与资金费率套利,到期货 CTA、外汇套息、期权波动率与高频做市,逐类给出完整规格(热度依据 / 适用市场与周期 / 原理 / 参数 / 伪代码 / 出场止损 / 优缺点与失效条件 / 参考实现)。
20. 调研方法与热度来源
「热度」无法直接度量,本文用多源代理指标交叉验证,覆盖不同语言与人群,避免单一来源偏差:
| 来源类型 | 代表渠道 | 反映的热度 |
|---|---|---|
| 开源社区 | GitHub(freqtrade-strategies、NostalgiaForInfinity、awesome-quant、backtrader、ta-lib、je-suis-tm/quant-trading 等) | 被工程化复现的热度(Star / Fork) |
| 图表社区 | TradingView(脚本 / 榜单)、MQL5 市场、币安/OKX 策略广场 | 散户实际使用的指标与脚本热度 |
| 视频与社媒 | YouTube 交易频道、Bilibili、Reddit r/algotrading、Twitter/X 量化圈 | 话题讨论与教程热度 |
| 中文自媒体 | 抖音 / 视频号 / 公众号 / 知乎(打板、隔夜、龙头战法等) | 中文散户追捧的「民间战法」热度 |
| 机构与学术 | 券商研报、SSRN / NBER 论文、量化教材 | 被严肃验证的策略热度 |
20.1 三维分类
| 维度 | 取值 |
|---|---|
| 市场 | A 股 / 美股 / 港股 / 加密 / 商品期货 / 股指期货 / 外汇 / 期权 / 债券 / 跨市场 |
| 风格 | 趋势跟踪 / 均值回归 / 突破形态 / 量价 / 统计套利 / 因子 / 事件驱动 / 期权波动率 / 机器学习 / 高频做市 / 套息 / 民间战法 |
| 周期 | 高频(秒-分钟)/ 日内 / 波段(日-周)/ 中长线(周-月) |
20.2 热度分级
- 第一梯队(三源命中):开源 + 图表社区 + 教材/研报同时高频出现(如 Supertrend、MACD、RSI、布林带、双均线、海龟)。
- 第二梯队(单源爆款):某单一渠道爆红(如 TradingView 的 UT Bot / HalfTrend、freqtrade 的 NostalgiaForInfinity)。
- 民间高热(中文):自媒体传播极广、但学术验证薄弱(打板、隔夜、龙头战法)——本部分如实收录并标注风险。
21. 全网热度总榜
下表汇总全网热度最高的策略(约百项)。「规格」列指向本文详细规格或已有章节;「热度」列出主要来源(链接见 §33 与各规格条目)。
| 策略 | 热度来源 | 市场 | 风格 | 周期 | 规格 |
|---|---|---|---|---|---|
| 双均线交叉(MA/EMA Crossover) | 教材经典 / backtrader 示例 / 各榜单 | 全市场 | 趋势 | 波段 | §10.1 T1 |
| 唐奇安通道突破 | Donchian / 海龟体系 | 期货/加密 | 趋势 | 波段 | §10.1 T2 |
| 葛兰碧八大法则 | 经典教材 | 股票 | 趋势 | 中长线 | §10.1 T3 |
| ADX 趋势过滤 | Wilder / ta-lib | 全市场 | 趋势 | 波段 | §10.1 T4 |
| 海龟交易法则 | 经典 / 无数复现 | 期货/加密 | 趋势 | 波段 | §10.1 T11 |
| Supertrend | freqtrade 官方样例 / 各榜单常驻 | 全市场 | 趋势 | 波段 | §10.1 T12 |
| KDJ 随机指标 | 中文圈最常用指标 | A股/期货 | 反转 | 日内-波段 | §10.7 T5 |
| 抛物线 SAR | Wilder / 各榜单 | 全市场 | 趋势 | 日内-波段 | §10.7 T6 |
| 布林带 %B 与带宽 | Bollinger 经典 | 全市场 | 波动率 | 波段 | §10.7 T7 |
| 一目均衡表(Ichimoku) | 日本经典 / 各榜单常驻 | 外汇/加密 | 趋势 | 波段 | §10.7 T8 |
| VWAP 策略 | 机构执行 / 日内标配 | 股票/期货 | 量价 | 日内 | §10.7 T9 |
| 开盘区间突破 ORB | 日内经典 / 学术研究 | 股指/期货 | 突破 | 日内 | §10.7 T10 |
| 2B 假突破反转 | 经典形态 | 全市场 | 反转 | 波段 | §10.2 R1 |
| RSI 背离 | Wilder / 各榜单 | 全市场 | 反转 | 波段 | §10.2 R2 |
| 头肩顶/底 | 经典形态学 | 股票/期货 | 反转 | 波段-中长线 | §10.2 R3 |
| 双顶/双底 | 经典形态学 | 全市场 | 反转 | 波段 | §10.2 R4 |
| 吞没/锤头 K 线反转 | 蜡烛图经典 | 全市场 | 反转 | 日内-波段 | §10.2 R5 |
| 布林带均值回归 | Bollinger / 各榜单 | 全市场 | 均值回归 | 波段 | §10.3 V1 |
| ATR 动态止损与仓位 | 海龟 / 专业基金标准 | 全市场 | 风控 | 全周期 | §10.3 V2 |
| 带宽扩张突破 | 波动率经典 | 全市场 | 波动率 | 波段 | §10.3 V3 |
| Dual Thrust 区间突破 | 日内期货经典 | 期货/加密 | 突破 | 日内-波段 | §10.3 V4 |
| MACD 金叉死叉与背离 | Appel / 全网最广动量指标 | 全市场 | 动量 | 波段 | §10.5 M1 |
| 斐波那契回调与扩展 | 经典工具 | 全市场 | 形态 | 波段 | §10.5 M2 |
| 艾略特波浪 | 经典理论 | 全市场 | 形态 | 中长线 | §10.5 M3 |
| 放量突破 / 缩量回调 | 量价经典 / 中文圈 | A股/加密 | 量价 | 波段 | §10.6 Q1 |
| 量价背离 | 量价经典 | 全市场 | 量价 | 波段 | §10.6 Q2 |
| OBV 能量潮 | Granville / ta-lib | 股票 | 量价 | 波段-中长线 | §10.6 Q3 |
| IV Rank 隐含波动率排名 | 期权圈核心 | 期权 | 波动率 | 波段 | §10.8 O1 |
| 买入跨式 / 宽跨式 | 期权经典 | 期权 | 波动率 | 事件 | §10.8 O2 |
| 卖出跨式 + Delta 对冲 | 做市/波动率套利 | 期权 | 波动率 | 波段 | §10.8 O3 |
| 铁鹰 / 垂直价差 | 期权经典 | 期权 | 波动率 | 波段 | §10.8 O4 |
| UT Bot Alerts(ATR 跟踪) | TradingView 爆款脚本 | 加密/外汇 | 趋势 | 日内-波段 | §22 H1 |
| HalfTrend | TradingView 爆款 | 加密/外汇 | 趋势 | 日内-波段 | §22 H2 |
| Keltner 通道突破 | 经典 ATR 通道 | 全市场 | 趋势 | 波段 | §22 H3 |
| CCI 顺势指标 | Lambert 经典 | 期货/股票 | 反转/趋势 | 日内-波段 | §22 H4 |
| Williams %R | Larry Williams 经典 | 全市场 | 反转 | 日内-波段 | §22 H5 |
| Stoch RSI | TradingView 常用 | 全市场 | 反转 | 日内-波段 | §22 H6 |
| TRIX 三重指数平滑 | 经典中期动量 | 股票/期货 | 趋势 | 中长线 | §22 H7 |
| Aroon 阿隆指标 | Chande 经典 | 全市场 | 趋势 | 波段 | §22 H8 |
| Heikin-Ashi 平均足 | 日本经典 | 全市场 | 趋势 | 波段 | §22 H9 |
| Renko 砖形图 | 点数图流派 | 全市场 | 趋势 | 波段 | §22 H10 |
| Pivot Points 枢轴点 | 场内交易员经典 | 期货/外汇 | 日内 | 日内 | §22 H11 |
| Volume Profile / Market Profile | 拍卖市场理论 | 期货/加密 | 量价 | 日内-波段 | §22 H12 |
| 缺口回补(Gap Fill) | 经典统计现象 | 股票 | 均值回归 | 日内-波段 | §22 H13 |
| 季节性 / 日历效应 | 学术异象 | 商品/股票 | 统计 | 中长线 | §22 H14 |
| 三线反转 / 三重滤网 | Elder 经典 | 全市场 | 趋势 | 波段 | §22 H15 |
| 双推力 / 趋势加速 | TradingView 常用 | 加密/外汇 | 动量 | 日内 | §22 H16 |
| Bollinger + RSI(BbandRsi) | freqtrade 官方样例 | 加密 | 均值回归 | 波段 | §22 H17 |
| MACD + RSI 组合 | freqtrade / 社区 | 加密/股票 | 动量 | 波段 | §22 H18 |
| ADX + DI 趋势系统 | Wilder 完整体系 | 全市场 | 趋势 | 波段 | §22 H19 |
| SuperTrend + 多周期确认 | 社区改良 | 加密 | 趋势 | 波段 | §22 H20 |
| ATR 吊灯止损(Chandelier Exit) | LeBeau 经典 | 全市场 | 趋势/风控 | 波段 | §22 H21 |
| 动量/ROC 横截面轮动 | 学术 / 加密常用 | 股票/加密 | 动量 | 中长线 | §22 H22 |
| 三倍量大阳线战法 | 中文自媒体高热 | A股 | 量价/民间 | 波段 | §23 CN1 |
| 尾盘买入·早盘卖出(隔夜套利) | 中文自媒体高热(杨永兴流派) | A股 | 民间 | 隔夜 | §23 CN2 |
| 打板 / 首板战法 | 中文短线圈核心 | A股 | 民间/情绪 | 日内-隔夜 | §23 CN3 |
| 龙头战法 / 空间板 | 中文短线圈 | A股 | 民间 | 短线 | §23 CN4 |
| 连板接力 / 涨停基因 | 中文短线圈 | A股 | 民间 | 短线 | §23 CN5 |
| 半路 / 低吸打板 | 中文短线圈 | A股 | 民间 | 日内 | §23 CN6 |
| 龙虎榜跟随 | 中文短线圈 | A股 | 事件/资金流 | 短线 | §23 CN7 |
| 缠论(走势类型/背驰) | 中文圈极热 | A股/期货 | 形态 | 全周期 | §23 CN8 |
| 江恩理论(角度线/时间周期) | 经典理论 | 全市场 | 形态/周期 | 中长线 | §23 CN9 |
| 量学 / 量柱理论 | 中文圈 | A股 | 量价 | 短线-波段 | §23 CN10 |
| 涨停回踩 5 日线 | 中文圈 | A股 | 民间 | 短线 | §23 CN11 |
| T+0 做 T 降成本 | 中文圈 | A股 | 民间 | 日内 | §23 CN12 |
| 打新 / 可转债套利 | 中文圈 | A股 | 事件 | 事件 | §23 CN13 |
| 封单 / 盘口语言 | 中文短线圈 | A股 | 微观结构 | 日内 | §23 CN14 |
| 缺口 + 龙头首板套利 | 中文短线圈 | A股 | 民间 | 隔夜 | §23 CN15 |
| 均线回踩低吸(买阴不买阳) | 中文自媒体 | A股 | 趋势/民间 | 隔夜 | §23 CN16 |
| 趋势跟踪 + 金字塔加仓 | 经典资金管理 | 期货/加密 | 趋势 | 波段 | §23 CN17 |
| 海龟 ATR 分档加仓 | 海龟原版 | 期货 | 趋势/仓位 | 波段 | §23 CN18 |
| 网格交易(Grid) | CEX/外汇机器人普及 | 加密/外汇 | 均值回归 | 日内-波段 | §24 CR1 |
| 马丁格尔 / 反马丁 | 机器人常配 | 加密/外汇 | 资金管理 | 日内 | §24 CR2 |
| 资金费率套利 | 加密圈无风险套利 | 永续合约 | 套利/套息 | 持有 | §24 CR3 |
| 跨所搬砖 / 现货-合约对冲 | 加密圈 | 加密 | 套利 | 日内 | §24 CR4 |
| 三角套利 | 加密/外汇 | 加密/外汇 | 套利 | 高频 | §24 CR5 |
| DEX MEV / 三明治 | 链上套利热门 | DeFi | 套利/微观 | 高频 | §24 CR6 |
| 流动性挖矿 / 收益农场 | DeFi 热门 | DeFi | 套息 | 持有 | §24 CR7 |
| 跟单 / 带单交易 | CEX 热门功能 | 加密 | 跟随 | 全周期 | §24 CR8 |
| 链上指标(MVRV/SOPR/净流出) | 加密研究热门 | 加密 | 基本面/情绪 | 中长线 | §24 CR9 |
| 恐惧贪婪 / 资金情绪逆向 | 加密圈 | 加密 | 情绪 | 波段 | §24 CR10 |
| 减半 / 牛熊周期定投 | 加密圈 | 加密 | 周期/定投 | 中长线 | §24 CR11 |
| 期现套利(现货+空永续) | 加密圈 | 加密 | 套利 | 持有 | §24 CR12 |
| 跨期套利(近月/远月) | 期货经典 | 期货/加密 | 套利 | 持有 | §24 CR13 |
| 永续-交割基差套利 | 加密 | 加密 | 套利 | 持有 | §24 CR14 |
| 配对交易(协整) | 统计套利经典 | 股票/加密 | 套利 | 波段 | §11 S1 |
| z-score 均值回归 | 统计套利经典 | 股票/加密 | 均值回归 | 波段 | §11 S2 |
| Kalman 滤波动态对冲 | 进阶统计套利 | 股票 | 套利 | 波段 | §11 S3 |
| ETF / 指数套利 | 机构经典 | 股票/ETF | 套利 | 日内 | §25 AR1 |
| 跨市场统计套利 | 机构 | 跨市场 | 套利 | 波段 | §25 AR2 |
| 可转债套利 | 中文圈/机构 | A股转债 | 套利 | 事件 | §25 AR3 |
| 并购套利 / 风险套利 | 事件套利经典 | 股票 | 事件套利 | 事件 | §25 AR4 |
| 封闭式基金折价套利 | 经典 | 基金 | 套利 | 持有 | §25 AR5 |
| 期现基差套利(股指) | 经典 | 股指期货 | 套利 | 日内-持有 | §25 AR6 |
| 外汇套息(Carry) | 外汇经典 | 外汇 | 套息 | 中长线 | §25 AR7 |
| 三角外汇套利 | 外汇经典 | 外汇 | 套利 | 高频 | §25 AR8 |
| 横截面动量因子 | Fama-French / AQR | 股票 | 因子 | 中长线 | §12 F1 |
| 价值因子 | Fama-French | 股票 | 因子 | 中长线 | §12 F2 |
| 质量 / 低波因子 | 学术 | 股票 | 因子 | 中长线 | §12 F3 |
| 多因子合成(IC/IR 加权) | 机构主流 | 股票 | 因子 | 中长线 | §12 F4 |
| 规模因子(小盘) | Fama-French | 股票 | 因子 | 中长线 | §26 FT1 |
| 成长因子 | 学术 | 股票 | 因子 | 中长线 | §26 FT2 |
| 股息率因子 | 学术/红利策略 | 股票 | 因子 | 中长线 | §26 FT3 |
| 波动率因子(低波异象) | 学术 | 股票 | 因子 | 中长线 | §26 FT4 |
| 行业轮动 | 中文圈/机构 | 股票 | 轮动 | 中长线 | §26 FT5 |
| 风格轮动(大小盘/价值成长) | 机构 | 股票 | 轮动 | 中长线 | §26 FT6 |
| ESG 因子 | 近年热门 | 股票 | 因子 | 中长线 | §26 FT7 |
| 期权隐含因子 / 偏度 | 进阶 | 股票/期权 | 因子 | 中长线 | §26 FT8 |
| 财报漂移 PEAD | 学术经典 | 股票 | 事件 | 事件 | §15 E1 |
| 公告事件 CAR 分析 | 学术 | 股票 | 事件 | 事件 | §15 E2 |
| 新闻情绪 NLP | 近年热门 | 股票/加密 | 事件/NLP | 日内-波段 | §15 E3 |
| 指数纳入 / 剔除 | 经典事件 | 股票 | 事件 | 事件 | §27 ED1 |
| 期权到期日效应(OpEx) | 美股圈 | 股票/期权 | 事件 | 事件 | §27 ED2 |
| 分红除权套利 | 经典 | 股票 | 事件 | 事件 | §27 ED3 |
| 宏观数据发布交易 | 外汇/期货 | 外汇/期货 | 事件 | 日内 | §27 ED4 |
| 财报超预期(SUE) | 学术 | 股票 | 事件 | 事件 | §27 ED5 |
| 供股/增发事件 | 经典 | 股票 | 事件 | 事件 | §27 ED6 |
| VRP 方差风险溢价 | 学术/期权 | 期权 | 波动率 | 中长线 | §28 OP1 |
| Gamma Scalping | 期权做市 | 期权 | 波动率 | 日内 | §28 OP2 |
| 日历价差 | 期权经典 | 期权 | 波动率 | 波段 | §28 OP3 |
| 蝶式 / 鹰式 | 期权经典 | 期权 | 波动率 | 波段 | §28 OP4 |
| 0DTE 末日轮 | 美股近年爆火 | 期权 | 波动率 | 日内 | §28 OP5 |
| Covered Call / 现金担保认沽 | 稳健收益流 | 股票/期权 | 收益增强 | 中长线 | §28 OP6 |
| 波动率期限结构套利 | 进阶 | 期权 | 波动率 | 波段 | §28 OP7 |
| 偏度 / 尾部对冲 | 机构 | 期权 | 波动率 | 中长线 | §28 OP8 |
| XGBoost/LightGBM 信号 | Kaggle/机构热门 | 全市场 | ML | 全周期 | §14 ML2 |
| LSTM / Transformer 时序 | 学术热门 | 全市场 | ML | 全周期 | §14 ML3 |
| 强化学习交易 Agent | 研究热门 | 全市场 | ML/RL | 全周期 | §14 ML4 |
| 特征工程 / 因子挖掘 | Kaggle/机构 | 全市场 | ML | 全周期 | §14 ML1 |
| 遗传规划符号回归 | 研究 | 全市场 | ML | 全周期 | §29 ML5 |
| 聚类/隐马尔可夫状态识别 | 研究 | 全市场 | ML | 全周期 | §29 ML6 |
| 做市(Market Making) | HFT 核心 | 全市场 | 做市 | 高频 | §30 HX1 |
| 订单流不平衡 / 微观结构 | HFT | 期货/加密 | 微观结构 | 高频 | §30 HX2 |
| VPIN 毒性订单流 | 学术/HFT | 期货 | 微观结构 | 高频 | §30 HX3 |
| 延迟套利 / 抢跑 | HFT | 全市场 | 微观结构 | 高频 | §30 HX4 |
| TWAP / VWAP 算法执行 | 机构执行 | 全市场 | 执行 | 日内 | §17 X2 |
| 冰山 / 隐藏单 | 机构执行 | 全市场 | 执行 | 日内 | §30 HX5 |
| 统计套利 HFT(均值回归) | HFT | 股票/期货 | 套利 | 高频 | §30 HX6 |
22. 技术分析热门补全(H1-H22)
Part 2 已覆盖大量技术指标,本节补齐全网图表社区(TradingView / MQL5)与 freqtrade 社区中最常被复现、但前文未收录的指标策略。所有条目与 Part 2 同规格,且不依赖具体实现系统。
策略 H1:UT Bot Alerts(ATR 跟踪带)
热度:TradingView 长期爆款脚本,加密与外汇圈引用极广(TradingView 脚本库)。
适用:加密 / 外汇 / 期货 · 5m-4h · 趋势跟踪。
| 参数 | 默认 | 推荐 | 说明 |
|---|---|---|---|
| atr_period | 10 | 7 ~ 14 | ATR 周期 |
| key_value | 1.0 | 0.5 ~ 3.0 | 敏感系数:带距 = key × ATR |
atr = wilder_atr(bars, atr_period) stop = close[-1] - key_value * atr[-1] # 动态跟踪止损(做多) # 价格上穿跟踪带 → 翻多;下穿 → 翻空;跟踪带随趋势方向单向收紧 long_enter = close[-1] > nLoss_prev and dir != 'long' short_enter = close[-1] < nLoss_prev and dir != 'short'
出场/止损:无独立止损——ATR 跟踪带被反向穿越即翻向反手。
优缺点与失效:自适应波动、翻转及时;震荡市频繁翻向;key_value 越小越灵敏、噪声越大。
参考实现:TradingView UT Bot Alerts(QuantNomad);freqtrade-strategies 社区移植版。
策略 H2:HalfTrend
热度:TradingView 爆款趋势脚本,中文圈称「半趋势」。
适用:加密 / 外汇 · 15m-4h · 趋势。
| 参数 | 默认 | 推荐 | 说明 |
|---|---|---|---|
| amplitude | 2 | 1 ~ 5 | 高低点回看幅度 |
| channel_deviation | 2 | 1 ~ 3 | ATR 通道偏离倍数 |
high_ma = sma(high, amplitude); low_ma = sma(low, amplitude) high_band = high_ma + channel_deviation * atr low_band = low_ma - channel_deviation * atr # 价格突破通道 → 翻向;否则维持趋势方向与趋势线 long_enter = close[-1] > high_band[-1] and trend == 'down' short_enter = close[-1] < low_band[-1] and trend == 'up'
出场/止损:趋势线(HalfTrend 线)跟踪;反向突破反手。
优缺点与失效:比 Supertrend 更平滑、翻转少;趋势末端滞后。
参考实现:TradingView HalfTrend(Everget)。
策略 H3:Keltner 通道突破
热度:经典 ATR 通道,TradingView / 教材高频(Wikipedia)。
适用:全市场 · 1h-1d · 趋势。
| 参数 | 默认 | 推荐 | 说明 |
|---|---|---|---|
| ema_period | 20 | 20 ~ 50 | 中轨 EMA |
| atr_period | 10 | 10 ~ 20 | ATR 周期 |
| mult | 2.0 | 1.5 ~ 3.0 | 通道倍数 |
mid = ema(close, ema_period) upper = mid + mult * atr(atr_period); lower = mid - mult * atr(atr_period) long_enter = close[-1] > upper[-1] short_enter = close[-1] < lower[-1] long_exit = close[-1] < mid[-1] # 跌破中轨离场
优缺点与失效:ATR 通道比布林带更抗噪;箱体震荡窄幅时反复假突破,需 ADX 过滤。
参考实现:mrjbq7/ta-lib(ATR/EMA);backtrader 官方示例。
策略 H4:CCI 顺势指标
热度:Lambert 经典,期货与股票常用。
适用:期货 / 股票 · 日内-日线。
tp = (high + low + close) / 3 cci = (tp - sma(tp, n)) / (0.015 * mean_deviation(tp, n)) long_enter = cci[-1] > 100 and cci[-2] <= 100 short_enter = cci[-1] < -100 and cci[-2] >= -100
参数:n=20(14~40)。进出场:上穿 +100 做多、下穿 -100 做空;回到 0 轴离场或反向。
优缺点与失效:把价格偏离标准化,适合区间与趋势两态;极端单边行情会持续钝化在 ±100 外侧。
参考实现:ta-lib CCI。
策略 H5:Williams %R
热度:Larry Williams 经典摆动指标。
适用:全市场 · 日内-日线 · 反转。
wr = -100 * (highest(high, n) - close) / (highest(high, n) - lowest(low, n)) long_enter = wr[-1] < -80 and wr[-2] >= -80 # 从超卖回升 short_enter = wr[-1] > -20 and wr[-2] <= -20 # 从超买回落
参数:n=14。优缺点与失效:反应快、信号多;与 KDJ/RSI 高度相关,趋势市钝化。
参考实现:ta-lib WILLR。
策略 H6:Stoch RSI
热度:TradingView 高频使用,加密圈标配。
适用:加密 / 外汇 · 15m-4h · 反转。
rsi = rsi(close, rsi_period) stoch = (rsi - lowest(rsi, stoch_period)) / (highest(rsi, stoch_period) - lowest(rsi, stoch_period)) k = sma(stoch, 3); d = sma(k, 3) long_enter = k[-1] > d[-1] and k[-2] <= d[-2] and k[-1] < 0.2 short_enter = k[-1] < d[-1] and k[-2] >= d[-2] and k[-1] > 0.8
参数:rsi_period=14、stoch_period=14、K/D 平滑 3。优缺点与失效:比 RSI 更敏感,假信号更多;须配合趋势过滤。
参考实现:TradingView;ta-lib STOCHRSI。
策略 H7:TRIX 三重指数平滑
热度:经典中期动量,机构与股票投资者常用。
适用:股票 / 期货 · 日线-周线 · 趋势。
ema1 = ema(close, n); ema2 = ema(ema1, n); ema3 = ema(ema2, n) trix = (ema3[-1] - ema3[-2]) / ema3[-2] long_enter = trix[-1] > 0 and trix[-2] <= 0 short_enter = trix[-1] < 0 and trix[-2] >= 0
参数:n=15。优缺点与失效:三重平滑去除噪声,信号滞后明显;适合中长线。
参考实现:ta-lib TRIX。
策略 H8:Aroon 阿隆指标
热度:Chande 经典趋势新低/新高时间指标。
适用:全市场 · 日线 · 趋势。
aroon_up = 100 * (n - bars_since_highest(high, n)) / n aroon_down = 100 * (n - bars_since_lowest(low, n)) / n long_enter = aroon_up[-1] > 70 and aroon_down[-1] < 30 short_enter = aroon_down[-1] > 70 and aroon_up[-1] < 30
参数:n=25。优缺点与失效:衡量「新高/新低有多近」,可判趋势启动;震荡市两线纠缠无信号。
参考实现:ta-lib AROON。
策略 H9:Heikin-Ashi 平均足
热度:日本经典,趋势平滑直观。
适用:全市场 · 波段 · 趋势。
ha_close = (open + high + low + close) / 4 ha_open = (ha_open[-1] + ha_close[-1]) / 2 ha_high = max(high, ha_open, ha_close); ha_low = min(low, ha_open, ha_close) long_enter = ha_close[-1] > ha_open[-1] and ha_close[-2] > ha_open[-2] # 连续阳线 short_enter = ha_close[-1] < ha_open[-1] and ha_close[-2] < ha_open[-2]
优缺点与失效:过滤噪声、趋势清晰;本质是平滑,滞后且不能反映真实价格,须回真实价格下单。
参考实现:TradingView / ta-lib 社区实现。
策略 H10:Renko 砖形图
热度:点数图/砖形图流派,去除时间维、只留价格。
适用:全市场 · 波动自适应 · 趋势。
brick = atr(14)[-1] * brick_mult # 砖块大小(固定或 ATR 自适应) # 价格每上涨一个 brick 画新砖;砖色翻转 → 趋势反转 long_enter = close[-1] > last_brick_top + brick short_enter = close[-1] < last_brick_bottom - brick
优缺点与失效:有效过滤时间噪声,趋势信号干净;砖块大小敏感、回测需按价格序列重建砖块。
参考实现:TradingView Renko;backtrader Renko 数据源。
策略 H11:Pivot Points 枢轴点
热度:场内交易员经典,外汇/期货日内标配。
适用:期货 / 外汇 · 日内。
pivot = (high[-2] + low[-2] + close[-2]) / 3 r1 = 2*pivot - low[-2]; s1 = 2*pivot - high[-2] r2 = pivot + (high[-2] - low[-2]); s2 = pivot - (high[-2] - low[-2]) long_enter = close[-1] > pivot and close[-2] <= pivot short_enter = close[-1] < pivot and close[-2] >= pivot
优缺点与失效:日内支撑阻力参考明确;开盘跳空会失效,需结合前一日数据口径。
参考实现:TradingView Pivot Points;ta-lib 无内置需自算。
策略 H12:Volume Profile / Market Profile
热度:拍卖市场理论,期货与加密合约常用。
适用:期货 / 加密 · 日内-波段 · 量价。
# 把成交量按价格分桶,找高成交密集区(价值区 VAL/VAH)与 POC poc = argmax_price_bucket(volume_profile) value_area = [val, vah] # 覆盖 70% 成交量的价格区间 long_enter = close[-1] > vah and in_uptrend # 突破价值区上沿 short_enter = close[-1] < val and in_downtrend
优缺点与失效:把「量能分布」映射到价格,支撑阻力有统计意义;需逐笔或分钟数据构建、数据成本高。
参考实现:TradingView Volume Profile;je-suis-tm/quant-trading 量价脚本。
策略 H13:缺口回补(Gap Fill)
热度:经典统计现象,「缺口必补」流传甚广。
适用:股票 · 日线 · 均值回归。
gap_up = low[0] > high[-1] # 今日最低 > 昨日最高 gap_down = high[0] < low[-1] long_enter = gap_down and close[-1] > open[-1] # 低开高走补缺口 short_enter = gap_up and close[-1] < open[-1]
优缺点与失效:普通缺口回补概率较高;突破缺口/除权缺口不回补,A 股除权需复权处理。
参考实现:见 je-suis-tm/quant-trading 量价脚本。
策略 H14:季节性 / 日历效应
热度:学术异象(Sell in May、月末效应、节前效应)。
适用:商品 / 股票指数 · 日线-月线 · 统计。
# 统计历史上某月份/星期/月末的超额收益,构造日历哑变量 expected = mean_return_by_calendar(month=11, day_of_month=range(25,32)) long_enter = today_is_seasonal_window and expected > threshold
优缺点与失效:样本内显著、样本外易消失;跨市场不通用,需滚动验证。
参考实现:je-suis-tm/quant-trading(seasonality 脚本)。
策略 H15:三重滤网(Triple Screen)
热度:Elder 经典多周期系统。
适用:全市场 · 周线定方向 + 日线择时 · 趋势。
trend = ema(close_daily, 13) slopes up on weekly # 第一层:周期方向 osc = macd_hist or rsi oversold # 第二层:回调极值 trigger = price breaks prior bar high # 第三层:入场触发 long_enter = weekly_up and osc_oversold and trigger
优缺点与失效:多周期共振降低逆势概率;实现需多周期数据对齐,复杂且滞后。
参考实现:je-suis-tm/quant-trading;Elder《Trading for a Living》。
策略 H16:双推力 / 趋势加速(Squeeze Momentum 思路)
热度:TradingView「Squeeze Momentum」高热。
适用:加密 / 外汇 · 15m-4h · 动量突破。
squeeze_on = bollinger_width < keltner_width # 波动收缩 momentum = linreg(close - avg(bb_mid, kc_mid), n) long_enter = not squeeze_on and momentum[-1] > 0 and squeeze_was_on short_enter = not squeeze_on and momentum[-1] < 0 and squeeze_was_on
优缺点与失效:捕捉「收缩后爆发」;假突破与滑点成本高。
参考实现:TradingView LazyBear Squeeze Momentum。
策略 H17:Bollinger + RSI(BbandRsi)
热度:freqtrade-strategies 官方样例。
适用:加密 · 5m-1h · 均值回归。
long_enter = close[-1] < bb_lower and rsi[-1] < rsi_buy # 触下轨且超卖 short_enter = close[-1] > bb_upper and rsi[-1] > rsi_sell long_exit = close[-1] > bb_mid # 回中轨
参数:bb=(20,2.0)、rsi_period=14、rsi_buy=30、rsi_sell=70。优缺点与失效:双重确认降低假信号;单边趋势中逆势接刀,须硬止损。
参考实现:freqtrade-strategies/user_data/strategies/berlinguyinca/BbandRsi.py。
策略 H18:MACD + RSI 组合
热度:freqtrade 社区与教程高频组合。
适用:加密 / 股票 · 1h-4h · 动量。
long_enter = macd_hist[-1] > 0 and macd_hist[-2] <= 0 and rsi[-1] > 50 short_enter = macd_hist[-1] < 0 and macd_hist[-2] >= 0 and rsi[-1] < 50
优缺点与失效:动量方向 + 相对强弱过滤;指标同源、相关性高,震荡市仍会反复。
参考实现:freqtrade-strategies(MACDStrategy 系列)。
策略 H19:ADX + DI 完整趋势系统
热度:Wilder 原始完整体系,海龟后经典。
适用:全市场 · 1h-1d · 趋势。
plus_di, minus_di, adx = calc_dmi(bars, 14) long_enter = plus_di[-1] > minus_di[-1] and adx[-1] > 25 short_enter = minus_di[-1] > plus_di[-1] and adx[-1] > 25 long_exit = adx[-1] < 20 or plus_di[-1] < minus_di[-1]
优缺点与失效:方向 + 强度一体;ADX 滞后、盘整末期易假信号。
参考实现:ta-lib ADX/DMI。
策略 H20:SuperTrend + 多周期确认
热度:freqtrade 社区对 Supertrend 的主流改良。
适用:加密 · 15m 入场 + 4h 确认 · 趋势。
st_fast = supertrend(bars_15m); st_slow = supertrend(bars_4h) long_enter = st_fast.dir == 'long' and st_slow.dir == 'long' short_enter = st_fast.dir == 'short' and st_slow.dir == 'short'
优缺点与失效:高周期过滤低周期假翻转;加入滞后、错过部分行情。
参考实现:freqtrade-strategies(FSupertrendStrategy)。
策略 H21:ATR 吊灯止损(Chandelier Exit)
热度:LeBeau 经典跟踪止损,趋势系统标配。
适用:全市场 · 波段 · 风控。
long_stop = highest(high, n) - mult * atr(n) # 多头吊灯线 short_stop = lowest(low, n) + mult * atr(n) long_exit = close[-1] < long_stop[-1]
参数:n=22、mult=3.0。优缺点与失效:让利润奔跑同时锁回撤;参数敏感,宽止损回撤大、窄止损频繁被扫。
参考实现:je-suis-tm/quant-trading。
策略 H22:动量/ROC 横截面轮动
热度:学术动量异象 + 加密圈轮动常用。
适用:股票池 / 加密池 · 周线-月线 · 动量。
roc = close[-1] / close[-lookback] - 1 rank = cross_sectional_rank(roc) long_basket = top_n(rank) # 做多动量最强,做空最弱(多空组合)
参数:lookback=90~252、持有 1 月、top 10~20%。优缺点与失效:长期有效、容量大;动量崩溃(转折点)回撤剧烈。
参考实现:awesome-quant;AQR 动量研究。
23. 民间与自媒体战法(CN1-CN18)
战法 CN1:三倍量大阳线战法
热度:中文自媒体高热(「5 万滚到 254 万」类话术);见产品部《搜集全球全网最牛逼的策略》整理。
适用:A 股 · 日线 · 量价/波段。
# 第一步:收盘后选出「今日成交量 ≥ 昨日 3 倍且收阳」的票 cand = [s for s in market if vol[s] >= 3 * vol_prev[s] and close > open] # 第二步:以该大阳线收盘价画水平线 key key = close_of_signal # 第三步:等待缩量回调后重新站上 key long_enter = pullback_shrink_volume and close[-1] > key
出场/止损:跌破 key 或跌破大阳线开盘价止损;冲高放量滞涨止盈。
优缺点与失效:逻辑(量在价先)可解释;横截面全市场选股、需逐票跟踪,样本外胜率不稳定,小盘股易被操纵。
战法 CN2:尾盘买入·早盘卖出(隔夜套利)
热度:中文自媒体高热(「杨永兴隔夜套利」「尾盘定型期」)。
适用:A 股 · 隔夜 · 民间。
# 14:30-15:00 选股,八步过滤:
# 涨幅 3%~5%;近 20 日有涨停(涨停基因);量比>1;换手 15%~20%;
# 总市值 50~200 亿;全天站分时均价线上;走势强于大盘;
# 创新高后回踩分时均价线不破 → 尾盘买入
long_enter = in_window(14,30,15,0) and 0.03 <= pct <= 0.05 and had_limit_up_20d \
and turnover in [0.15, 0.20] and 5e9 <= mktcap <= 2e11 \
and price_above_vwap and pullback_hold_vwap
# 次日早盘无条件清仓(除非缩量/一字涨停)
exit = next_day_open_or_10am # 冲高 1.5%~2% 或跌破分时均价线即走
风险:隔夜黑天鹅、尾盘诱多、T+1 无法当日卖出;胜率依赖市场情绪周期,连续低开则连续止损。
备注:原始战绩来自 2007 牛市环境,量化资金占比提升后历史胜率难以复刻。
战法 CN3:打板 / 首板战法
热度:中文短线圈核心方法。
适用:A 股 · 日内-隔夜 · 情绪。
# 盘中涨停瞬间排队买入(打板),追求次日溢价
# 提高封板率:避开 9:50 前直接猛拉的早板;优选 9:50 后资金合力拉板
long_enter = price == limit_price and board_time > auction_window \
and seal_strength(封单量/流通盘) > threshold
exit = next_day_open # 竞价/开盘按溢价决定去留
风险:炸板即深套、流动性差、极依赖盘口与情绪;无法用纯日线数据复现,量化建模需 Level-2 逐笔与封单数据。
战法 CN4:龙头战法 / 空间板
热度:中文短线圈(「只做龙头」)。
适用:A 股 · 短线 · 情绪。
# 龙头 = 板块内最先涨停、连板高度最高、辨识度最强者 lead = argmax(board_height, board_frequency, turnover) within sector long_enter = lead is first_board or breaks_highest_board_on_strength exit = 断板 / 跌破 5 日线 / 情绪退潮
风险:龙头切换快、接力失败率极高;本质是情绪博弈,非可稳定复制的统计优势。
战法 CN5:连板接力 / 涨停基因
热度:中文短线圈。
适用:A 股 · 短线 · 情绪。
# 近 10 日 2 连板或近 90 日 4 连板的「人气股 / 高标股」 watchlist = [s for s in market if boards_10d(s) >= 2 or boards_90d(s) >= 4] long_enter = watchlist and first_board_today and volume_confirms
风险:高标股波动极大,退潮期连续跌停;需严格仓位与情绪指标配合。
战法 CN6:半路 / 低吸打板
热度:中文短线圈。
适用:A 股 · 日内。
# 半路:在冲板途中(未封板)买入,赌当日封板;低吸:回调到支撑再买 halfway_enter = intraday_breakout and volume_expanding and not_yet_limit dip_enter = pullback_to_support and board_intent_intact
风险:需分时与盘口数据;炸板/回封失败风险高。
战法 CN7:龙虎榜跟随
热度:中文短线圈(跟随知名游资席位)。
适用:A 股 · 短线 · 事件/资金流。
# 收盘后查看龙虎榜,统计「知名营业部」净买入,次日跟随 hot_seats = known_youzi_seats_from_history long_enter = seat_net_buy_today in hot_seats and board_strength_ok exit = 次日冲高 / 跌破前收
风险:席位可对倒、信息公开滞后;跟随效应近年衰减。
战法 CN8:缠论(走势类型 / 背驰)
热度:中文圈极热,B 站/知乎教程海量。
适用:A 股 / 期货 · 全周期 · 形态。
# 核心:笔→线段→中枢→走势类型;买卖点 = 趋势背驰 / 盘整背驰 # 第一类买点:下跌趋势中出现底背驰(MACD 面积/力度缩小) buy1 = down_trend and bottom_divergence(macd_area) buy2 = first_pullback_not_new_low_after_buy1
优缺点与失效:给出了结构化的走势分解框架;但「分笔/分中枢」主观性强、多解,机械编码困难,易过拟合。
备注:缠中说禅《缠论》;市面实现多为半自动辅助。
战法 CN9:江恩理论(角度线 / 时间周期)
热度:经典理论,中文圈与外汇圈长盛。
适用:全市场 · 中长线 · 形态/周期。
# 价格=时间:1x1、1x2 等角度线;关键时间窗(节气/周年前后)易变盘 support = gann_angle_from_pivot(slope=1) turn_window = bars_since_pivot in gann_time_cycles long_enter = price_holds_gann_angle and in_time_window
优缺点与失效:提供价格-时间对称视角;极其主观、事后归因明显,难机械回测。
战法 CN10:量学 / 量柱理论
热度:中文圈(「量柱必先于价柱」)。
适用:A 股 · 短线-波段 · 量价。
# 通过「倍量柱、缩量柱、梯量柱」判断主力吸筹/出货 accumulation = low_position and volume_shrinking_pattern and no_price_breakdown long_enter = breakout_with_volume after accumulation
风险:概念丰富但定义模糊,缺少统计验证。
战法 CN11:涨停回踩 5 日线
热度:中文圈常用。
适用:A 股 · 短线。
long_enter = had_limit_up_recently and close[-1] near ma5 and ma5 rising and pullback_shrink_volume exit = break ma5 / 冲高
风险:强势股回踩可延续,也可能直接补跌;需大盘与情绪配合。
战法 CN12:T+0 做 T 降成本
热度:中文圈(底仓不动,日内高抛低吸)。
适用:A 股(有底仓)· 日内。
# 已有底仓,日内用部分仓位做 T:低点买回、高点卖出等价,降低持仓成本 buy_t = intraday_dip_signal and holding_position sell_t = intraday_spike_signal and t_position_open
风险:做反会抬高成本;对择时与交易成本要求高。
战法 CN13:打新 / 可转债套利
热度:中文圈低风险偏好者广泛参与。
适用:A 股 / 转债 · 事件。
# 打新:申购新股价差;转债:低价债 + 正股博弈、折溢价套利 subscribe_ipo = eligible_account and ipo_window convertible_arb = bond_price < conversion_value * (1 - discount)
风险:中签率低、破发风险;转债有强赎与信用风险。
战法 CN14:封单 / 盘口语言
热度:中文短线圈。
适用:A 股 · 日内 · 微观结构。
# 封单量、封单撤单、买一卖一挂单变化判断主力意图 strong_seal = seal_volume / float_share > threshold and seal_not_waning long_enter = limit_up and strong_seal
风险:需 Level-2 逐笔数据;封单可虚假、可瞬间撤单。
战法 CN15:缺口 + 龙头首板套利
热度:中文短线圈。
适用:A 股 · 隔夜。
long_enter = gap_up_after_first_board and sector_hot and auction_strong exit = next_day_gap_or_10am
风险:情绪退潮时缺口不补反杀。
战法 CN16:均线回踩低吸(买阴不买阳)
热度:中文自媒体(「买阴富三代,买阳穷三代」)。
适用:A 股 · 隔夜 · 趋势/民间。
# 14:30 后选股:缩量阴线回踩向上翘头的 10 日均线,前期有过放量大阳线
long_enter = yin_candle and shrink_volume and near_ma10 and ma10_slope > 0 \
and had_volume_big_bull_before
exit = next_day: 低开破 MA10 止损;10:00 冲高 1.5%~2% 止盈
风险:大盘系统风险、假回踩诱多、连续止损、成交量失真。
战法 CN17:趋势跟踪 + 金字塔加仓
热度:经典资金管理,趋势系统常用。
适用:期货 / 加密 · 波段 · 趋势/仓位。
# 浮盈后按间隔加仓,每次加仓量递减(金字塔),整体止损上移
if in_position and unrealized_pnl > add_interval and units < max_units:
add_position(size = base_size * decay ** units)
stop = avg_entry - atr * mult # 止损上移
优缺点与失效:盈利加仓放大趋势利润;加仓后回撤加大,需严格移动止损。
参考实现:海龟原版;je-suis-tm/quant-trading。
战法 CN18:海龟 ATR 分档加仓(原版)
热度:海龟交易法则原版仓位规则。
适用:期货 · 波段 · 趋势/仓位。
unit = (equity * risk_pct) / (atr * point_value) # 1 个单位 add_every = 0.5 * atr # 每盈利 0.5 ATR 加一档 max_units = 4 stop = entry - 2 * atr # 初始止损;加仓后上移
优缺点与失效:以波动率定义风险与加仓节奏,是系统化交易的里程碑;单市场滞后、连续加仓遇反转回撤大,需全市场分散。
参考实现:《The Complete TurtleTrader》;backtrader 示例。
24. 加密特有策略(CR1-CR14)
加密市场(现货 + 永续 + DeFi)的独特结构(7×24 交易、永续资金费率、跨所价差、链上透明、无涨跌停)催生了一批传统市场没有或不主流的策略。本节收录其热门代表,均给出可编码规格。
策略 CR1:网格交易(Grid Trading)
热度:CEX 机器人(币安/OKX)与外汇 EA 普及度极高。
适用:加密 / 外汇 · 震荡 · 均值回归。
# 在 [lower, upper] 区间均匀挂 N 档买卖单,价格每下穿一档买入、上穿一档卖出
grids = linspace(lower, upper, n)
for level in grids:
place_limit_buy(level) if price crosses down else place_limit_sell(level)
# 区间外:突破则停止网格 / 重新设区间(避免单边被套)
优缺点与失效:震荡市稳定收割波动;单边趋势中逆势累积浮亏(需仓位与区间管理),是「卖出波动率」的现货变体。
参考实现:freqtrade;币安网格机器人。
策略 CR2:马丁格尔 / 反马丁格尔
热度:交易机器人常配资金管理。
适用:加密 / 外汇 · 日内 · 资金管理。
# 马丁:亏损后加倍下注;反马丁:盈利后加倍(截断亏损、让利润奔跑) if last_trade_loss: size *= martingale_mult # 马丁(危险) if last_trade_win: size *= antimartingale_mult # 反马丁(更稳健)
优缺点与失效:马丁在震荡中回本快,但一次极端单边即爆仓(长期负期望);反马丁风险可控但需正期望信号支撑。
参考实现:freqtrade 仓位自定义;各类网格/马丁 EA。
策略 CR3:资金费率套利
热度:加密圈公认低风险套利。
适用:永续合约 · 持有 · 套息。
# 永续资金费为正:做多现货 + 做空等量永续,收取资金费(delta 中性)
if funding_rate > 0:
long_spot(q); short_perp(q) # 每隔资金费周期收一次
if funding_rate < 0:
short_spot(q); long_perp(q)
优缺点与失效:市场中性、收益稳定(年化随行情波动);需管理保证金、爆仓风险与资金费率转负,交易成本与借币成本侵蚀收益。
参考实现:awesome-quant 加密套利条目。
策略 CR4:跨所搬砖 / 现货-合约对冲
热度:加密圈普及。
适用:加密 · 日内 · 套利。
spread = price_exchange_B - price_exchange_A if spread > cost_threshold: buy_A_and_sell_B(spread) # 同步双腿 # 或现货-合约对冲:同一标的两市场反向持仓,赌价差收敛
优缺点与失效:逻辑直观;提币/转账延迟、滑点、两腿成交不同步与交易所风险是主要失效来源。
策略 CR5:三角套利
热度:加密 / 外汇经典。
适用:加密 / 外汇 · 高频 · 套利。
# A/B、B/C、C/A 三个市场,检验环形汇率是否偏离 1 implied = (A/B) * (B/C) * (C/A) if implied > 1 + fee: 按路径循环下单套利;if implied < 1 - fee: 反向
优缺点与失效:市场中性、无需方向判断;机会转瞬即逝、被 HFT 抢占,需低延迟与低费率。
策略 CR6:DEX MEV / 三明治
热度:链上套利最热话题之一。
适用:DeFi · 高频 · 微观结构。
# 监控内存池待成交大单,抢先买入 + 大单后卖出(三明治),或清算/回撤套利
if pending_swap_size > threshold and slippage_tolerance > threshold:
front_run_buy(); back_run_sell()
风险:Gas 竞价战、失败交易损失 Gas、MEV 被 Flashbots 私有化通道挤压;涉及链上伦理与合规争议。
策略 CR7:流动性挖矿 / 收益农场
热度:DeFi 热门。
适用:DeFi · 持有 · 套息。
# 向 AMM 池提供流动性赚手续费 + 代币激励;关注无常损失(IL)与 APY net_apy = fee_apy + reward_apy - impermanent_loss_drag if net_apy > risk_free + risk_premium: provide_liquidity()
风险:无常损失、智能合约漏洞、代币激励贬值、Rug Pull。
策略 CR8:跟单 / 带单交易
热度:CEX 社交交易爆款功能。
适用:加密 · 全周期 · 跟随。
# 选择历史夏普高、回撤可控、风格稳定的带单员,按比例镜像其仓位 leader = rank_traders(sharpe, max_dd, consistency) follow(leader, size_ratio)
风险:幸存者偏差、带单员风格漂移、黑天鹅与滑点不同步;跟单≠稳赚。
策略 CR9:链上指标(MVRV / SOPR / 交易所净流出)
热度:加密研究(Glassnode/CryptoQuant)热门。
适用:加密 · 中长线 · 基本面/情绪。
# MVRV = 市值 / 已实现市值,低位<1 累积、高位>3.5 减仓 # SOPR:花费产出利润率,<1 恐慌、持续>1 复苏;净流出交易所 = 囤币 if MVRV < 1.0: accumulate() if MVRV > 3.5: distribute()
优缺点与失效:宏观择时有效;数据滞后、链上口径多样,不能精确择时。
策略 CR10:恐惧贪婪 / 资金情绪逆向
热度:加密圈。
适用:加密 · 波段 · 情绪。
fg = fear_greed_index # 0-100 long_enter = fg < 15 # 极度恐惧逆向做多 short_enter = fg > 85 # 极度贪婪逆向做空
优缺点与失效:逆向思维有行为金融依据;情绪可在极值区持续很久,需分批与止损。
策略 CR11:减半 / 牛熊周期定投
热度:加密圈最具号召力叙事。
适用:加密 · 中长线 · 周期/定投。
# 减半后 12-18 个月常进入牛市中后期;按周期位置调整定投/止盈 phase = halving_cycle_phase(now) # accumulate / bull / distribute / bear dca_amount = base_amount * weight[phase]
风险:历史样本仅 3-4 次、统计意义弱;叙事驱动的择时不可依赖。
策略 CR12:期现套利(现货 + 空永续)
热度:加密机构与散户常用。
适用:加密 · 持有 · 套利。
# 当永续相对现货升水(基差为正)且资金费为正: long_spot(q); short_perp(q) # 收敛时平仓,赚基差 + 资金费
优缺点与失效:市场中性;基差扩大时浮亏、需保证金管理,极端行情两腿同时受限。
策略 CR13:跨期套利(近月 / 远月)
热度:期货经典,加密交割合约亦用。
适用:期货 / 加密 · 持有 · 套利。
spread = price_far - price_near if spread > upper_band: short_far(); long_near() # 赌价差收敛 if spread < lower_band: long_far(); short_near()
优缺点与失效:价差均值回归;极端供需(挤仓/交割逼仓)下价差不收敛。
策略 CR14:永续-交割基差套利
热度:加密衍生品圈。
适用:加密 · 持有 · 套利。
basis = perp_price - delivery_price if basis > threshold: short_perp(); long_delivery() # 到期基差归零
优缺点与失效:到期收敛确定性强;需处理移仓、资金费与流动性。
25. 统计套利与相对价值补全(AR1-AR8)
Part 3 §11 已给出配对交易、z-score、Kalman 与组合套利框架。本节补充机构与传统市场更完整的相对价值策略。
策略 AR1:ETF / 指数套利
热度:机构经典(指数套利是程序化交易的起点)。
适用:股票 / ETF · 日内 · 套利。
nav = sum(weights * component_price) / divisor # ETF 净值估算 premium = etf_price - nav if premium > cost: buy_basket(); sell_etf() # 正向套利 if premium < -cost: buy_etf(); sell_basket()
优缺点与失效:市场中性;容量受成分股流动性限制,需极低延迟与低费率。
策略 AR2:跨市场统计套利
热度:机构。
适用:跨市场(A/H、ADR、ETF/期货)· 波段 · 套利。
# 同一资产在不同市场的价格应长期协整 spread = log(price_A) - beta * log(price_B) z = (spread - mean(spread)) / std(spread) if z > 2: short_A_long_B(); if z < -2: long_A_short_B()
优缺点与失效:利用制度/资金分割造成的价差;需处理汇率、交易时段错位与资本管制。
策略 AR3:可转债套利
热度:中文圈与机构。
适用:A 股转债 · 事件 · 套利。
conv_value = 100 / conversion_price * stock_price premium = bond_price / conv_value - 1 # 折价买入转债 + 融券卖正股(或低价债 + 正股博弈) long_enter = premium < -cost or (bond_price < 110 and stock_vol_high)
优缺点与失效:下有债底、上随正股;强赎、信用违约与流动性风险。
策略 AR4:并购套利 / 风险套利
热度:事件套利经典。
适用:股票 · 事件 · 事件套利。
# 并购公告后:买入被收购方,赌交易完成赚取要约价与市价之差 spread = offer_price - target_price long_enter = announced_merger and annualized_spread > hurdle and deal_completion_prob > threshold
优缺点与失效:收益与并购成功率挂钩;交易失败即暴跌(尾部风险)。
策略 AR5:封闭式基金折价套利
热度:经典。
适用:基金 · 持有 · 套利。
discount = (nav - price) / nav long_enter = discount > threshold and holding_to_maturity_or_open_end
优缺点与失效:折价回归或到期清算;折价可能长期存在(流动性/情绪)。
策略 AR6:期现基差套利(股指)
热度:经典机构策略。
适用:股指期货 · 日内-持有 · 套利。
basis = futures_price - index_price if basis > upper: short_futures(); long_basket() # 正向套利 if basis < lower: long_futures(); sell_basket() # 反向(需融券)
风险:基差不收敛、交割与保证金、融券成本;A 股受融券限制。
策略 AR7:外汇套息(Carry Trade)
热度:外汇经典。
适用:外汇 · 中长线 · 套息。
# 借入低息货币,买入高息货币,赚取利差 long_enter = interest_rate_diff(high_yield, low_yield) > threshold and low_vol_regime
风险:利差收益易被汇率波动吞没(套息交易崩溃);极端行情下高息货币暴跌。
策略 AR8:三角外汇套利
热度:外汇经典。
适用:外汇 · 高频 · 套利。
implied = EUR/USD * USD/JPY / EUR/JPY if implied > 1 + fee: 沿有利路径循环买/卖
优缺点与失效:无方向风险;点差与延迟决定成败,散户难参与。
26. 因子投资细化(FT1-FT8)
Part 3 §12 已给出动量 / 价值 / 质量低波 / 多因子合成。本节补全常见单因子与风格轮动,规格以「暴露度排序 + 组合构建」形式给出。
因子 FT1:规模因子(小盘)
热度:Fama-French 三因子之一。
适用:股票 · 中长线 · 因子。
size = log(market_cap) portfolio = long(smallest quintile); short(largest quintile) # 小盘溢价
优缺点与失效:长期存在小盘溢价;流动性差、换手成本高,近年在部分市场失效。
因子 FT2:成长因子
适用:股票 · 中长线。指标:营收/利润同比增速。组合:做多高增速、做空低增速。
growth = revenue_yoy or eps_yoy long_high_growth(); short_low_growth()
优缺点与失效:成长股弹性大;估值过高时回撤剧烈。
因子 FT3:股息率因子
适用:股票 · 中长线(红利策略)。
dy = dividend / price long_high_dividend_yield_basket()
优缺点与失效:防御性强、熊市抗跌;成长市跑输,注意「股息陷阱」。
因子 FT4:波动率因子(低波异象)
vol = std(returns, 60) long_low_vol_basket(); short_high_vol_basket()
适用:股票 · 中长线。低波动组合风险调整后收益常优于高波动。
因子 FT5:行业轮动
momentum_by_sector = sector_index_return(lookback) long_top_sectors(n=3); rebalance_monthly()
适用:股票 · 中长线 · 轮动。失效:快速风格切换时追高杀跌。
因子 FT6:风格轮动(大小盘 / 价值成长)
spread = style_A_return - style_B_return long_enter = spread > ma(spread, n) # 动量确认后切换风格
适用:股票 · 中长线。失效:风格切换无规律、频繁打脸。
因子 FT7:ESG 因子
score = esg_rating(company) long_high_esg_basket()
适用:股票 · 中长线。优点:长期风险与资金偏好;争议:评级口径不一、超额不显著。
因子 FT8:期权隐含因子 / 偏度
skew = iv(otm_put) - iv(otm_call) long_enter = skew extreme and mean_reverting # 期权隐含偏度异常时交易标的或波动率
适用:股票/期权 · 中长线。进阶因子,数据门槛高。
27. 事件驱动补全(ED1-ED6)
Part 3 §15 已覆盖财报漂移、公告 CAR、新闻情绪。本节补全其余经典事件驱动策略。
策略 ED1:指数纳入 / 剔除
热度:被动资金时代的经典事件。
适用:股票 · 事件。
# 指数调整公告到生效之间,纳入股有买盘压力、剔除股有卖压 long_enter = announced_index_add and days_to_effective in [1, 10] short_enter = announced_index_delete exit = effective_date 前后 reversal(利好出尽)
优缺点与失效:机制清晰、可预期;近年效应被提前交易而衰减。
策略 ED2:期权到期日效应(OpEx)
适用:股票 / 期权 · 事件。
# 月度/季度 OpEx 前后,Gamma 对冲与 Pin Risk 使价格向高持仓行权价靠拢 long_enter = in_opex_week and price near_max_open_interest_strike and dealer_gamma_positive
优缺点与失效:做市商对冲流可预测;效应不稳定、需持仓分布数据。
策略 ED3:分红除权套利
# 除权除息日价格调整,配合融券与税收/股息处理进行套利 long_enter = cum_dividend_buy and short_before_ex_date (若可融券)
适用:股票 · 事件。风险:股息税、融券成本与制度限制。
策略 ED4:宏观数据发布交易
# 非农/CPI/利率决议公布瞬间,波动率骤升,做「数据后动量」或事件前买跨式 if macro_event_released and surprise > threshold: trade_in_direction_of_surprise
适用:外汇 / 期货 · 日内。风险:滑点极大、瞬间反向,散户难执行。
策略 ED5:财报超预期(SUE)
sue = (actual_eps - expected_eps) / std(eps_surprise) long_enter = sue > threshold and days_after_earnings <= 60 # 配合 PEAD
适用:股票 · 事件。风险:预期数据口径、财报跳空。
策略 ED6:供股 / 增发事件
# 折价增发/供股公告对老股东稀释,短期承压 short_enter = announced_dilutive_offering # 或参与折价认购套利(视制度)
适用:股票 · 事件。风险:事件窗口短、流动性冲击。
28. 期权与波动率补全(OP1-OP8)
Part 2 §10.8 已给出 IV Rank、买方跨式、卖方跨式+Delta 对冲、铁鹰。本节补全剩余主流期权策略。
策略 OP1:VRP 方差风险溢价
热度:学术与机构核心(卖出波动率长期正溢价)。
适用:期权 / 指数 · 中长线 · 波动率。
vrp = implied_vol - realized_vol if vrp > threshold: sell_straddle_or_variance_swap() # 收割 IV 高于 RV 的溢价 hedge = delta_hedge_to_neutral()
优缺点与失效:长期正期望;危机时波动率飙升,「捡钢镚」式收益伴随尾部巨亏。
策略 OP2:Gamma Scalping
# 持有期权多 Gamma,用标的做 Delta 对冲,赚取实际波动 > 隐含波动 的差额 long_straddle(); delta_hedge_frequently() profit ≈ 0.5 * gamma * (realized_var - implied_var)
适用:期权/标的 · 日内 · 波动率。风险:对冲成本、需高频再平衡。
策略 OP3:日历价差(Calendar Spread)
# 卖近月、买远月同执行价,赚近月 Theta 衰减快于远月 + 期限结构 short_near_straddle(); long_far_straddle()
适用:期权 · 波段 · 波动率。风险:近月 Gamma 风险、大波动亏损。
策略 OP4:蝶式 / 鹰式(Butterfly / Condor)
# 有限风险、押注价格落在区间内;铁鹰 = 卖出宽跨 + 买入更宽保护 iron_condor = short_otm_call() + short_otm_put() + long_far_call() + long_far_put()
适用:期权 · 波段 · 波动率。风险:区间外亏损、胜率高但盈亏比低。
策略 OP5:0DTE 末日轮
热度:美股近年爆火(当日到期期权)。
适用:期权 · 日内 · 波动率。
# 当日到期期权 Gamma 极大,价格对标的微小变动极敏感 long_enter = intraday_breakout_signal and near_expiry size = base * gamma_multiple # 注意风险极大
风险:时间价值瞬间归零、波动极端,本质是高杠杆赌博,须极小仓位。
策略 OP6:Covered Call / 现金担保认沽
# 持股卖看涨(Covered Call)或持币卖看跌(CSP),收取权利金增强收益 covered_call = long_stock() + short_call(otm) cash_secured_put = short_put(otm) with full collateral
适用:股票 / 期权 · 中长线 · 收益增强。风险:卖 Call 封顶上涨、卖 Put 下跌接盘。
策略 OP7:波动率期限结构套利
term_slope = iv(short_expiry) - iv(long_expiry) if term_slope > upper: short_near_vol(); long_far_vol() if term_slope < lower: long_near_vol(); short_far_vol()
适用:期权 · 波段 · 波动率。风险:期限结构可在危机中持续倒挂。
策略 OP8:偏度 / 尾部对冲
# 长期买入价外认沽(或 put ratio),对冲尾部风险,牺牲少量 carry hedge = long_otm_put(monthly, 3-5% otm) # 或 put spread collar
适用:股票组合 · 中长线 · 波动率。优点:危机保护;缺点:长期成本拖累收益。
29. 机器学习补全(ML5-ML6)
Part 3 §14 已覆盖特征工程、XGBoost/LightGBM、深度学习与强化学习。本节补充两类研究热门方法。
策略 ML5:遗传规划 / 符号回归(Symbolic Regression)
热度:Alpha 挖掘研究热门(gplearn、WorldQuant 思路)。
适用:全市场 · 全周期 · ML。
# 用遗传算法在算子/特征空间搜索能最大化 IC/夏普的公式
population = random_formulas(features, operators)
for gen in range(generations):
fitness = ic(formula_signal, forward_return)
population = select_mutate_crossover(population, fitness)
best_formula = argmax_fitness(population)
优缺点与失效:可自动发现非线性因子;极易过拟合、公式可解释性差,须严格样本外与多重检验校正。
策略 ML6:聚类 / 隐马尔可夫状态识别(Regime Detection)
# 用 HMM 把市场分为牛/熊/震荡状态,再按状态切换策略
model = HMM(n_states=3); model.fit(returns_features)
state = model.predict(current_features)
strategy = {0: trend, 1: mean_revert, 2: cash}[state]
适用:全市场 · 全周期 · ML。优缺点:让策略自适应市场状态;状态识别滞后、状态数选择主观。
30. 高频、做市与微观结构(HX1-HX6)
Part 3 §17 已覆盖成本模型、TWAP/VWAP、订单类型。本节补全高频与做市策略(部分需 Level-2/逐笔与低延迟基础设施)。
策略 HX1:做市(Market Making)
热度:HFT 核心,加密做市商主力。
适用:全市场 · 高频 · 做市。
# 同时在买卖两侧挂单,赚取买卖价差,管理库存风险 bid = mid - spread/2 - inventory_skew ask = mid + spread/2 - inventory_skew quote(bid, ask) # 库存偏移使持仓回归中性
优缺点与失效:提供流动性赚价差;面对逆向选择(被知情者扫单)与库存风险,需极低延迟与风控。
策略 HX2:订单流不平衡(Order Flow Imbalance)
ofi = sum(bid_size_delta) - sum(ask_size_delta) over window long_enter = ofi > threshold # 买盘主动性强 → 短期价格上行
适用:期货 / 加密 · 高频 · 微观结构。风险:数据与延迟门槛高。
策略 HX3:VPIN 毒性订单流
vpin = |buy_volume - sell_volume| / total_volume over volume_bucket if vpin > threshold: 暂停做市 / 降低仓位 # 订单流「有毒」,知情交易活跃
应用:做市商风控、闪崩预警(Easley/O'Hara)。
策略 HX4:延迟套利 / 抢跑
# 利用行情传播延迟或不同交易所报价时差,抢先成交
if price_A_updated_before_B and divergence > threshold:
trade_B_before_repricing()
适用:全市场 · 高频。风险:军备竞赛、监管关注、对散户不公平。
策略 HX5:冰山 / 隐藏单执行
# 大单拆分隐藏,按需曝光,减少冲击成本
for chunk in split(order_size, display_size):
place_iceberg(chunk)
应用:机构执行。目标是最小化市场冲击,而非 alpha 信号。
策略 HX6:高频统计套利
# 组合内多标的短期均值回归,分钟/秒级进出 z = (price - vwap_short) / std_short if z > 2: short(); if z < -2: long()
适用:股票 / 期货 · 高频 · 套利。风险:竞速、费用敏感、容量有限。
31. 全市场特性与适配
同一策略在不同市场的有效性差异极大,根源在交易制度与参与者结构。下表给出各市场特性与主流策略适配。
| 市场 | 关键制度 | 主流策略 | 数据与约束 |
|---|---|---|---|
| A 股 | T+1、涨跌停、龙虎榜、散户占比高 | 打板/龙头/情绪、量价、均线回踩、事件(打新/转债) | Level-2 逐笔、公告、龙虎榜;做空困难、T+1 限制高频 |
| 美股 | T+0、无涨跌停、做空便利、期权发达 | 因子、PEAD、并购套利、期权波动率、0DTE、动量 | 数据齐全、竞争激烈;盘前盘后与跳空风险 |
| 港股 | T+0、无涨跌停、老千股风险 | 价值/红利、AH 套利、事件 | 流动性分化大、仙股风险 |
| 加密 | 7×24、永续/资金费、无涨跌停、跨所 | 网格、马丁、资金费率套利、三角/跨所、链上、趋势 | 数据透明、交易所信用风险、极端波动 |
| 商品期货 | 双向 T+0、杠杆、交割 | CTA 趋势、Dual Thrust、跨期/跨品种套利、突破 | 夜盘、主力换月、保证金管理 |
| 股指期货 | 基差、交割、日内限制 | 期现套利、趋势、日内 ORB | 基差与保证金、政策限制 |
| 外汇 | 24h、高杠杆、利差 | 套息、三角套利、趋势、突破 | 流动性好、点差与隔夜费;零售平台对手盘风险 |
| 期权 | 非线性损益、隐含波动率 | VRP、跨式/铁鹰、日历、Gamma Scaping、尾部对冲 | 希腊字母、行权与流动性、保证金 |
| 债券 | 利率敏感、久期 | 久期/曲线套利、信用利差、国债期货基差 | 机构为主、数据门槛高 |
32. 风险、失效场景与合规提示
| 风险类型 | 典型场景 | 缓解 |
|---|---|---|
| 过拟合 | 参数在历史上完美、样本外失效 | 样本外/滚动验证、参数敏感性、多重检验校正 |
| 幸存者偏差 | 只统计成功者(带单员/自媒体战绩) | 全样本统计、区分牛熊、警惕收益话术 |
| 前视 / 数据泄漏 | 用了当时不可得的信息 | 点时数据、公告时间戳、避免未来函数 |
| 交易成本 | 高频/隔夜被手续费与滑点吃掉 | 纳入费率/滑点/冲击成本回测 |
| 制度与政策 | 涨跌停、T+1、融券限制、监管变化 | 按市场制度设计,预留失效应对 |
| 流动性 / 容量 | 策略容量小、大资金冲击成本高 | 容量分析、分批执行 |
| 尾部风险 | 卖波动率、马丁、套息被极端行情击穿 | 硬止损、保证金管理、尾部对冲、仓位上限 |
| 模型风险(ML) | 分布漂移、模型退化 | 监控与再训练、人类可读约束 |
| 合规风险 | 荐股、跟单、收益承诺、内幕信息 | 工具/教育定位、免责声明、信息隔离 |
33. 参考来源与索引
33.1 开源仓库
| 仓库 | 说明 |
|---|---|
| freqtrade/freqtrade-strategies | 加密最热策略样例库(BbandRsi、MACD、Supertrend 等) |
| iterativv/NostalgiaForInfinity | 布林带 + RSI 组合体系,freqtrade 社区最热门策略 |
| je-suis-tm/quant-trading | 大量可复现策略脚本(趋势/形态/量价/季节) |
| mementum/backtrader | 经典回测框架与示例(各策略骨架) |
| mrjbq7/ta-lib | 技术指标标准库(RSI/MACD/ATR/ADX/CCI…) |
| wilsonfreitas/awesome-quant | 量化资源与库索引 |
33.2 指标与策略百科
- MACD · RSI · Bollinger Bands · ATR · ADX · Parabolic SAR · Ichimoku · Donchian Channel · Keltner Channel · Stochastic(Wikipedia)
- TradingView 脚本库(UT Bot、HalfTrend、Squeeze Momentum 等)
- Pairs Trading · Mean Reversion · Momentum · PEAD · HFT(Wikipedia)
33.3 经典著作与来源
- 《The Complete TurtleTrader》— 海龟交易法则与 ATR 仓位管理
- 《Trading for a Living》— Elder 三重滤网
- 《Trade Your Way to Financial Freedom》— Tharp 仓位与期望值
- Fama & French 三因子/五因子、Jegadeesh & Titman 动量、Easley & O'Hara VPIN 等学术论文
- 中文自媒体(抖音 / 视频号 / 公众号 / 知乎)战法:标注为「观点,未经验证」
Part 5 完。本文全部内容为方法论梳理,不构成投资建议。
附录
A. 策略 × 市场状态适配矩阵
| 市场状态 | 推荐策略 | 避免策略 |
|---|---|---|
| 强上升趋势 | T1/T2/T3(做多)、V3 扩张突破、Q1 放量突破 | R1/R2 反手做空、均值回归类 |
| 强下降趋势 | T1/T2/T3(做空)、M1 零轴下金叉谨慎 | R2 抄底、V1 触下轨盲目做多 |
| 震荡区间 | R1 2B、R2 RSI 背离、V1 触轨回归、R5 K线反转、S2 z-score、S1 配对 | T1/T2 趋势突破(假突破多) |
| 低波动待变 | V3 带宽扩张、T2 通道突破(等待爆发) | R 类反转(无空间) |
| 开盘时段(日内) | T10 ORB 开盘区间突破 | 震荡日开盘假突破(须量能过滤) |
| IV 低位(波动率便宜) | O2 买跨式(事件前建仓) | O3/O4 卖波动率(溢价薄、不划算) |
| IV 高位(波动率昂贵) | O3 卖跨式+Delta 对冲、O4 铁鹰 | O2 买跨式(易被 IV Crush 吃掉) |
| 财报/宏观事件窗口 | O2 买跨式(IV Rank 低位时)、E1 PEAD | 事件前盲卖波动率(跳空风险) |
| 全状态(横截面) | F1~F4 因子(股票池)、E1 PEAD(财报季) | 单一标的高频摩擦费 |
| 无法判断 | 空仓 / 降仓位(P3 Kelly 分数仓) | 强行交易 |
| 加密永续资金费为正 | CR3 资金费率套利、CR12 期现套利(收资金费) | 裸多永续(付费方) |
| 加密永续资金费为负 | CR3 反向套利(做多永续 + 空现货) | 裸空永续 |
| 窄幅区间震荡 | CR1 网格、H17 BbandRsi、V1 布林回归 | 趋势突破 / 追涨杀跌 |
| 低波动收缩待变(Squeeze) | H16 Squeeze Momentum、V3 带宽扩张 | 区间内频繁高抛低吸 |
| 链上指标极值(MVRV 低/高) | CR9 链上周期(低吸/高抛) | 情绪追涨杀跌 |
| 市场情绪极值(恐惧/贪婪) | CR10 情绪逆向 | 顺情绪满仓 |
| 并购/指数调整事件窗口 | AR4 并购套利、ED1 指数纳入剔除 | 无事件驱动的高频交易 |
B. 指标计算口径
| 指标 | 计算口径 | 要点 |
|---|---|---|
| MA(n) | 最近 n 根收盘价算术平均 | 滞后,周期越大越平滑 |
| EMA(n) | 加权平均,权重随距离衰减 | 比 MA 反应快 |
| RSI(n) | 100 - 100/(1+平均涨幅/平均跌幅) | Wilder 平滑,0~100 |
| MACD | DIF=EMA12-EMA26; DEA=EMA(DIF,9) | 柱=2×(DIF-DEA) 或 DIF-DEA |
| BOLL(n, k) | 中轨=MA(n); 上/下轨=中轨±k×σ | σ 需明确总体/样本标准差 |
| ATR(n) | TR=max(H-L,|H-Cprev|,|L-Cprev|) 的均值 | Wilder 平滑或简单平均 |
| ADX(n) | 由 +DI/-DI 导出的方向强度 | 0~100,>25 强趋势 |
| OBV | 价格涨加成交量、跌减成交量累积 | 方向比数值重要 |
| KDJ | RSV→K(SMA)→D(SMA)→J=3K-2D | n=9, k=d=3 |
| SAR | 前一极值±加速因子累积 | af 0.02 起,上限 0.2 |
| Ichimoku | tenkan/kijun/senkou_A/senkou_B/chikou | 9/26/52 日线 |
| VWAP | Σ(typical×vol)/Σvol(当日) | typical=(H+L+C)/3 |
| 协整 β | OLS: y=α+βx+ε,ε 平稳 | 残差 ADF 检验 p<0.05 |
| z-score | (x-均值)/标准差 | 窗口滚动估计 |
| IC | Spearman(因子, 下期收益) | 截面相关 |
| Kelly f | (bp-p)/b,b=盈亏比 | 用分数 Kelly |
| VaR / CVaR | 收益分布 5% 分位 / 尾部均值 | CVaR 为一致性度量 |
| GARCH(1,1) | σ²_t=ω+αε²+βσ² | 波动聚集 |
| SUE | (实际EPS-预期EPS)/EPS标准差 | 财报超预期 |
| IV(隐含波动率) | Black-Scholes 反解:使模型价=市价的 σ(Newton-Raphson 迭代) | 以 Vega 作导数;欧式/美式模型选择影响结果 |
| IV Rank | (IV_now - min(IV,n)) / (max(IV,n)-min(IV,n)) × 100 | 历史分位,判断波动率「贵/贱」 |
| VRP(方差风险溢价) | IV² - RV²(或 IV-RV) | 期权卖方长期收益来源 |
| Greeks | Δ/Γ/Θ/ν/ρ:价格对标的价/二阶/时间/波动/利率的敏感度 | Delta 对冲、Gamma 风险、Theta 收割 |
乖离率(BIAS):(收盘价-均线)/均线,衡量价格偏离均线的程度,用于超买超卖预警。
ADF 平稳性:|t| 大于临界值拒绝单位根假设 → 序列/残差平稳 → 协整成立。
C. 理论 → 适用标的 / 周期 / 前提 对照
| 理论/策略族 | 适用标的 | 常用周期 | 成立前提/关键条件 |
|---|---|---|---|
| 技术分析(趋势/形态/量价) | 流动性好的任何标的 | 分钟 ~ 周线 | 群体行为可重复;需成交量数据 |
| 统计套利(配对/z-score) | 高相关资产(同行业股、ETF 对、期现) | 日线为主 | 协整稳定;规避结构断裂(重组/危机) |
| 因子投资 | 大横截面股票池(数百~数千只) | 月频调仓 | 需基本面/估值数据;行业中性化 |
| 时间序列建模 | 流动性资产指数/期货 | 日线及以上 | 平稳性处理后建模;厚尾与异方差处理 |
| 机器学习 | 大样本+多特征标的池 | 依赖特征 | 数据量大、信噪比可控;严格防泄漏 |
| 事件驱动(PEAD/公告) | 有定期信息披露的个股 | 事件窗口日线 | 事件日历数据;规避涨跌停/停牌 |
| 组合与风控(P1~P4) | 任何多策略/多资产组合 | 与子策略一致 | 协方差/波动估计;实时回撤监控 |
| 执行/微观结构 | 所有实盘交易(大单更关键) | 分钟/tick | 成交回报与订单簿数据 |
| 开盘区间突破(T10 ORB) | 股指期货、大盘股 | 分钟级日内 | 开盘流动性好;区间时长/缓冲按品种标定 |
| 期权波动率(O1~O4) | 期权链(股票/指数期权) | 日线~周(DTE 30~60) | 需期权数据/IV/Greeks;VIX 数据辅助择时 |
D. 策略 × GitHub 参考仓库索引
各策略的参考实现索引(与正文「参考实现」标注对应)。框架类(backtrader / qlib / vn.py 等)跨多个策略复用,不逐一重复;star 数截至 2026-09,落地前请核对仓库维护状态与许可证。更全的工具清单见姊妹篇《量化交易系统》§6。