订单刷新容差¶
更新于 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
,当根据 order_refresh_time
到达刷新时间时,一个活动订单的价差从 1.0% 变化到 0.9%-1.1%,此订单将保留在订单簿中(不被取消)。然而,如果价差超过 1.1% 或低于 0.9%,则订单将被取消。
请注意,可以将 order_refresh_tolerance_pct
设置为大于买卖价差。如果是这样,价差可能为负值,使您处于亏损状态。
示例¶
想象一下,您在交易所交易 ETH-USDT
资产对,起始中间市场价格为 200 USDT(\(t_0\))。
示例市场¶
配置¶
示例状态输出/日志¶
买卖价差为 2%,因此您的机器人将在卖价 204 和买价 196(\(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;卖价差为 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 之前,卖价差接近 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
现在考虑在 $4 时价格跌至 199。买价差为 1.01%,卖价差为 3.02%。这超出了订单刷新容差范围,因为价差变化超过了 1%。
机器人取消两个订单并替换为 2% 的价差,我们说在 \(t_5\) 时。
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
机器人将保留这些订单,因为它们在订单刷新容差范围内,并再次显示以下消息:
注意
Not enough balance for buy (sell) order .... order_amount is adjusted to
> Not canceling active orders since the difference between new order prices and current order prices is within
不再在日志中显示。
假设一个市场吃单者认为市场价格将大幅下跌,并且喜欢你的买盘价差。他们随后可以以 195.02 的价格成交你的买单。
这个参数有何帮助¶
此参数的默认值为 0%的容差。因此,在每个刷新周期中,如果价差发生任何变化,机器人将取消订单并在配置的价差处重新下单。由于价差在每个刷新周期都会重置,这增加了买卖价差更接近原始买卖价差的可能性。这降低了价差大幅偏离原始价差的风险,或许能够防止亏损。然而,如上所述,该策略可以利用买卖价差的灵活性(容差),因为吃单者可能在寻找你并不知晓的某些价差范围。