1. 课程导入

课程导入 学习卡片

很多策略回测的收益曲线看起来非常漂亮,但一旦进入实盘,收益却明显缩水,甚至由盈转亏。问题往往不在信号本身,而在于回测对成交、成本和公司行动这三件事的仿真过于粗糙。本课程的目标,就是把这三大“回测失真源”逐一拆开,讲清楚它们的机制、建模方法和落地实现,让你的回测结果更接近真实交易。

一、学习目标:从“能跑通”到“可信赖”

完成本课程后,你应当具备以下能力:

  • 理解回测中成交假设的差异,能够根据策略类型选择合适的成交模型(如次bar开盘价成交、限价单撮合、部分成交)。
  • 掌握交易成本的完整构成,包括佣金、印花税、过户费、滑点与冲击成本,并能将其参数化到回测引擎中。
  • 能够正确处理分红、送股、配股、拆股、合并等公司行动,避免因复权处理不当导致的虚假收益或错误持仓。
  • 能够识别回测中常见的“未来函数”和“幸存者偏差”,并设计合理的验证流程。
  • 最终能够独立搭建一个包含成交、成本与公司行动仿真的回测模块,并对结果进行归因分析。

核心判断标准:一个可信的回测,不是收益最高的回测,而是当把成交延迟、成本摩擦和公司行动都如实建模后,策略依然能保持正向期望的回测。

二、核心概念:成交、成本与公司行动

这三个概念分别对应回测流水线中的三个关键环节:信号如何变成持仓、持仓如何产生摩擦、持仓如何被外部事件改变。

概念 核心问题 常见失真表现 建模要点
成交仿真 信号发出后,以什么价格、什么数量、什么时间成交? 用收盘价成交、假设全部成交、忽略涨跌停 成交时点、撮合逻辑、成交量约束、部分成交
成本仿真 每笔交易实际扣掉多少钱? 只算佣金、忽略滑点和冲击成本 佣金、税费、滑点模型、冲击成本、最低收费
公司行动仿真 持仓期间发生分红送配拆合,价格和数量如何调整? 复权价格用错、现金分红未入账、配股未处理 前复权/后复权、现金分红、送转股、配股、拆合股

三者不是孤立的。例如,一笔在除权日附近的交易,如果成交价格用了未复权价,而成本计算又基于复权价,就会产生双重错误。因此,本课程强调统一的价格口径和事件时序。

三、整体框架:回测仿真的四层结构

为了把上述概念落地,我们采用一个四层框架来组织回测系统:

  1. 数据层:提供原始行情、公司行动事件表和交易日历。关键是区分“未复权价”和“复权因子”,并保留原始事件记录。
  2. 撮合层:根据订单类型和bar数据,决定成交价格、成交数量和成交时间。这是成交仿真的核心。
  3. 账户层:维护现金、持仓、市值和成本基础,处理费用扣除、分红入账、送转股调整。
  4. 分析层:输出收益曲线、换手率、成本占比、归因结果,用于评估策略的真实表现。

实践建议:在写第一行回测代码之前,先画出你的数据流图,明确每个价格字段是“未复权”还是“已复权”,每个事件在哪个时点被处理。这能避免后期大量的返工。

四、案例与场景:一个被成本吃掉的策略

假设有一个日频均值回归策略,每天开盘买入昨日跌幅最大的股票,次日开盘卖出。用收盘价回测,年化收益18%,看起来不错。但加入真实约束后:

初始资金: 1,000,000
佣金: 万分之三,最低5元
印花税: 千分之一(卖出)
滑点: 单边0.1%
日均换手: 80%
回测周期: 250个交易日

成本估算:
单边成本率 ≈ 0.03% + 0.1% = 0.13%(买入)
卖出成本率 ≈ 0.03% + 0.1% + 0.1% = 0.23%
往返成本 ≈ 0.36%
年化成本拖累 ≈ 0.36% × 80% × 250 ≈ 72%

这个例子虽然夸张,但它说明:高频换手的策略对成本极其敏感。如果回测中忽略滑点和印花税,收益会被严重高估。再叠加除权日未处理分红,实际结果可能完全不可用。

五、常见误区与复盘

  • 误区一:用收盘价成交。信号在收盘后计算,却用当天收盘价成交,这是典型的未来函数。正确做法是次bar开盘成交,或明确延迟。
  • 误区二:成本只算佣金。印花税、过户费、滑点和冲击成本往往比佣金大得多,尤其是小盘股和高换手策略。
  • 误区三:复权价格混用。用前复权价计算收益,却用未复权价计算持仓数量,会导致股数错误。
  • 误区四:忽略停牌和涨跌停。信号发出但无法成交的情况在回测中被“顺利成交”,会虚增收益。
  • 误区五:公司行动事件缺失。分红送转未入账,导致现金和持仓与真实账户偏离。

复盘要点:每次回测结果异常好时,先检查三件事——成交时点是否用了未来数据、成本是否完整、公司行动是否处理。这三项排查完,再讨论策略本身。

六、实战价值:为什么值得投入

把成交、成本和公司行动仿真做扎实,带来的价值是直接的:

  • 减少实盘落差:回测与实盘的偏差主要来自这三项,仿真越细,落差越小。
  • 优化策略参数:在真实成本约束下,策略会自动倾向于低频、高容量的方向,避免过度优化。
  • 提升资金容量评估:冲击成本模型能帮助你判断策略能承载多大规模的资金。
  • 增强合规与风控:正确处理公司行动和税费,是资金核算和风控的基础。

接下来的章节,我们将从数据层开始,逐步搭建这套仿真体系。你会看到具体的代码实现、参数配置和调试日志,最终形成一个可复用的回测模块。