滑点假设
什么是滑点假设
滑点假设是指用于表示目标成交价格(例如,基于价格图表或中间价的预期成交价)与实际交易执行时所获价格之间差异的一系列规则。在外汇市场中,这种差距可能来源于交易成本和市场微观结构效应,例如买卖价差、价格快速变动,以及下单时间与实际成交时间之间的延迟。
在回测中,由于模拟通常无法完全重现每一次真实执行的细节,因此需要设定滑点假设。取而代之的是,你定义一种实用的方法来调整模拟的入场和出场价格。在前向测试(在实盘或模拟环境中运行相同策略逻辑)中,也可以使用相同的假设作为参考,但你还需将其与实际观察到的成交结果进行比较,以判断这些假设是否仍然合理。
滑点假设在回测与前向测试中的工作方式
核心理念:执行并非瞬时完成
交易引擎很少能在其决策时刻精确地以该时刻价格成交。即使使用“市价单”,成交价格也取决于当时可用的流动性。因此,滑点假设将一个预期交易转化为一个估计的执行结果。
通常需要的输入
为了使滑点假设具有现实基础,通常需要基于以下输入:
- 模拟所使用的参考价格(例如,中间价、买价/卖价,或最后成交价)。
- 决策时间点的测量规则(K线收盘、K线开盘,或事件驱动时间)。
- 点差与成交价格之间关系的假设。
- 建模决策与成交之间价格变动的方法(例如,固定偏移量、概率分布,或条件规则)。
两种常见的假设应用方式
-
订单成交时的价格调整:你通过在参考价格基础上增加或减去一个滑点金额,来调整模拟的成交价格。当市场条件不利时,这种方法会产生系统性的“劣于理想”的执行结果。
-
使用滑点分布进行执行建模:不采用单一固定滑点值,而是使用一组具有相应概率的可能滑点值。这反映了不确定性,并可在多次运行中产生不同结果。
在这两种方法中,一致性至关重要。回测中使用的逻辑应与前向测试中实际订单成交的方式保持一致,包括参考价格的约定和时间点的约定。
验证循环
一种有用的流程是将滑点假设视为对执行行为的一种假设:
- 使用该假设运行回测。
- 运行前向测试并记录实际成交价格。
- 将实际执行差异(目标价 vs. 成交价)与假设的滑点模式进行比较。
- 仅在有证据表明执行过程存在差异时,才更新假设。
这一循环有助于避免将假设过度拟合到某一特定市场条件时期。
相关的局限性、风险及不确定性的体现
回测可能隐含乐观偏差
如果滑点假设过于宽松,模拟交易的表现可能优于实际执行情况。这并非因为策略逻辑“错误”,而是因为未真实反映执行成本和时间不确定性。
当以下情况发生时,风险加剧:
- 交易发生在市场快速变动期间。
- 策略触发大量订单或依赖精确时机。
- 市场点差扩大或流动性下降。
模拟与执行之间的不匹配
即使你已包含滑点,常见的失败模式是定义上的不一致。例如,如果模拟器使用中间价,而前向测试环境在成交时实际参考的是买价或卖价,那么“相同”的滑点假设可能并不代表相同的经济现实。
时间周期依赖性
由于波动率状态和流动性变化,执行条件可能随时间而变化。从某一历史时段估算出的滑点假设,可能无法直接适用于另一时段,尤其是当点差和市场深度表现不同时。
数据质量与测量不确定性
你评估滑点假设的能力取决于可测量的内容:
- 如果你只有OHLC数据,可能无法捕捉决策与成交之间发生的K线内价格跳空。
- 如果无法可靠重建订单时间戳,你可能无法确定导致滑点的真实时间偏移。
由于这些限制,应将假设的滑点视为执行结果的近似值,而非精确复现。
如何独立验证你的假设
比较分布,而不仅仅是平均值
平均滑点可能掩盖尾部风险。那些罕见但严重的执行事件往往导致最差结果。比较分布形态(小滑点与大滑点发生的频率)能提供更完整的图景。
保持参考约定的一致性
检查回测的参考价格与前向测试的执行参考是否定义一致。否则,你可能是在与不同基准进行“验证”。
在不同条件下跟踪假设
验证你的滑点假设在不同波动率和点差条件下的表现。在平静市场中有效的单一规则,在压力时期可能失效。
记录假设以便审计
滑点假设应明确且可测试:使用了什么参考价格,假设了什么时间偏移,以及滑点如何计算。这使得结果可复现,并能识别不匹配的起始点。
滑点假设与其他相关概念的区别
滑点假设是一种执行建模选择,而其他相关概念描述的是组成部分或背景:
- 点差 是报价中可观察到的买卖价差。
- 佣金和费用 是账户层面的收费。
- 延迟或执行延迟 描述的是决策与成交之间的时间。
滑点假设可能将其中一些效应合并为单一的执行调整,但你仍应明确你的假设试图代表哪些效应,以及哪些效应在模型的其他部分处理。
在哪些市场条件下滑点假设表现不同
当以下情况发生时,滑点行为通常会发生变化:
- 波动率上升,导致决策与成交之间价格变动更大。
- 流动性下降,使得在假设价格水平成交更加困难。
- 点差扩大,增加从买价到卖价(或反之)的交易成本。
这些变化可能使固定滑点规则的准确性降低,并可能需要根据测量的点差或波动率代理指标变化的条件性假设。
可能影响滑点假设的成本
可在滑点建模内部或外部反映的与执行相关的成本包括:
- 买卖价差成本(通常与参考价格选择相关)。
- 手续费和佣金(有时单独建模,有时嵌入执行调整中)。
- 任何改变有效成交价格的一致性交易成本。
关键是清晰:决定这些项目是作为滑点假设的一部分包含在内,还是单独建模,并在回测和前向测试中保持这一决策的一致性。