阶段6回测基础●●●●●

滑点假设:回测成本参数的"定价学"

我的掌握程度:
q-518精讲

先掌握这个答案

三层结构:①固定值(入门):单边0.1-0.3%——先有个数;②分层假设(合格):按流动性分层(大盘0.05%/中盘0.1%/小盘0.25%)+按时段(开盘±50%)——成本随标的特性变化;③量价模型(进阶):滑点= f(订单占均成交额比例),如线性冲击impact=0.6×participation——大资金回测必用。保守原则:用实测或估算的P75而非P50(实盘偏分布的坏边);机构的"影子回测"甚至假设成交价=决策价±2×tick。敏感性报告格式:三档成本(乐观/基准/悲观)下的净收益表——策略生死不应在±50%成本假设间翻转。

先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。

从理解到使用

每一笔收益都要有可执行时间线

打印数据截止时间、信号时间、订单时间、成交时间和持仓收益区间。收盘信号不能乘当天完整收益;次日开盘成交也不能无条件拿到整个close-to-close收益。用原始价格判断可成交性,并纳入停牌与涨跌停。

成本必须按成交口径计算

声明换手是单向还是双向,是否有单笔最低佣金、卖出税费、借券利息和期货展期。成交价差、冲击与资金占用不能混为一个固定常数;对费率和参与率做压力测试。

本阶段实战方法 · 回测先过时序、成交与成本三道关

把信号变成策略收益时,每笔收益必须能追溯到当时能下出的订单。

  1. 画出时间线:数据可得→算信号→下单→成交→持仓收益;收盘信号不能倒用当天完整收益。
  2. 明确交易价格、T+1可卖数量、停牌涨跌停、仓位上限和实际成交量约束。
  3. 同时报告毛/净收益、换手、最大回撤、基准和样本外结果;对滑点与费率做压力测试。

使用边界

  • 简单shift(1)只解决部分时序问题;次日开盘成交还要区分隔夜和日内收益。
  • 成本应按成交金额与买卖方向计提;0.15%是教学情景,不是统一市场费率。
背景 · 从一个困惑说起
q-054(阶段1)讲了滑点是什么;回测里真正的问题是:假设多少?0.05%太天真、0.5%太悲观——拍脑袋的常数既不公平也不真实。滑点假设有自己的"定价学"。
由此产生的问题
滑点假设的三层结构(固定值/分层/量价模型)?保守原则怎么落地(P50还是P75)?敏感性报告的标准格式?
核心概念
三层结构:①固定值(入门):单边0.1-0.3%——先有个数;②分层假设(合格):按流动性分层(大盘0.05%/中盘0.1%/小盘0.25%)+按时段(开盘±50%)——成本随标的特性变化;③量价模型(进阶):滑点= f(订单占均成交额比例),如线性冲击impact=0.6×participation——大资金回测必用。保守原则:用实测或估算的P75而非P50(实盘偏分布的坏边);机构的"影子回测"甚至假设成交价=决策价±2×tick。敏感性报告格式:三档成本(乐观/基准/悲观)下的净收益表——策略生死不应在±50%成本假设间翻转。
为什么需要它
①成本假设=回测的第二生命线(第一是防前视):同样的信号,滑点0.1%与0.3%常是盈利与亏损之差;②"保守偏差"的正确方向:回测乐观偏差系统性存在(q-521),成本端悲观一点是对整体悲观的对冲;③与实盘的校准闭环:q-939的滑点实测数据回流——假设不是一次性的,是随实盘数据进化的参数。
实际应用场景
标准配置文件:cost.yaml定义分层的slippage+fee;回测报告必附三档敏感性;每月用实盘成交更新分位估计。
与之前知识的联系
q-053/054(阶段1成本/滑点)的回测工程版;q-056(换手×成本)的消费端;q-939(滑点实测)构成"假设→实盘→校准"闭环。
⚠ 常见误解
  • 用市场的平均滑点:你的滑点取决于你的单量与对手盘——别人的平均值不是你的价格;分层+参与率才贴近
  • 成本假设保守到策略全亏:过度悲观同样失真(错杀可行策略)——P75+敏感性区间是平衡点
  • 滑点假设定了就不变:市场流动性结构会变(注册制后小票流动性下台阶)——参数要定期重估

🤖 AI导师

导师会先检查你的前置知识(成本三件套、滑点概念),再用案例、公式和代码帮助理解。此功能需要先启用服务。