套利交易的自适应平仓:Diff Excess Factor、Slippage Factor 与 Critical Slippage 26 10 月, 2026 – Posted in: 套利软件

BJF TRADING GROUP · SHARPTRADER · 套利平仓

套利交易的自适应平仓:Diff Excess Factor、Slippage Factor 与 Critical Slippage

此前,SharpTrader 中的每一笔套利交易都使用相同的平仓设置:相同的 Min profit、相同的 Trailing step、相同的 Stop loss。一笔在大价差下以完美成交价开仓的交易,与一笔大部分价差已被滑点吃掉的交易,被以完全相同的方式管理。三个新的品种设置改变了这一点。现在,每笔交易都会根据其信号强度和成交质量获得各自的平仓水平。本指南将解释每个参数的工作原理,给出 XAUUSD 的计算示例,并提供优化的起始值。

简短回答

简短回答:Diff excess factor % 让在强信号下开仓的交易有更多的运行空间。Slippage factor % 在成交价差于请求价格时更早锁定利润。Critical slippage % 在成交价差到套利几乎已不存在时,为该交易设置一个更紧的止损。三个参数默认均为关闭(0),在您设置之前不会有任何变化。策略跟踪和锁定利润的方式保持不变,改变的只是它为每笔交易使用的数值。

Diff excess factor %强信号 = 更多空间按信号超出阈值部分的一定比例提高 Min profit 和 Trailing step。
Slippage factor %成交不佳 = 更早锁定按成交所遭受滑点的一定比例降低 Min profit 和 Trailing step。
Critical slippage %价差消失 = 紧止损用基于经纪商点差计算的更紧止损替代原止损。

为什么所有交易使用同一种平仓是一种折中

在延迟套利中,交易之所以开仓,是因为快速数据源显示了慢速经纪商尚未达到的价格。能赚多少取决于两个因每笔交易而异的因素:信号触发时价差有多大,以及在订单成交之前有多少价差因滑点而损失。

固定的平仓设置忽略了这两点。强信号与勉强达标的信号被同样紧密地跟踪,往往在价格完成追赶之前就被平仓。成交不佳的交易会一直等待一个已无法达到的利润目标。而在经纪商已经追上价格之后才成交的交易,与真正具有优势的交易受到同样宽的止损保护,尽管它剩下的只是随机的价格波动。这三个新参数让每笔交易针对这三种情况分别拥有自己的平仓水平。

如果您对滑点本身还不熟悉,我们的外汇滑点测量与降低指南解释了滑点的来源以及如何在您自己的成交记录中解读它。

在哪里找到这些参数

这些设置按品种配置,适用于四组策略。每个参数都可以像其他品种参数一样纳入优化。

策略 设置位置 作用于哪类交易
OneLeg Instruments 表格中 “Cooldown (ms)” 之后。仅在拥有 Advanced optimization 许可证时显示并生效。 策略开立的每一笔交易
Lock, LockCL, LockCL2, LockCL3 Instruments 表格靠近末尾处,”Min pips” 之后 套利信号在任一经纪商上产生的未对冲头寸
PhantomDrift Instruments 表格,位置与 Lock 相同 仅限套利头寸;马丁格尔订单保留各自的止损
Umbra Lock 品种 “Edit…” > Extra settings > “Protective stops of the unlocked leg” 套利平仓后未锁定的那一条腿
SharpTrader LockCL2 的 Instruments and Orders 表格,突出显示 Diff excess factor %、Slippage factor % 和 Critical slippage % 三列,均设为 0
LockCL2 品种表格:三个新列(高亮)位于 Min pips、Reverse factor %、Min move、Trend interval 和 Cooldown 之后。三者默认均为 0。

对于锁定套利策略、Phantom Drift 和 Umbra Lock,这些参数只作用于承担套利风险的头寸。锁定腿、马丁格尔订单及其他头寸保持您的常规设置。

这些参数以什么为衡量基准

三个参数都将交易与策略已在使用的信号阈值进行比较:

  • OneLeg 中的 Diff to open;
  • Lock 系列策略中,进行交易的那家经纪商对应的 Diff to open 1 或 Diff to open 2;
  • Umbra Lock 中的 Diff to close;
  • 当策略仅依据价格冲击交易时(Diff to open 为 0 且设置了 Min move)使用 Min move。Min move 的说明见我们关于冲击入场与反向平仓的文章。

每次成交都会得到两个数值:价差(交易开仓时信号的大小)和滑点(订单成交价比请求价格差了多少点)。超出值即价差减去阈值。

Diff excess factor %:为强信号留出更多空间

Diff excess factor % 按信号超出阈值部分的这一百分比,提高该交易的 Min profit 和 Trailing step。

增加值 = (价差 − 阈值) × Diff excess factor %

示例:一笔在 25 点价差下开仓、Diff to open 为 10 的交易,其超出值为 15 点。设为 50% 时,Min profit 和 Trailing step 均增加 8 点(7.5 四舍五入)。

道理很简单。价差越大,意味着慢速经纪商需要追赶的距离越远,因此预期的价格变动也越大。使用固定平仓时,强信号与勉强达标的信号被同样紧密地跟踪,往往在价格完成追赶之前就被平仓。

  • 好处:强信号获得运行空间,从而提高最佳交易的平均利润。
  • 不变的情况:恰好处于阈值的信号没有超出值,保持您常规的 Min profit 和 Trailing step。
  • 已关闭的平仓保持关闭:设为 0 的 Min profit 或 Trailing step 仍然为 0;该参数绝不会开启您已关闭的平仓。

Slippage factor %:成交不佳后更早锁定利润

Slippage factor % 按成交所遭受滑点的这一百分比,降低该交易的 Min profit 和 Trailing step。

减少值 = 滑点 × Slippage factor %(两个数值均不低于 1 点)

示例:成交价比请求价格差 8 点,设为 100% 时,两个数值均降低 8 点。

滑点是已经损失掉的那部分预期收益:价格朝有利方向可移动的剩余距离变少了。更低的平仓水平能更早锁定剩余部分,而不是等待一个交易已无法达到的目标。

  • 只计算不利滑点。成交价优于请求价格时不做任何改变。
  • Lock 系列策略、PhantomDrift 和 Umbra Lock:使用的是产生未对冲头寸的那次平仓的滑点。
  • 好处:减少那些达到少量利润、未能锁定、最终转为亏损的交易。
  • 与 Diff excess factor % 结合使用时两项调整会相加:强信号加上不佳成交,最终数值可能接近常规值。

Critical slippage %:价差消失时使用紧止损

当滑点超过信号价差的这一百分比时,该交易的止损将被基于经纪商点差计算的更紧止损替代。

若 滑点 > 价差 × Critical slippage %:止损 = 点差 × max(2, 价差 ÷ 滑点)

示例:设为 50% 时,一笔在 53 点价差下开仓、成交价差了 46 点(价差的 87%)的交易会获得紧止损。若成交时经纪商点差为 10 点,则止损为 20 点。

这样的交易几乎已没有套利空间:在订单执行期间,慢速经纪商已经追上了价格。剩下的只是随机的价格波动,因此最好的做法是让其可能的亏损保持在较小范围。

  • 紧止损等于成交时刻经纪商点差乘以 2,若 价差 ÷ 滑点 更大,则乘以该值。10 点的点差对应 20 点的止损。
  • 它只会降低风险:紧止损绝不会比您的 Stop loss 更宽。当 Stop loss 为 0 时它同样适用。
  • Umbra Lock:出于同样的原因,紧止损可以低于 Stop loss 通常的 50 点最小值。
  • 仅限隐藏止损:它改变的是策略的隐藏止损;已随订单发送给经纪商的止损不会被修改。
  • 好处:那些造成最大可避免亏损的交易,即在机会消失后才成交的交易,会被提早截断。
图表:一笔 53 点价差中有 46 点被滑点吃掉的成交之后,价格逆向移动 51 点;20 点的 critical slippage 止损将其平仓,而常规的 50 点止损则不会
下方计算示例中的交易 C。价格路径为示意图;止损水平和 51 点的变动来自示例。

计算示例:三笔 XAUUSD 交易

三笔 XAUUSD 交易(1 点 = 0.01)展示了相同设置如何产生不同的平仓水平。品种设置:Diff to open 40,Min profit 20,Trailing step 20,Stop loss 50,经纪商点差 10。新参数:Diff excess factor 50%,Slippage factor 100%,Critical slippage 50%。如果不使用新参数,三笔交易都会得到 Min profit 20、Trailing step 20 和 Stop loss 50。

交易 价差(点) 滑点(点) Min profit(点) Trailing step(点) Stop loss(点)
A:强信号,成交干净 60 2 28 28 50
B:弱信号,成交不佳 45 15 8 8 50
C:价差消失后才成交 53 46 1 1 20
交易 A、B、C 的瀑布图:常规 Min profit 20,加上超出值调整,减去滑点调整,分别得到 28、8 和 1 点
每笔交易的 Min profit 是如何构成的。Trailing step 的变化方式相同。数值在成交时一次性计算,以整点为单位。
  • A 的超出值为 20 点,滑点很小:20 + 10 − 2 = 28。两个平仓水平都向外移动 8 点,交易有了运行空间。
  • B 的超出值为 5 点(+3,四舍五入),但有三分之一的价差被滑点吃掉(−15):它在 8 点时锁定利润,而不是等待 20 点。
  • C 是一笔来自实盘交易的真实交易。滑点吃掉了价差的 87%,因此 Min profit 和 Trailing step 降至 1 点的下限,交易获得 20 点的临界止损。随后价格逆向移动了 51 点:亏损约为 20 点,而不是 51 点。
分组柱状图:交易 A、B、C 的 Min profit、Trailing step 和 Stop loss 与常规值 20、20、50 的对比
相同的设置给出三组不同的平仓水平。如果没有新参数,每笔交易都会得到 20 / 20 / 50。

推荐起始值

从下列数值开始,并在您自己的品种和经纪商上通过回测加以确认。它们只是起点,而非保证:最佳数值取决于您的经纪商滑点的频率和幅度。

参数 起始值 优化范围 数值调高的效果
Diff excess factor % 25–50 0–100,步长 25 为强信号留出更多空间;过高会让它们回吐利润
Slippage factor % 50–100 0–100,步长 25 成交不佳后更早锁定利润;100 = 每一点滑点都从平仓水平中扣除
Critical slippage % 50 0–100,步长 10 获得紧止损的交易更少;低于 30 时,普通滑点也会开始触发它
SharpTrader 优化参数窗口,DiffExcessFactor、SlippageFactor 和 CriticalSlippage 已勾选优化,最小值 0,最大值 100
在 SharpTrader 优化器中勾选进行优化的三个参数(高亮)。截图中的范围只是一种可能的设置。

如何逐步调整

1

使用大于 0 的执行时间进行回测。只有这样才会模拟滑点;否则 Slippage factor % 和 Critical slippage % 无从发挥作用。请使用您在自己账户上测得的平均执行时间。

2

运行基准测试。将三个参数都设为 0,对同一时间段运行一次,以便有可比较的对象。

3

每次只添加一个参数,或按上述范围对它们进行优化,并将利润和回撤与基准进行比较。

4

在策略日志中检查几笔交易。查找以 “Exit values for” 开头的行,确认平仓水平符合您的预期。

请在核心参数之后再调整这些参数。在我们关于创建您自己模板的分步视频中(见下方),顺序是:先调整 Diff to open、Min profit、Pips for min profit 和 Take profit,然后是 Stop loss 和 Take profit,最后是 Reverse factor 及较新的控制项,包括这三个参数。

须知事项

  • 每笔交易只计算一次,在成交时刻计算,以整点为单位,并在交易的整个生命周期内保持不变。
  • 只影响套利交易。锁定腿、马丁格尔订单及其他头寸保持您的常规设置。
  • 以百分比表示的 Trailing step:当 Trailing units 为 “Percent” 时,跟踪步长是利润的一定比例,保持不变;Min profit 仍会被调整。
  • 重启之后,已经开立的交易使用您的常规设置。
  • OneLeg 需要 Advanced optimization 许可证才能使用这些参数。没有该许可证时,参数会被隐藏、不被使用,也不会出现在优化中。支持 Diff units 为 “Percent” 的品种。
  • 启用 “Keep limit orders” 的 OneLeg:这类成交不带滑点信息,因此只有 Diff excess factor % 对其起作用。
  • 在日志中查看。对于每笔受影响的交易,策略日志中都有一行以 “Exit values for” 开头的记录。它显示价差、超出值、滑点、新旧 Min profit 和 Trailing step,以及在 Critical slippage % 生效时的紧止损。
回测只是模拟。这些参数根据您的经纪商实际给出的滑点工作。回测显示的是某个配置在您输入的执行时间下、在历史 tick 数据上会如何表现;它不能保证未来的结果。请定期重新检查您的执行时间,因为经纪商一旦开始增加延迟,这些参数所响应的滑点也会随之变化。

视频:创建您自己的模板

这段 10 分钟的视频以 LockCL2 为例展示了完整流程:收集 tick 数据、测量您的真实执行时间、分阶段优化,并用更慢的执行速度对结果进行压力测试。

自适应平仓是 SharpTrader 的一部分

Diff excess factor %、Slippage factor % 和 Critical slippage % 可用于 OneLeg(Advanced optimization 许可证)、Lock、LockCL、LockCL2、LockCL3、PhantomDrift 和 Umbra Lock。终身免费技术支持将帮助您完成设置并解读结果。

SharpTrader锁定套利Min move 与 Reverse factor

常见问题

如果我把这些参数保持为 0,会有什么变化吗?

不会。三个参数默认均为关闭(0)。在您设置数值之前,您的策略会完全按照以前的方式跟踪和锁定利润。

哪些策略支持 Diff excess factor、Slippage factor 和 Critical slippage?

OneLeg(需 Advanced optimization 许可证)、Lock、LockCL、LockCL2、LockCL3、PhantomDrift 和 Umbra Lock。在 OneLeg 中它们作用于每一笔交易;在其他策略中只作用于承担套利风险的头寸。

为什么回测中需要大于 0 的执行时间?

只有执行时间大于 0 时才会模拟滑点。设为 0 时没有滑点,因此 Slippage factor % 和 Critical slippage % 无从发挥作用,只有 Diff excess factor % 会改变结果。

Critical slippage 会改变发送给经纪商的止损吗?

不会。它只改变策略的隐藏止损。已随订单发送给经纪商的止损不会被修改。紧止损绝不会比您的 Stop loss 更宽。

成交不佳后,Min profit 或 Trailing step 会变成 0 吗?

不会。Slippage factor % 绝不会把它们降到 1 点以下。如果您自己将 Min profit 或 Trailing step 设为 0,它们将保持为 0:这些参数绝不会开启您已关闭的平仓。

如何查看策略对某笔交易做了什么?

打开策略日志,查找以 “Exit values for” 开头的行。每一行都显示价差、超出值、滑点、新旧 Min profit 和 Trailing step,以及在 Critical slippage % 生效时的紧止损。

外汇、差价合约和加密货币交易具有较高的亏损风险。本文中的示例旨在说明这些参数如何计算平仓水平,并非对结果的预测。BJF Trading Group 是软件开发商,不是经纪商或投资顾问。