订单刷新容差¶
更新于 v0.28.0
此功能允许您指定一个“可容忍”的价差范围——在每次刷新周期中,处于该范围内的订单不会被取消,而是保留在订单簿中。它允许您设定允许的最小价差变化百分比,以决定何时调整订单。假设中间市场价格发生变动,您可以通过设置容差百分比,灵活控制订单取消/替换(刷新)的时机,从而捕捉额外利润(参见下方此参数有何帮助)。
order_refresh_tolerance_pct¶
用于延迟订单刷新至下一周期的价差(相对于中间价格)。
**提示:**
工作原理¶
输入 config order_refresh_tolerance_pct 来设置此参数。默认情况下,该参数值为 0。
这意味着 Hummingbot 将在每个 order_refresh_time 秒后取消所有活跃订单(不包括挂起订单)。但如果价格自上一周期以来未发生变化,Hummingbot 将保留这些订单不变。将该值设为 -1 将禁用此功能,意味着 Hummingbot 将始终在每个 order_refresh_time 秒后取消并重新创建订单。
例如,将 order_refresh_tolerance_pct 设置为 0.1,当到达刷新时间点时,若活跃订单的价差从 1.0% 变为 0.9%–1.1%,该订单将被保留在订单簿中(不被取消)。但如果价差超出 1.1% 或低于 0.9%,则订单将被取消。
请注意,您可以将 order_refresh_tolerance_pct 设置得高于买卖价差。若如此,价差可能变为负值,从而导致您处于亏损状态。
示例¶
假设您在某交易所交易 ETH-USDT 资产对,初始中间市场价格为 200 USDT(\(t_0\))。
示例市场¶

配置¶
示例状态输出/日志¶
买卖价差均为 2%,因此您的机器人将在卖价 204 USDT 和买价 196 USDT 处挂单(\(t_1\))。此配置将创建如下订单。
Orders:
     Level  Type    Price Spread Amount (Orig)  Amount (Adj)       Age
         1  sell      204  2.00%         0.001         0.001  00:00:01
         1   buy      196  2.00%         0.001         0.001  00:00:01
每 30 秒,机器人仅在价差超出 1%–3% 范围时才会取消并替换订单。
30 秒后(\(t_2\)),中间市场价格上涨至 201 USDT;卖价差为 1.49%,买价差为 2.49%。订单状态如下:
Orders:
     Level  Type    Price Spread Amount (Orig)  Amount (Adj)       Age
         1  sell      204  1.49%         0.001         0.001  00:00:29
         1   buy      196  2.49%         0.001         0.001  00:00:29
买卖订单的价差未超过初始值的 1%。日志面板中将显示相应提示信息。
假设一位市场套利者(即市场吃单者)看好即将达到 3 USDT 前的较小卖价差(在卖价差降至 0.99% 之前,约为 1%),并决定成交您的卖单,因为他们预期市场价格将上涨。在 \(t_3\) 时,机器人取消买单,并以 2% 的买卖价差重新创建两个新订单。
Orders:
     Level  Type    Price Spread Amount (Orig)  Amount (Adj)       Age
         1  sell   205.02  2.00%         0.001         0.001  00:00:01
         1   buy   196.98  2.00%         0.001         0.001  00:00:01
现在,假设在 \(t_4\) 时价格下跌至 199 USDT。买价差为 1.01%,卖价差为 3.02%。由于价差变化幅度超过了 1% 的容差范围,因此超出了订单刷新容差。
机器人取消这两个订单,并在 \(t_5\) 时以 2% 的价差重新挂单。
Orders:
     Level  Type    Price Spread Amount (Orig)  Amount (Adj)       Age
         1  sell   202.98  2.00%         0.001         0.001  00:00:01
         1   buy   195.02  2.00%         0.001         0.001  00:00:01
现在,在 \(t_6\) 时,买价差和卖价差分别为 1.5% 和 2.5%。
Orders:
     Level  Type    Price Spread Amount (Orig)  Amount (Adj)       Age
         1  sell   202.98  2.52%         0.001         0.001  00:00:29
         1   buy   195.02  1.51%         0.001         0.001  00:00:29
机器人将保留这些订单,因为它们仍在订单刷新容差范围内,并再次显示以下消息:
注意
日志中不再显示:余额不足,无法执行买入(卖出)订单.... 订单数量已调整为 > 由于新订单价格与当前订单价格的差异在范围内,未取消活跃订单。
假设一名市场套利者认为市场价格将大幅下跌,并看好你的买入价差,他们便可以以 195.02 的价格成交你的买入订单。
此参数有何帮助¶
该参数的默认容差为 0%。因此,在每次刷新周期中,只要价差发生任何变化,机器人就会取消现有订单,并按配置的价差重新挂单。由于每次刷新都会重置价差,这提高了买卖价差更贴近原始买卖价差的可能性,从而降低了价差大幅偏离原始价差的风险,或许可避免损失。然而,正如我们上面所见,该策略能够利用买卖价差的灵活性(容差),因为价格接受者可能正在寻找你未知的某种价差范围。
