要检验策略优势能否经受更高的交易成本,可以在一系列手续费、点差、滑点和市场冲击假设下重新运行回测。然后找出表现转为负值时的成本水平,并将其与目标交易场所和订单规模的实际证据进行比较。
单一的“现实”成本估算掩盖了真正需要回答的问题:估算偏差多大,结果才会失效?我想要的是一条成本曲线,而不是一个随手打的折扣。
回测中应该提高哪些成本?
先从策略实际承担的成本入手。对于市价单,通常包括 taker 手续费、点差、滑点,以及任何随规模变化的冲击成本。对于限价单,要计入费率档位和订单成交概率;如果真正支撑结果的是过于乐观的成交假设,那么 maker 返佣也帮不上忙。永续合约还要计入资金费率,有些产品则会产生借贷、行权或结算成本。
先逐项调整假设。如果同时提高手续费、将滑点加倍并把成交率减半,结果变差也很难看出问题出在哪里。完成单项测试后,再运行能代表合理不利条件的组合压力测试,例如在波动较大的时段扩大点差。
| 假设 | 有用的压力测试 | 检验内容 |
|---|---|---|
| 交易手续费 | 当前费率档位,再测试更高档位 | 手续费表及对交易量档位的依赖 |
| 点差和滑点 | 分别提高 25%、50% 和 100% | 对更差执行价格的敏感度 |
| 市场冲击 | 随订单规模或参与率变化 | 测试规模的资金能否按假设价格成交 |
| 限价单成交率 | 下调预估成交量,并计入部分成交 | 对排队位置和成交假设的依赖 |
| 资金费率或借贷成本 | 采用历史不利时期的数据或更高费率 | 持仓成本和融资敞口 |
这些只是起点,并非适用于所有情况的压力水平。流动性充足的现货交易对和流动性稀薄的山寨币永续合约,不应仅仅为了便于比较就使用相同的滑点倍数。
如何计算策略的盈亏平衡交易成本?
保持信号、仓位规模和组合规则不变。逐步提高每单位成交名义金额的可变成本,直到净表现降至零。如果策略交易了 $1 million 的名义金额,扣除可变执行成本前的收益为 $8,000,那么在这部分毛利耗尽之前,所有这些成本合计最多可占名义金额的 0.80%。
这个计算结果只是上限,并不能证明策略能以足够低的成本交易。$8,000 的收益可能来自少数几笔交易,而且市场冲击可能随订单规模迅速上升。应同时针对整个回测,以及不同时间段或市场状态计算盈亏平衡点。
统一计量单位。 按单边报价的手续费必须在入场和出场时各收取一次。资金费率可能按周期计算,而换手率通常按年报告。比较之前,先将各项成本换算到相同的时间跨度和名义金额口径。
如何判断策略对成本是否脆弱?
观察成本曲线的形态。曲线逐渐下滑,说明你还有一定空间应对估算误差。如果成本稍微提高,表现就突然崩塌,往往意味着表面上的优势集中在那些预期利润刚刚超过成本的交易上。
以一项短周期策略为例,基准净 Sharpe 为 1.2。滑点提高 25% 后降至 0.3,提高 50% 后净收益转负,这说明结果高度依赖执行质量。这并不证明策略无法使用,而是提醒你在相信回测之前,先调查交易场所、订单类型和交易规模。
还要检查收益分布,而不只是 Sharpe。成本可能抹去许多小额盈利,却保留少数大额盈利,因此即使平均收益看起来尚可,回撤和亏损时期也可能恶化。
我应该采用能想到的最糟糕成本假设吗?
不应该。随意设定的极端情景会让所有策略看起来都很差,也无法给出有用的操作边界。应根据观测数据构建情景:交易场所的手续费表、决策时点附近的点差、实盘模拟成交情况,以及预期下单规模对应的市场冲击。
将正常条件与压力时期分开处理。例如,按波动率区间估算点差和滑点,再从这些区间抽取成本重新运行策略。这样可以保留市场状况与执行成本之间的关系。简单地将成本翻倍,可能会忽略策略恰好在流动性最差时交易最频繁这一事实。
成本敏感性报告应该记录什么?
将假设与结果一并保存,以便其他研究人员复现。至少应报告:
- 手续费、点差、滑点、市场冲击、资金费率和借贷成本假设,以及对应的单位和来源。
- 基准情景和各压力水平下的净收益与风险指标。
- 盈亏平衡成本,以及策略不再满足研究标准时的成本水平。
- 在样本数据允许的情况下,按市场状态、交易品种和订单规模拆分结果。
- 哪些执行假设来自实测,哪些仍是估算。
然后用同一套成本账本,将模拟交易策略与回测结果进行比较。如果模拟成交持续差于模型情景,就更新模型并重新运行研究。目标不是找出一个能让回测过关的单一成本数字,而是弄清策略能承受多大的执行不确定性,以及现有证据是否支持这么大的余量。
← 全部文章


