跳至内容

订单层级

这些参数允许您在每一侧设置多层订单,从而对每组订单的价差和数量进行更精细的控制。

order_levels

订单簿每侧要放置的订单层级数量。

**提示:**

How many orders do you want to place on both sides?
>>>

order_level_amount

从第一层之后的后续订单层级开始,订单数量可以增加(若设置为大于零的值)或减少(若设置为小于零的值)。

**提示:**

How much do you want to increase or decrease the order size for each additional order?
>>>

order_level_spread

在第一层级之后,后续订单层级的价差会逐级递增。

**提示:**

Enter the price increments (as percentage) for subsequent orders?
>>>

警告

order_level_spread 设置为一个非常小的数值,可能导致多个订单被放置在同一价格层级上。例如,对于 SNM/BTC 这类资产,若您因资产价值较低而将订单间隔百分比设为 0.4(约 0.4%),则下一笔订单的价格将被四舍五入至交易所支持的最近价格,这可能导致多个订单出现在同一价格层级。

工作原理

输入 order_levels 的值,以指定您希望在每侧(买入和卖出)放置多少笔订单。

注意

示例:输入 3 将在买卖双方各放置三笔挂单,总计六笔订单。

用户还可以根据 order_level_amount 中指定的增量或减量,从第一笔订单开始增加或减少后续订单的大小。若不希望订单数量随层级递增,可将其设为 0;若希望第一层之后每层订单数量增加 0.4,则设为大于 0 的值(如 0.4);若希望第一层之后每层订单数量减少 2,则设为小于 0 的值(如 -2)。

注意

示例:若起始订单大小为 7000,订单步长为 1000,则第二笔订单大小为 8000,第三笔为 9000

order_level_spread 的逻辑与订单步长相同,但它是从第一笔订单开始,逐层增加后续订单的价差。

注意

示例:您的第一笔买入和卖出订单的价差为 1(1%),订单间隔值为 2(2%)。第二笔订单的价差为 3(3%),第三笔为 5(5%)。

现在我们聚焦于订单簿的一侧:卖方一侧。根据上述示例场景,您的活跃订单将显示如下:

orderlevels

示例配置

- market: BTC-USDT
- bid_spread: 1
- ask_spread: 1
- order_amount: 0.002
- order_levels: 3
- order_level_amount: 0.002
- order_level_spread: 0.5

使用上述参数运行机器人时,status 命令将显示 BTC-USDT 交易对中的三层订单:Market making with 3 order levels for BTC-USDT

您可能会注意到,实际输出的价差与我们配置的百分比参数并不完全一致。这是由于以下两个原因:

  • 量化:Hummingbot 会调整订单价格以匹配交易所的最小价格步长规则,
  • 以及订单下达后市场价格的变化。