在 SharpTrader Optimizer 中优化 Phantom Drift 和 Lock 策略 July 17, 2026 – Posted in: 套利软件



BJF TRADING GROUP  ·  SHARPTRADER OPTIMIZER

优化 Phantom Drift 和每一种 Lock 策略:为什么 Martingale-Plus-Arbitrage 比 latency 更需要诚实的 backtesting

我们的 live latency 测试已经证明,参数优化会影响真实资金:同一策略、两个账户,经过调优的参数组将平均亏损降低了三倍。Lock 家族策略叠加了两台盈利机器:一条 averaging ladder 和一个 lock-arbitrage leg,因此诚实优化带来的收益更大,而不是更小。SharpTrader Optimizer 现在会同时调优这两部分,适用于 Hedge、Phantom Drift 以及所有 Lock 变体。

新能力:完整 Lock 家族
覆盖:Hedge、Phantom Drift、所有 Lock 变体
两部分:martingale ladder + arbitrage leg
状态:已发布



简短回答:SharpTrader Optimizer 现在会在每一种 Lock 家族策略上运行其现实执行参数搜索,包括 Phantom Drift。它会扫描 13 个数值参数,这些参数控制策略的两部分:averaging ladder(MaxTrades, LotExponent, PipStep, StopLoss, TakeProfit)以及arbitrage 和 exit 逻辑(DiffToOpen1/2, MaxSpreadFast/Slow, ArbProfit,以及利润控制项)。每个候选参数组都会在真实 tick 数据上评分,并纳入建模后的执行 latency、每个 tick 的可变 spread,以及两条 leg 上的 slippage。RSI 指标本身不属于 grid;相反,你需要在不同 RSI 设置下分别运行 backtest,然后比较它们如何改变结果。由于多组件策略会在每一层 averaging 以及 hedge 的两侧都支付执行成本,它比单 leg latency arbitrage 更依赖 backtest 的诚实性,也能从正确完成的优化中获得更大收益。



刚刚发布了什么

今年早些时候,SharpTrader Optimizer 增加了 Hedge 策略优化功能,并且我们将完整 Lock 家族列为下一个里程碑。现在,这个里程碑已经交付。optimizer 可以在每一种 Lock 家族策略上运行基于真实 tick、并考虑执行因素的参数扫描,其中包括 Phantom Drift,这是一种将 lock arbitrage 包装进 RSI 触发的 averaging 序列中的策略,因此在 broker 风控系统看来,它像一个普通的技术交易者。

关键在于被优化的是什么。Phantom Drift 不是一个单一机制,而是两个按顺序工作的机制:一个可见的 averaging ladder,即构建 drawdown 深度的 martingale 部分;以及一个 lock-arbitrage leg,即根据 fast-feed 信号解锁仓位的 arbitrage 部分。到目前为止,你只能手动调这些组件,然后寄希望于结果。现在,optimizer 会搜索两者的联合参数空间,并按照 live 市场实际收取成本的方式给每个候选参数组评分。



latency 测试已经证明了这个原则

在把 optimizer 扩展到多组件策略之前,我们想证明 optimizer 的现实执行评分能够转化为 live 结果,而且要用一种可以清晰衡量的策略来验证。所以我们做了最简单的实验:在两个 live 账户上同时运行相同的 latency arbitrage 逻辑,一个使用优化后的参数,一个使用默认值,同一 instrument、同一 lot size、同一起始余额。唯一变量就是参数组。

平均亏损成本更低
5.41→11.3Profit factor
−6.2→−2.0每次亏损 pips
0.42%优化后最大 DD

优化后的账户并没有追逐更大的盈利。它缩小了亏损交易的成本,将平均亏损交易从 −6.2 pips 降到 −2.0 pips,并让 profit factor 提高了一倍以上,同时 drawdown 更低。这是一个单 leg 策略,只有一次 entry 和一次 exit。现在,把这个结果与一个会打开一串 averaging 仓位、然后对整个 stack 做 hedge 的策略放在一起,你就会看到优化的杠杆在哪里更大。



为什么 Lock 策略是更难、影响更大的优化问题

单 leg latency 交易支付两次执行成本:进场一次,出场一次。一个 Phantom Drift cycle 要支付更多次。每一层 averaging 都是真实订单,会穿过真实 spread,并承受真实 slippage。然后 lock 增加一个 hedge 仓位,unlock 再将它关闭,其中每一个都是有自身 fill 成本的 leg。让 latency 账户每笔亏损交易损失几个 pips 的同一种执行摩擦,现在会在整条 ladder 和双边 hedge 上被放大。

用一句话说明复合问题

在单 leg latency arbitrage 中,执行成本是一趟 round trip 上的税。在 martingale-lock 策略中,执行成本会在每一层 averaging 和 hedge 的两条 leg 上复合累积,因此同样的 per-fill error,曾经只是悄悄削减 latency 账户,现在会重塑整条 ladder 的风险轮廓。

这种累积会双向发挥作用。这意味着,用懒惰假设测试的 Lock 策略,例如 bar data、zero-latency fills 和固定 spread,看起来会比真实交易安全和平滑得多,因为逐层摩擦根本没有被计入。它也意味着,找到能够承受诚实执行成本的参数组,在这里比任何地方都更有价值,因为这里有更多可能被算错的成本。



optimizer 现在会一起调优的两个部分

13 个可优化参数分为两个相互耦合的组。optimizer 会联合搜索它们,因为 averaging ladder 的间距和规模决定每条 leg 吸收多少执行成本,而 spread 和 difference 阈值决定 ladder 究竟会被触发多频繁。

PART A · AVERAGING LADDER

martingale 结构

这是 broker 能看到的可见建仓序列,也是构建 lock 所需 drawdown 深度的部分。扫描参数:

  • MaxTrades – 该序列最多可以建立多少个仓位(2 到 6)
  • LotExponent – 每增加一层时的 lot 倍数(1.5 到 3)
  • PipStep – averaging entry 之间的 pip 距离(20 到 60)
  • StopLoss / TakeProfit – 每个仓位的 exit(50–100 / 200–500)
PART B · ARBITRAGE & EXIT

盈利机制和 gate

决定何时值得开仓的 difference 与 spread 阈值,以及关闭仓位的利润控制项。扫描参数:

  • DiffToOpen1 / DiffToOpen2 – 触发 entry 的价格差阈值(10 到 100)
  • MaxSpreadFast / MaxSpreadSlow – fast 和 slow feed 上的 spread gate(1 到 50)
  • ArbProfit – arbitrage 利润阈值(10 到 100)
  • MinProfit / PipsForMinProfit / MaxProfit – 止盈控制项

单独调任何一半都会留下价值。更深或更宽的 averaging ladder 会改变 arbitrage leg 需要恢复的 drawdown;更严格的 spread 或 difference gate 会改变 ladder 最初被构建的频率。联合搜索才是重点。

完整优化 grid

以下是 sweep 会改变的参数,以及默认的 min、step 和 max 范围。在运行搜索之前,请根据你的 instrument 和账户规模扩大或缩小任何范围。

参数 Min Step Max
StopLoss 50 10 100
TakeProfit 200 50 500
MinProfit 10 10 100
PipsForMinProfit 10 10 100
DiffToOpen1 10 10 100
DiffToOpen2 10 10 100
MaxSpreadSlow 1 5 50
MaxSpreadFast 1 5 50
MaxTrades 2 1 6
LotExponent 1.5 0.5 3
PipStep 20 10 60
MaxProfit 10 10 50
ArbProfit 10 10 100

RSI 指标不在 grid 中,这是有意设计

Phantom Drift 的 entry 指标 RSI 并不是被扫描的数值参数之一。grid 会调优上面的建仓、spread、difference 和利润参数。要研究 RSI 设置如何影响结果,请在你想测试的每个 RSI 配置下分别运行优化,然后比较这些运行中评分最高的参数组。

这通常也是思考指标更有用的方式:不要把它混入一个 grid 中,而是清楚地观察更严格或更宽松的 RSI 如何移动整个优化后的表面,同时让其他所有条件保持诚实。



为什么标准 backtester 会在 martingale-lock 策略上误导你

大多数零售 strategy tester 都是为 directional system 构建的,它们会做出三个假设:对 directional strategy 来说只是乐观,但对 martingale-lock 来说却非常危险。它们用 bar data 定价,假设 zero-latency fills,并应用单一固定 spread。在 averaging ladder 上,这些错误中的每一个都会在每一层被收取一次,然后又在 hedge 的两条 leg 上再收取一次。

一条在 M1 bars 上看起来平滑的 martingale equity curve,一旦每个 averaging entry 都支付该 tick 当时真实存在的可变 spread,一旦 lock 和 unlock 各自支付独立 slippage,一旦 fill delay 被建模而不是被假设不存在,就可能变成完全不同的东西。差异不会表现为一个稍低的数字,而会表现为不同的风险轮廓,因为懒惰 backtest 说你能扛过去的那一层,诚实 backtest 会说它打破了 equity-control level。

被计入的内容 标准 backtester SharpTrader Optimizer
价格分辨率 M1 / M5 bar 近似 从你自己的账户记录的真实 ticks
订单执行时间 假设即时执行(zero latency) 可按毫秒配置 latency
Spread 固定 broker 默认值 每个 tick 的历史可变 spread
每个 averaging entry 上的 slippage 忽略或固定 按每次 fill 建模
Lock + unlock legs 当作免费 / 即时处理 两条 leg 独立计费
可行 grid size 小型,single-threaded 所有核心上 100,000+ 组合
最佳交易时段 不显示 24 小时 performance heatmap



诚实执行评分会如何改变 Lock 策略

让 latency 结果可信的四件事,在 Lock 策略中更重要,而不是更不重要,因为每一项都会在 ladder 和 hedge 上反复计入。

01

来自你自己账户的真实 tick 数据

ticks 由 SharpTrader 从你的 live broker 账户记录,因此每个 averaging entry 都落在你账户实际看到的价格上,并包含 broker 的真实行为,而不是 bar 的 open 或 close,也不是理想化 feed。在 ladder 上,bar 近似会悄悄错误估算 arbitrage leg 所继承的 drawdown。

02

执行时间建模

你设置一个以毫秒为单位的现实 fill delay。对于 lock-arbitrage leg 来说,它的全部 edge 都来自 fast-feed 优势,因此 zero-latency 假设正是让它在纸面上好看、却在 live 中失败的假设。

03

每个 tick 的可变 spread

每一层都支付其开仓时真实存在的 spread,而不是固定默认值。Averaging 往往会在波动剧烈、spread 较宽的时候加仓,这正是固定 spread 测试最容易低估真实成本的时候。

04

两条 leg 上的 slippage

lock 和 unlock 会被独立建模。一个在天真测试中免费关闭的 hedge,在这里会被诚实计费,因此测试中每个 cycle 的恢复,就是你实际可以期待的恢复。



如何运行 Phantom Drift 优化

1. 记录你自己的 tick 历史。SharpTrader 会直接从你的 live broker 账户收集 ticks,而不是使用 broker 提供的理想化 feed。这意味着历史数据已经包含你的账户实际经历的一切,包括任何 broker-side plugins、requotes 或执行细节。你是在用真实交易条件测试,而不是干净的实验室 feed。参数不能跨 broker 转移,因此请在你实际部署的账户上记录并测试。

2. 设置现实的 execution latency,以毫秒为单位,反映你的 fast feed 相对于执行 broker 的优势。

3. 定义 grid,覆盖 13 个参数:ladder 侧的 MaxTrades、LotExponent、PipStep、StopLoss 和 TakeProfit;arbitrage 与 exit 侧的 DiffToOpen1/2、MaxSpreadFast/Slow、ArbProfit 以及利润控制项。根据你的 instrument 和账户规模调整每个 min、step 和 max。

4. 在所有核心上运行 sweep。一个大型多参数 grid 可以在数小时内完成,并且会对每个候选参数组计入每 tick 可变 spread 和双 leg slippage。

5. 阅读 heatmap 和 score。按 profit factor 和 drawdown 排名,而不是按可见 win rate 排名,并使用 24 小时 heatmap 查看哪些 session 真正承载 edge。

6. 按 RSI 设置重复。由于 RSI 不会在 grid 中被扫描,你需要在每个想比较的 RSI 配置下重新运行 sweep,并观察最佳参数组如何在它们之间变化。

这在实践中意味着什么

  • 两部分都会被优化,而不只是 arbitrage。Averaging ladder 是大多数隐藏执行成本所在的地方,因此根据诚实 fills 来调优它,是许多改进的来源。
  • 按 profit factor 和 drawdown 优化,而不是按被掩盖的 win rate。正如 latency 测试所显示的,看起来更好的 win rate 并不等于保留更多资金的账户。
  • 按 instrument 和 broker 重新校准。Lock 策略的执行特征具有 broker-specific 性;在一个环境中调优的参数组,在另一个环境中无效。
  • 永远不要相信 ladder 上的 zero-latency、fixed-spread 测试。这是必然会隐藏真正击穿策略那一层的设置。



常见问题

SharpTrader Optimizer 现在可以优化 Phantom Drift 吗?

可以。Phantom Drift 是 Lock 家族的一部分,完整 Lock 家族支持现在已经发布。optimizer 会像处理 Latency 和 Hedge 策略一样,在 Phantom Drift 上运行基于真实 tick、并考虑执行因素的参数 sweep。

它优化 martingale averaging 部分,还是只优化 arbitrage 部分?

两者都会优化,而且是联合优化。optimizer 会把 averaging ladder 参数(MaxTrades, LotExponent, PipStep, StopLoss, TakeProfit)与 arbitrage 和 exit 参数(DiffToOpen1/2, MaxSpreadFast, MaxSpreadSlow, ArbProfit, MinProfit, PipsForMinProfit, MaxProfit)一起扫描。这两个组是耦合的,因此一起调优才是重点。RSI entry 指标不属于 grid。

为什么 martingale-lock 策略比 latency arbitrage 更需要诚实 backtesting?

因为执行成本会复合累积。单 leg latency trade 在一次 round trip 上支付 spread 和 slippage。Lock 策略在每一层 averaging 和 hedge 的两条 leg 上都支付这些成本。假设 zero latency 和 fixed spread 的 backtester,会在 latency 上低估一次成本,但在 ladder 上会低估很多次,足以改变策略的整个风险轮廓,而不只是最终收益。

它会在 Phantom Drift 策略上调优哪些参数?

十三个数值参数:StopLoss, TakeProfit, MinProfit, PipsForMinProfit, DiffToOpen1, DiffToOpen2, MaxSpreadSlow, MaxSpreadFast, MaxTrades, LotExponent, PipStep, MaxProfit 和 ArbProfit。每个参数都有可配置的 min、step 和 max。RSI entry 指标不会在 grid 中扫描;要研究它的影响,请在不同 RSI 设置下分别运行优化并比较。

tick 数据来自哪里?

来自你自己的账户。SharpTrader 会直接从你的 live broker 连接记录 ticks,因此你用来优化的历史数据就是你的账户收到的精确价格流,并包含 broker 的真实执行行为,无论 broker 是否在你的账户上运行 plugins。你不是在 broker 发布的理想化或清理后的 feed 上测试;你是在实际到达你 terminal 的数据上测试。这就是参数具有 broker-specific 性、结果能够代表 live 条件的原因。

我也可以优化 RSI 指标设置吗?

不能在参数 grid 内进行,因为该 grid 扫描的是 13 个数值型仓位、spread、difference 和利润参数。要查看 RSI 如何影响结果,请在你想测试的每个 RSI 配置下分别运行优化,然后比较这些运行中评分最高的参数组。这比把 RSI 混入一个 grid 更能清楚地显示更严格或更宽松的 RSI 如何移动整个 optimized surface。

参数可以在 broker 或 instrument 之间迁移吗?

不可以。每个 instrument 都有自己的 spread 行为和 volatility,每个 broker 也有自己的执行特征。一个参数组只对它被调优时的条件有效,因此在部署之前,应按每个 instrument 和每个 broker environment 重新运行 sweep。

Lock-family optimization 现在可用了吗?

是的,已经发布。现有 SharpTrader Optimizer 用户可以请求最新 build,任何正在考虑该工具的人也可以在产品页面查看完整功能列表。如需 build 或配置 lock-strategy sweep 的帮助,请写信至 support@bjftradinggroup.com。





诚实地调优你的 Phantom Drift 和 Lock 策略

SharpTrader Optimizer 现在会扫描完整 Lock 家族、Hedge 和 Phantom Drift,覆盖 averaging ladder 与 lock-arbitrage leg,并在真实 tick 数据上使用建模后的执行时间、可变 spread 和双 leg slippage 对每个候选参数组评分。找到能在 production 中存活的参数组,而不只是 bar 上看起来平滑的参数组。

探索 SharpTrader Optimizer