许多 A 股投资者的第一套量化直觉来自美股教程:信号出现当日收盘买入,止损触发当日卖出;回测里每根 K 线都能成交,流动性无限。把同一套假设搬进 A 股,曲线往往系统性偏乐观——不是因为策略「在美国有效、在中国无效」,而是因为交易制度与可成交性完全不同。
A 股个人投资者面对的核心约束至少包括:T+1(当日买入次日才能卖)、涨跌停(价格触及涨跌幅限制时往往买不到或卖不出)、板块差异(主板 10%、创业板/科创板 20% 等),以及后复权常规回测与打板未复权专项的分工。忽视这些约束,回测年化 30%、实盘半年亏 15% 的落差(系列前文「可信度自检」)里,有一大块本可在研究阶段就被看见。
本文是 A 股交易约束与回测口径的深度指南:讲清每条约束如何改变买卖时序与成交假设,LemonPicking 里常规后复权回测能验什么、不能验什么,打板为何必须未复权(系列 06 专文延伸),以及如何用批量/单账户与动画复盘把「买不进、卖不出」从幻觉里剥离。示例界面来自 LemonPicking 历史回测与打板回测模块;打板未复权回测需专业版授权,常规日线回测免费版近约 3 年日 K 可跑通。
一、制度差异一张表:A 股 vs 常见美股假设
| 维度 | 常见美股回测假设 | A 股现实 | 对回测的影响 |
|---|---|---|---|
| 卖出时机 | 当日可卖(T+0) | T+1:当日买入次日才能卖 | 日内止损、当日止盈在 A 股不可执行(除非昨日已有持仓) |
| 涨跌幅 | 多数无日涨跌幅硬限制 | 涨跌停板 | 涨停常买不到,跌停常卖不出 |
| 价格口径 | 调整后价格常见 | 趋势策略用后复权;打板用未复权 | 混用口径会得出错误结论 |
| 成交规则 | 收盘价/ VWAP 各异 | LemonPicking 常规:收盘确认,下一根开盘成交 + 佣金滑点 | 比「信号当根收盘立刻成交」更保守 |
| 流动性 | 大盘股深度好 | 小票、一字板、封板排队 | 批量回测易高估(系列批量 vs 单账户) |
核心结论: A 股回测不是「少几个函数」的问题,而是默认假设集不同。用 LemonPicking 做零代码 A 股策略时,应先在脑子里切换到 A 股约束,再读夏普和年化。
二、T+1:持仓约束如何改写出场与风控
T+1 的含义:你在 T 日(通常按收盘确认信号、T+1 日开盘成交买入)建立的仓位,最早在 T+1 日才能卖出——更严谨地说,T 日买入的份额,T 日不能卖。
2.1 对策略 SDL 的直接影响
| 规则类型 | 美股思维写法 | A 股可回测写法 |
|---|---|---|
| 固定止损 | 「跌破 -5% 当日卖出」 | 需明确:持有满 T+1 后下一可卖日按规则卖;或仅用收盘价止损于可卖日 |
| 日内止盈 | 「冲高 3% 卖」 | 日线回测通常无法表达精确 intraday 止盈,除非分钟线(专业版) |
| 信号反转 | 「死叉当日全平」 | 可卖日若仍持仓,按出场信号于下一根开盘卖(与 LemonPicking 成交规则一致) |
| 打板当日炸板止损 | 「炸板即走」 | 打板专项模块处理;常规日线需知边界 |
2.2 T+1 决策树:你的出场规则是否「假执行」
出场条件触发
│
├─ 触发日 = 买入当日?
│ │
│ 是 ──► **常规日线回测无法当日平仓**
│ 应改为:次日及以后可卖日执行
│ │
│ 否
│ │
├─ 出场信号是否「收盘确认 + 次日开盘卖」?
│ │
│ 是 ──► 与 LemonPicking 默认一致 ✓
│ │
│ 否(例如「 intraday 触及即卖」)──► 需分钟线或接受口径偏差
│
└─ 是否依赖「当日买入当日止损」?
│
是 ──► 回测会**高估**风控;实盘做不到
常见反例: 策略写「买入后若当日收盘跌破 MA5 则卖出」。若买入发生在 T+1 开盘(由 T 日收盘信号触发),则「买入当日」实际是 T+1——这条规则在 T+1 日收盘才可卖,逻辑上可行;但若理解成「信号日当日可卖」,则与 T+1 冲突。动画复盘逐 K 线核对买入日与卖出日是否间隔至少一个可卖周期,是排查 T+1 误设的最快方法。
三、涨跌停与可成交性:买不到、卖不出的数学
涨跌停制度下,价格触及涨跌幅上限时,往往缺乏对手盘——涨停时散户常见「排板买不到」,跌停时「挂卖卖不出」。回测若默认「只要有信号就能按开盘价/收盘价成交」,在强势涨停策略上会严重高估。
| 场景 | 市场现象 | 若回测忽略约束 | LemonPicking 中的应对 |
|---|---|---|---|
| 一字涨停 | 开盘即涨停,排队难成交 | 假设开盘买到 | 打板回测可配置成交概率/跳过原因 |
| 尾盘涨停 | 封板晚,可能可买 | 一律成交 | 打板模块看封板时刻;常规回测不模拟排板 |
| 跌停卖不出 | 持仓遇跌停无法离场 | 假设收盘卖出 | 常规回测部分场景按规则;打板/极端行情需专项 |
| 连续涨停 | 连板加速 | 每日都能买 | 打板未复权 + 可成交假设 |

常规后复权历史回测主要服务均线、MACD、突破等趋势/指标策略,默认口径是后复权 + 收盘确认 + 下一根开盘成交 + 费用。它对涨跌停的处理是研究级保守近似,而非逐笔撮合——因此:
- – 不要用常规回测去验证「追涨停、打首板」类规则,然后与实盘打板对比;
- – 应该使用专业版打板回测(未复权)专项模块(系列 06 已讲原理,本篇强调与 T+1、可成交性联动)。
四、后复权常规回测的边界:能验什么、不能验什么
LemonPicking 历史回测模块采用后复权价格,目的是让 MA、MACD 等指标在除权除息日连续,避免假突破。这与打板研究的未复权需求并行不悖——各管各的策略类型。
| 模块 | 价格口径 | 适用策略 | 能较好回答的问题 | 不能可靠回答的问题 |
|---|---|---|---|---|
| 历史回测 | 后复权 | 趋势、均线、MACD、共振过滤等 | 长区间收益、回撤、胜率(在默认成交假设下) | 涨停能否买到、封板率、连板层级 |
| 打板回测 | 未复权 | 首板、连板、封板率、炸板止损 | 连板表现、封板时刻、跳过原因 | 与后复权趋势策略直接比收益率 |

边界清单(务必内化):
- 1. 后复权回测的收益率 ≠ 当时账户若用未复权报价交易的收益率——它检验的是「规则在复权连续价格 + 约定成交假设下」的表现。
- 2. T+1 与涨跌停在常规模块中是制度-aware 的近似,不是 Level-2 逐笔仿真。
- 3. 分钟线(专业版)可细化部分 intraday 逻辑,但仍受涨跌停与流动性假设限制。
- 4. 两种模块的胜率、年化不可直接争论「哪个对」——口径不同,问题不同。
五、打板未复权专项:与常规回测如何配合
打板策略关心:是否首板/连板、封板时刻、炸板、一字板能否成交。涨停幅度绑定实际报价(未复权),除权后后复权价格会把历史涨停位「拉变形」——用后复权判定「那天是否涨停」会系统性错误(系列 06 专文)。
专业版打板回测三步流:
- 1. 选股与资金 — 标的池、初始资金、区间;
- 2. 打板策略 — 连板层级、封板率、成交假设、炸板止损等;
- 3. 回测结果 — 胜率、连板层级、封板时刻分布、跳过原因(买不到的关键证据)。

与 T+1 的交叉: 打板买入若发生在 T 日,T 日不能卖;炸板止损、次日低开止损等规则必须在模块语义下理解「最早可卖日」。读交易明细时对照买入日期与卖出日期,比只看汇总胜率更重要。
研究组合建议:
| 你的策略成分 | 建议模块 |
|---|---|
| 纯趋势(金叉、突破) | 历史回测(后复权) |
| 纯打板(首板、连板) | 打板回测(未复权,专业版) |
| 趋势筛选 + 打板执行 | 分拆验证:趋势用后复权,打板用未复权;勿混成一个数字 |
六、批量 vs 单账户:约束叠加后谁更「诚实」
系列前文「批量回测 vs 单账户模拟」指出:批量模式每只票独立本金,信号可全部成交;单账户共享资金与最大持仓,会出现「信号有了但买不进」。
当叠加 T+1 + 涨跌停 + 仓位上限 时,差距进一步放大:
| 模式 | T+1 体现 | 涨跌停体现 | 典型误读 |
|---|---|---|---|
| 批量单标的 | 每票独立时间线,仍可能高估「同日多票可买」 | 不一定模拟涨停买不到 | 把平均年化当账户预期 |
| 单账户线性 | 统一账户时间线,卖出释放资金后才能再买 | 与引擎规则一致的部分更可见 | 若只做批量会忽视 |
实操顺序:
- 1. 批量看策略在标的池上是否普遍有效(中位数收益、回撤分布);
- 2. 单账户设置真实最大持仓、固定比例仓位(系列 23 仓位专文);
- 3. 看跳过/未成交比例与资金曲线——若大量信号因槽位或资金被丢弃,批量年化没有参考意义。

打板策略更极端:涨停日多信号扎堆,单账户下排板资金分配与买不进是常态——必须以打板回测的跳过原因 + 单账户(若适用)为准,而非全市场批量「每只都买到」。
七、动画复盘:在约束条件下做「行为质检」
汇总指标告诉你「赚多少」;动画复盘告诉你「是不是在涨跌停/T+1 规则下仍然说得通的赚法」。

复盘核对清单(约束专项):
- 买入是否发生在信号收盘确认后的下一根开盘(而非信号当根收盘立刻买,除非你明确接受更乐观假设)
- 卖出日是否 ≥ 买入日后的第一个可卖日(T+1)
- 买入点是否频繁落在一字涨停或连续涨停——若是,常规回测可能过度成交,打板需专项
- 大跌日是否有「跌停卖不出」仍显示当日全平——若有,查出场规则与模块口径
- 单账户模式下,同日多信号是否只成交部分——与资金/持仓一致
系列前文强调:数字好看但点位怪异,优先查未来函数与口径;本篇补充:点位怪异还要查涨跌停与 T+1。
八、决策树:我该用哪种回测、哪种口径?
你的策略主要依赖什么?
│
├─ 均线/MACD/突破/多指标共振
│ │
│ ▼
│ 历史回测(后复权)
│ + 收盘确认 / 次日开盘 / 佣金滑点
│ + 批量 → 单账户
│ + 动画复盘
│
├─ 首板/连板/封板率/炸板
│ │
│ ▼
│ 打板回测(未复权,专业版)
│ + 配置成交假设与封板率
│ + 读跳过原因
│ + 勿与后复权年化直接比
│
├─ 日内精细止损/止盈(分钟级)
│ │
│ ▼
│ 专业版分钟线 + 接受流动性近似
│ + 仍受 T+1 卖出限制
│
└─ 混合(趋势选 + 涨停买)
│
▼
拆成两段验证,禁止单曲线糊弄
九、常见反例:六种「像 A 股、其实是美股脑回路」的写法
| 反例 | 错误假设 | 后果 | 修正 |
|---|---|---|---|
| 1. 当日止损 | T 日买 T 日卖 | 回测风控偏乐观 | 可卖日再止损;或分钟线明确假设 |
| 2. 后复权打板 | 用后复权判涨停 | 封板率、连板层全错 | 打板模块未复权 |
| 3. 批量年化上实盘 | 忽略涨停买不到 | 预期虚高 | 单账户 + 打板跳过原因 |
| 4. 混比两种模块收益 | 口径不同 | 错误决策 | 分开报告 |
| 5. 信号当根收盘成交 | 比 LemonPicking 默认更乐观 | 比实盘早半拍 | 对齐下一根开盘 + 费用 |
| 6. 忽视板块涨跌幅 | 统一 10% | 创/科 20% 策略失真 | 打板模块按板块配置 |
反例 3 的真实故事模板: 全市场批量回测「突破 + 放量」,平均年化 28%;单账户最大 5 只、30% 仓位,年化 11%,且大量信号在涨停日无法买入——这不是策略「失效」,是约束与资金终于进入方程。
十、可执行步骤:从规则到可信 A 股回测
第 1 步:给策略贴标签
在策略说明里写清:趋势型 / 打板型 / 混合;决定进历史回测还是打板回测。
第 2 步:对齐 LemonPicking 默认口径
后复权(常规);收盘确认、下一根开盘成交、佣金滑点;出场规则不与 T+1 冲突。
第 3 步:批量建立普适性
标的池、免费版约 3 年或专业版更长历史;看中位数指标,不盯单票。
第 4 步:单账户加压
最大持仓、固定比例仓位;记录跳过信号与资金占满天数。
第 5 步:打板类走专项
专业版未复权打板回测;导出跳过原因统计。
第 6 步:动画复盘
至少 20 笔交易,按第七节清单核对 T+1 与涨跌停附近行为。
第 7 步:与实盘监测衔接(可选)
系列「想法到盯盘提醒」第 6 站:规则通过约束检验后,再用飞书/桌面监测——监测不能替代回测约束,只能替代「人在不在场」。

十一、与系列其他概念的交叉索引(无外链,便于对照)
| 系列概念 | 与本篇约束的关系 |
|---|---|
| 未来函数 / 前视偏差 | 与 T+1 无关;但若用未来 K 线算指标,回测仍会「好看」——约束正确也救不了前视 |
| 批量 vs 单账户 | 涨跌停买不到在批量里被平均掉;单账户 + 最大持仓才可见 |
| 后复权 vs 未复权 | 趋势用前者,打板用后者;本篇第四节边界表 |
| 佣金滑点 | LemonPicking 默认下一根开盘成交 + 费用;比信号当根收盘成交保守 |
| 收盘后全市场选股 | 筛选结果多 ≠ 都能买到;需单账户 + 涨停约束意识 |
| 打板未复权专文 | 本篇第五节延伸;涨停判定必须用实际报价 |
| 分钟线回测 | 可细化 intraday,仍受 T+1 卖与涨跌停限制 |
| 实盘监测 | 约束检验通过后,监测只解决「提醒」,不解决「成交」 |
十二、案例对照:同一「突破买入」在三种假设下的差异
规则(口语): 收盘价突破 20 日高点买入,跌破 10 日低点卖出;每次 30% 仓位。
| 假设集 | 模块 | 可能结论 |
|---|---|---|
| 美股式 | 假想:后复权 + 信号当根收盘成交 + T+0 当日可卖 | 年化偏高、回撤偏低——非 A 股 |
| LemonPicking 常规 | 后复权 + 收盘确认/次日开盘 + T+1 + 费用 | 中等年化——趋势策略基准 |
| + 涨跌停意识 + 单账户 | 同上 + 最大 5 只 + 复盘核对涨停日 | 年化再降、但更可信 |
| 若改成「突破涨停追入」 | 必须打板未复权(专业版) | 与上表数字不可比 |
复盘会发现: 美股式假设下,不少「跌破 10 日线卖出」发生在买入当日——A 股做不到;LemonPicking 常规会把卖出推到可卖日,曲线更锯齿,但更诚实。
十三、FAQ:T+1 与涨跌停回测八问
Q1:T+1 是否意味着持有至少两个交易日?
若 T 日收盘确认、T+1 开盘买入,则最早 T+1 日收盘后(T+2 开盘)才可卖——至少跨一个完整持仓日,常理解为「买入后次日才能卖」。
Q2:常规回测会不会模拟涨停买不到?
对非打板策略是近似处理;追涨停类必须用打板模块。
Q3:创业板 20% 涨停在常规回测里?
趋势策略影响小于打板;打板模块按板块配置幅度。
Q4:跌停开盘卖不出,回测怎么显示?
可能延迟到可成交日;以引擎规则与交易明细为准,复盘核对。
Q5:后复权回测收益能否换算成「真实账户」?
不能简单换算;它回答的是复权连续价格下的规则表现。
Q6:打板与常规能否合并成一个策略文件?
编辑器可写复杂逻辑,但验证应分拆:趋势段走后复权,涨停段走打板。
Q7:免费版 3 年日线够吗?
够理解 T+1/涨跌停与单账户;更长牛熊与打板深度需专业版。
Q8:动画复盘要看的最低样本?
建议 ≥ 20 笔;其中刻意包含涨停附近、大跌日、多信号同日。
结语:A 股回测的「诚实」,始于承认买不到、卖不出
美股教程教的是方法;A 股实盘教的是约束。T+1 让风控慢一天,涨跌停让成交多一层概率,后复权与未复权让不同策略走不同验证通道——把这些写进研究流程,回测数字才会从「好看的故事」变成「可执行的假设」。
若你用 LemonPicking 做零代码 A 股量化,免费版即可完成后复权常规回测、批量/单账户与动画复盘;涉及打板、分钟线、更长历史时,专业版提供未复权打板回测与更细粒度数据——但任何模块输出均为历史假设下的研究参考,不构成投资建议或收益承诺。
下载与说明见产品页:
https://www.zpyztech.com/product/lemonpicking/
免责声明: 本文仅作 A 股交易制度与量化回测方法说明,不构成任何投资建议。历史回测在简化假设下产生,与实际成交可能存在差异,请独立判断并自行承担交易风险。
建议标签: A股 T+1 涨跌停 可成交性 打板 未复权 量化回测