「价格突破近 20 日高点就买」——这是海龟交易法、唐奇安通道(Donchian Channel)在散户口语里最常见的选股公式版本。逻辑朴素:新高意味着趋势延续,追涨吃波段。但在 A 股做历史复盘时,同样的句子会撞上另一套现实:涨跌停板、T+1、跳空高开、题材一日游、以及「突破当日追进去、次日低开」的追高风险。

更麻烦的是概念与工具之间的缝隙:很多平台没有名为「唐奇安通道」的按钮,可视化编辑器里也没有「海龟法则」一键模板。若把不存在的功能写进策略,历史复盘曲线再漂亮也是空中楼阁。

本文做两件事:(1)把通道突破思路诚实地形式化为「近 N 日高点突破 + 可选过滤」选股公式;(2)用筛选、批量/单账户回测、动画复盘走一遍历史复盘与证伪流程。示例界面来自 青柠量化——常规日线用后复权、信号收盘确认、下一根开盘成交并计佣金滑点;与打板专项(未复权、涨跌停约束)明确区分,后者属专业版能力。


一、海龟 / 唐奇安在口语里是什么:先通俗化

  • 唐奇安上轨:口语 — N 日最高价;量化等价(日线)— max(High, N)
  • 突破买入:口语 — 收盘价站上 N 日高点;量化等价(日线)— Close > max(High, N)[1] 或 Close ≥ 昨日 N 日高
  • 唐奇安下轨:口语 — N 日最低价;量化等价(日线)— min(Low, N)
  • 出场:口语 — 跌破 M 日低点;量化等价(日线)— Close < min(Low, M)
  • 海龟加仓:口语 — 每 0.5ATR 加一仓;量化等价(日线)— 需 ATR 组件与复杂仓位规则(进阶)

经典海龟用 20 日突破入场、10 日反向突破出场(或 55/20 长短组合)。个人研究可先从单档 20/10 开始,再对比 55/20 是否更少假突破。

诚实边界: 青柠量化 界面若无「Donchian Channel」同名指标,请用 「近 N 日高点突破」 类组件或 比较条件:收盘价 > 近 N 日最高价(不含当日) 实现等价语义。不要编造「内置海龟模板」——有就是有,没有就用比较条件拼。

经典双系统:20/10 与 55/20 怎么选

海龟原版常用两套通道:短通道抓启动,长通道抓大趋势。个人研究可先做对照:

  • 20 / 10:入场 — 近 20 日高;出场 — 近 10 日低;预期 — 信号多,假突破多
  • 55 / 20:入场 — 近 55 日高;出场 — 近 20 日低;预期 — 信号少,更趋势
  • 20 入 / 10 出 + MA 过滤:入场 — 突破且 Close>MA(60);出场 — 不变;预期 — 折中

对比时保持同一标的池、同一成本假设,只改 N——否则无法判断是「长通道有效」还是「碰巧躲过熊市」。


二、A 股突破追涨的特殊约束

  • 涨跌停:对突破策略的影响 — 突破日一字板,开盘买不到;回测口径建议 — 常规后复权回测不模拟「排板」;打板研究用专业版未复权 + 涨跌停约束
  • T+1:对突破策略的影响 — 当日买入当日不能卖;回测口径建议 — 出场信号最早下一交易日执行(引擎默认下一根 K 线处理)
  • 跳空高开:对突破策略的影响 — 突破确认后次日高开,追入成本高;回测口径建议 — 坚持「下根开盘成交 + 滑点」,勿用信号日收盘价
  • 题材脉冲:对突破策略的影响 — 假突破多、回落快;回测口径建议 — 需过滤(量能、均线多头)或更长 N
  • 成本:对突破策略的影响 — 追涨策略交易少但单笔大;回测口径建议 — 佣金、滑点对单笔收益敏感

系列前文讨论过 T+1 与涨跌停对历史复盘可信度的影响——突破类策略是重灾区:看起来「突破 N 日高」,实盘中可能是涨停价成交或根本成交不了。

突破策略在 A 股的三种「假好看」

  • 涨停突破:表现 — 突破日一字板;回测里常怎么被美化 — 常规模式仍可能按次日开盘「买到」
  • 跳空高开:表现 — 确认后次日 +5% 开盘;回测里常怎么被美化 — 滑点设太低时忽略追价成本
  • 题材退潮:表现 — 突破后三日 A 字杀;回测里常怎么被美化 — 批量平均被其他票稀释

识别方式不是改口径逃避,而是:动画复盘 + 单账户 + 保守滑点 三重对照。若三重对照下结论仍成立,再继续加 AND 过滤;若任一环节翻转,先修假设而非加指标。


三、形式化:「近 N 日高点突破」怎么写

推荐最小可回测版本(日线、后复权):

  • 指标:近 20 日最高价(或 Rolling High);可选 MA(20) 作趋势过滤
  • 入场:比较条件:Close > 近 20 日 High(通常不含当日,避免 trivial)
  • 过滤(可选):AND:Close > MA(20);或成交量 > 均量 × 1.2
  • 出场:Close < 近 10 日 Low;或固定持有 20 日
  • 仓位:固定 25%–30%;单账户最大持仓 3–5
策略编辑器:近 N 日高点突破比较条件接入场信号
策略编辑器:近 N 日高点突破比较条件接入场信号

与「严格唐奇安」的细微差别

严格唐奇安上轨 = 过去 N 根 K 线最高价(不含当前 K 线)。若比较条件写成「Close > 含当日的 N 日高」,几乎永不触发或语义错误。搭建后先用筛选扫一只熟悉的大票,看突破日是否与肉眼一致。

出场规则的两种流派

  • 通道对称:规则 — 跌破 M 日低出场;特点 — 与海龟一致,持仓随波动拉长
  • 固定持有:规则 — 入场后持有 H 日;特点 — 简单,便于与突破入对比
  • 均线辅助:规则 — Close < MA(20) 出场;特点 — 常比 10 日低更早离场

回测对比时,入场相同、只改出场——否则你无法知道收益变化来自突破还是来自出场运气。个人研究建议先固定「10 日低出场」,再试 MA 出场,记录交易次数与平均持仓天数变化。


四、突破 vs 金叉 vs 打板:别混赛道

  • 通道突破:触发语义 — 创新高;典型 N — 20 / 55;复权 — 后复权;适用模块 — 常规回测
  • 均线金叉:触发语义 — 短均线上穿长均线;典型 N — 5 / 20;复权 — 后复权;适用模块 — 常规回测
  • 打板 / 涨停突破:触发语义 — 涨停价、排板成交;典型 N — 当日;复权 — 未复权;适用模块 — 专业版打板回测

把打板结果与唐奇安突破曲线放在一起比年化,是口径错误。本文聚焦后复权日线通道突破;若你研究「涨停突破」,请切换专业版打板能力,不在此混谈。

读者常问:没有唐奇安组件还能不能做?

能。只要比较条件能表达「收盘价 > 过去 N 根 K 线最高价(不含当日)」,语义就与唐奇安上轨突破等价。下轨出场同理。界面文案可能是「近 N 日高点突破」「滚动最高价」等,看语义不看名字。搭建后务必用单票筛选核对边界日(例如第 N+1 根 K 线是否该触发),避免 off-by-one 导致全盘结论失真。


五、路径 A:编辑器搭建 20/10 突破策略

回测配置:区间、标的池、佣金滑点
回测配置:区间、标的池、佣金滑点

可执行步骤

  1. 1. 新建策略,命名如 突破20高_出场10低_v1
  2. 2. 添加入场比较:Close > 近 20 日最高价(参数 N=20,确认是否 exclude current bar)。
  3. 3. (可选)AND 过滤:Close > MA(20) 或 成交量 > MA_VOL(20)×1.5。
  4. 4. 出场比较:Close < 近 10 日最低价(N=10)。
  5. 5. 仓位:30%;回测启用单账户,最大持仓 5。
  6. 6. 验证策略 → 保存。
  7. 7. 筛选(最新 K 线 + 自选股)→ 看命中是否合理。
  8. 8. 批量回测单账户动画复盘

六、路径 B:AI 生成突破策略草稿

与系列入门文同一流程:用自然语言描述,再人工验收。

示例 prompt:

当收盘价突破过去 20 日最高价时买入;当收盘价跌破过去 10 日最低价时卖出;每次使用总资金的 30%,最多同时持有 5 只股票。

生成后重点核对:

  1. 1. 比较对象是 Close 还是 High——突破常用 Close,误写 High 会改变语义。
  2. 2. N 日高是否含当日——AI 常忽略这一细节。
  3. 3. 有无误加「涨停价」「打板」等词——若出现,删除并回到后复权常规口径。
  4. 4. 导入编辑器后,对一只熟悉个股跑筛选,看突破日是否与肉眼一致。

七、筛选与证伪:突破策略的第一关

突破策略常见失败模式不是「回测亏钱」,而是根本不可研究

  • 0 命中:可能原因 — N 过大 / 比较口径含当日 / 标的池过小;动作 — 检查比较条件定义,N 改 20 试
  • 全市场 >100 只/日:可能原因 — N 过小或无条件突破;动作 — 加长 N 或加 AND 量能
  • 仅 ST、微盘命中:可能原因 — 标的池未过滤;动作 — 换指数成分池

证伪步骤 1(筛选层)

全市场最新 K 线筛选
→ 命中数是否在 5–40 只/日(可调,但需「人能做」)
→ 随机抽 10 只,肉眼看突破日是否真创新高
→ 若大量「假突破」(长上影、次日低开),进入步骤 2 加过滤
→ 若突破日多为涨停,提醒:常规回测 ≠ 打板可成交性
历史回测:突破策略收益与回撤分布
历史回测:突破策略收益与回撤分布

八、历史复盘:成本敏感与双模式对照

突破追涨交易次数少、单笔权重大,佣金 0.03% 看似小事,叠加滑点 0.1%–0.3% 会显著吃掉边缘优势。青柠量化 常规历史复盘默认下一根开盘成交 + 费用——务必开启,勿与「信号日收盘价成交」的乐观版本比较。

批量 vs 单账户

  • 批量单标的:20 日突破在不同行业是否普遍有效,还是只靠少数趋势龙头
  • 单账户:同时来 8 个突破信号,30% 仓位 + 最多 5 持仓,你实际能抓到几个

系列前文强调:批量年化 30%、单账户 10% 不矛盾——突破策略在信号扎堆的牛市阶段尤其容易夸大批量收益。

关注指标(勿只盯年化)

  • 交易次数:过少则统计不稳
  • 胜率与盈亏比:趋势策略常低胜率高盈亏比
  • 最大回撤与回撤期长度:能否扛过长期横盘
  • 中位数收益(批量):比「最好一只」诚实

成本敏感性实验(建议必做)

  • G0:滑点 0;佣金 0;目的 — 仅看规则方向(勿当结论)
  • G1:滑点 0.1%;佣金 万三;目的 — 接近散户乐观
  • G2:滑点 0.2%–0.3%;佣金 万三;目的 — 接近追涨保守

若 G1 中位数收益 ≤ 0 而 G0 为正,说明 edge 对成交假设极度敏感——突破类策略在 A 股尤其常见。系列前文讨论佣金滑点的结论在这里往往比均线策略更「残酷」。

行业与标的池:别用全市场平均掩盖结构

  • 沪深 300:突破策略常见现象 — 信号少,偏大盘趋势
  • 中证 1000 / 小盘:突破策略常见现象 — 假突破多,脉冲多
  • 单一行业(如券商):突破策略常见现象 — 强 beta,结论难推广
  • 自选股:突破策略常见现象 — 适合验证「我能不能做」,不适合普适性

证伪时若只有某一行业批量中位数为正,应缩小声明范围为「该行业样本内有效」,而非「A 股突破 universal alpha」。


九、动画复盘:追在尖顶上还是趋势中段?

动画复盘:突破日与次日开盘成交价位
动画复盘:突破日与次日开盘成交价位

汇总曲线好看,可能是一只超级趋势股贡献大部分利润。复盘必做:

  1. 1. 贡献度前 3 名标的:删除后策略是否仍为正?
  2. 2. 突破 K 线:是稳步抬升还是涨停/长上影?
  3. 3. 成交假设:买点是否在下一根开盘价;若突破日涨停,开盘价是否已远高于「突破确认价」。

反例

  • – 「突破即最高价成交」——系统性乐观。
  • – 用未复权后复权混算 N 日高——除权日假突破。
  • – 把 2020–2021 核心资产牛市当全样本——证伪时须含 2022–2024 震荡段。

复盘抽样表格(建议打印或本地记录)

  • 序号 1:代码 — 示例;突破日 — 2024-xx-xx;次日开盘溢价 — +2.1%;后续 5 日 — 回落;结论标签 — 假突破
  • 序号 2:代码 — 示例;突破日 — 2023-xx-xx;次日开盘溢价 — +0.5%;后续 5 日 — 延续;结论标签 — 真趋势

抽 20 笔比盯一只妖股诚实。标签只需三档:假突破 / 中性 / 真趋势——再对照你的 AND 过滤能否减少「假突破」占比。若过滤后假突破占比未降、真趋势占比大降,说明过滤方向错了。


十、涨跌停与追高风险:常规回测的诚实说明

涨跌停场景:突破日常见一字板(示意)
涨跌停场景:突破日常见一字板(示意)

常规后复权日线回测通常不模拟「涨停排队买不到」「炸板回落」。因此:

  • – 回测中的「突破买入」≈ 以可成交价格假设在下一根开盘买入
  • – 实盘中突破日常常已大涨,追入成本更高
  • – 若策略依赖「突破日刚好可买」,实盘落差会大于均线类策略。

决策树:我是否该继续优化这条突破规则?

批量中位数收益 ≤ 0 且单账户更差?
├─ 是 → 证伪成立:优先改 N、加过滤或放弃赛道
│        └─ 仅个别行业正?→ 缩小标的池,勿全市场宣称
└─ 否 → 复盘贡献度是否集中?
         ├─ 是 → 视为「趋势龙头策略」,接受低频率
         └─ 否 → 样本外 / 第二时间段复测(专业版 WFO 更佳)

需要严格涨跌停可成交性时,应使用专业版打板 / 未复权专项能力——那是另一条策略线,不是本文 20 日高的简单延伸。


十一、增强与过滤:AND 与 SEQUENCE 的可选叠层

纯突破假信号多,常见增强(均可零代码):

  • 均线趋势:组件写法 — AND:Close > MA(60);利弊 — 减少震荡假突破,晚入场
  • 放量确认:组件写法 — AND:Vol > MA_VOL(20)×1.5;利弊 — 过滤缩量假突破
  • 先突破再站稳:组件写法 — SEQUENCE:Day1 Close>20日高 → Day2 Close>MA20;利弊 — 减少一日游
  • 更长通道:组件写法 — N=55 入场、N=20 出场;利弊 — 信号更少、更趋势

每加一层,立刻跑筛选看命中数——与系列「多指标 AND 共振」一文同一纪律。

与三均线、量价策略的衔接

  • 突破太多假信号:可叠过滤 — AND 放量;系列延伸 — 量价深度文 28
  • 震荡假突破:可叠过滤 — AND MA 多头;系列延伸 — 三均线文 26
  • 一日游:可叠过滤 — SEQUENCE 突破后站稳;系列延伸 — 多指标 AND 文 16

不要一次叠满;每加一条,记录筛选命中与批量中位数变化,形成可追溯的实验笔记(策略本地保存,便于版本对比)。


十二、完整证伪工作流(按周可执行)

第 1 天:形式化
写清 N/M、比较口径、后复权、下根开盘成交;搭建 20/10 基线策略。

第 2 天:筛选
自选股 + 全市场最新 K 线;记录命中数;抽 10 只肉眼核对突破日。

第 3 天:批量
300 成分或 50 只自选;看中位数收益、回撤、交易次数;对比 55/20。

第 4 天:单账户
30% 仓位、最大 5 持仓;对比批量差异。

第 5 天:复盘 + 决策
动画复盘贡献度;走决策树决定「继续加过滤 / 换标的池 / 证伪放弃」。

海龟法则在个人研究中的合理裁剪

原版海龟还涉及 ATR 仓位、加仓、多市场分散——对个人 A 股日线研究,建议先裁剪到「突破入、反向突破出、固定比例仓」,验证通道逻辑是否成立,再考虑是否值得引入更复杂仓位规则。裁剪不是「阉割圣杯」,而是控制变量:你连 20/10 在后复权日线都无法证伪或证实,加 ATR 加仓只会增加过拟合维度。

若专业版参数实验室扫描 N=15..25 的入场通道,也应固定出场 N=10 与成本假设,只扫一个维度——这与系列 WFO 文的「单维度寻优」纪律一致。


十三、证伪清单:何时宣布「突破追涨在我样本里不成立」

  • 近 N 日高比较口径已核对(是否含当日)
  • 后复权 + 下根开盘 + 佣金滑点已启用
  • 筛选命中落在可操作区间
  • 批量看中位数收益、回撤、交易次数
  • 单账户曲线与批量差异已记录
  • 动画复盘检查贡献度与涨停追入
  • 第二时间段或不同 N(20 vs 55)交叉验证
  • 未与打板 / 未复权结果混比

若多组设定下中位数收益持续为负、且单账户更差——诚实结论是:在你的标的池与成本假设下,简单突破追涨不足以支撑继续调参,而非「回测软件有问题」。

与打板专项的边界再强调

方案 A:本文 20/10 通道突破

  • 复权:后复权
  • 涨跌停:常规不模拟排板
  • 目标:趋势跟踪研究
  • 结论:不可直接推广到打板

方案 B:专业版打板回测

  • 复权:未复权
  • 涨跌停:约束可成交性
  • 目标:涨停接力研究
  • 结论:不可与后复权突破比年化

若你的真实交易是「突破当日涨停价排队」,请切换专业版打板能力重新形式化——否则你在用错误的问题验证错误的规则

从证伪到迭代:三条合法出路

证伪「简单 20/10 突破」不等于证伪「所有突破思想」。常见合法下一步:

  1. 1. 加长通道(55/20)——换频率与样本
  2. 2. 加 AND 过滤(量、均线)——见系列 26、28
  3. 3. 缩小标的池——声明为行业/大盘趋势策略

非法下一步:在单票上微调 N=19.5 类参数、或换一段最牛区间再宣布有效——那是过拟合,不是迭代。

研究突破策略,请把「我证伪了简单版」也当作成果写进笔记——它比又一个未经检验的「优化版」更有价值,也更节省你的研究时间。


结语:突破历史复盘的价值在证伪之后

海龟与唐奇安的伟大,在于规则清晰、可重复——不是「追涨一定赚钱」。在 A 股,通道突破必须叠加涨跌停认知、成本假设、批量与单账户双验证,才能判断是继续加过滤,还是把精力换到更匹配的赛道。

青柠量化 用比较条件即可表达「近 N 日高点突破」,无需虚构不存在的通道组件;常规日线研究免费版可闭环,打板、分钟线、参数实验室与 WFO 在专业版按需使用。

写突破策略最容易犯的错,是把研究结论说成市场真理。20 日高在部分年份、部分标的池有效,不等于永久有效;证伪与迭代同样是正经研究成果——比硬撑「海龟圣杯」更接近专业量化人的思维方式。

产品页:青柠量化(零代码 A 股量化)

https://www.zpyztech.com/product/qingquant/


免责声明: 本文仅作量化研究方法与软件使用说明,不构成任何投资建议。历史回测不代表未来表现,请独立判断并自行承担交易风险。