跳转至内容

外部定价源配置

更新于 v0.36.0

默认情况下,Hummingbot 使用您交易的订单薄生成中间价格(最佳买价和最佳卖价之间)作为计算做市商订单价格的起始价格。

通过此功能,用户可以选择不同的价格参考来下订单,例如 最后交易价格最后自有交易价格最佳买价最佳卖价库存成本。用户也可以使用不同的订单薄,例如 Hummingbot 支持的外部交易所自定义 API

工作原理

在从外部源计算做市商订单价格会导致订单与订单薄上的任何现有订单匹配的情况下,除非启用 take_if_crossed 参数,否则该订单将被忽略。

价格源:当前市场

默认情况下,price_source 设置为 current_market

               exchange: binance
                 market: BTC-USDC
             bid_spread: 1
             ask_spread: 1
           price_source: current_market
             price_type: mid_price
  price_source_exchange: None
    price_source_market: None
        take_if_crossed: None
price_source_custom_api: None

价格源:外部市场

用户还可以在创建订单时使用 Hummingbot 支持的另一交易所的外部市场作为价格参考。

在下面的示例中,我们在币安交易 BTC-USDC 交易对,同时使用 Crypto.com 交易所 BTC-USDT 市场的中间价格。

               exchange: binance
                 market: BTC-USDC
             bid_spread: 1
             ask_spread: 1
           price_source: external_market
             price_type: mid_price
  price_source_exchange: crypto_com
    price_source_market: BTC-USDT
        take_if_crossed: True
price_source_custom_api: None

运行 config price_type 命令以将价格参考更改为 last_pricelast_own_trade_pricebest_bidbest_ask。参数 take_if_crossed 是可选的,因为它只允许用户在存在匹配订单时从订单薄上接受现有订单。

注意

目前,外部价格源不能与做市商交易所相同(即如果机器人在币安交易,则 price_source_exchange 不能是币安)

价格源:自定义 API

自定义 API 主要由高级用户或开发人员用于使用不同的价格参考。请注意,price_source 应设置为 custom_api,并且 API URL 应在 price_source_custom_api 中指定。

           price_source: custom_api
             price_type: mid_price
  price_source_exchange: None
    price_source_market: None
        take_if_crossed: None
price_source_custom_api: https://www.your-custom-api-url.com/

自定义 API 输出所需参数

API GET 请求应返回一个小数,对应于您正在交易的资产对的市场价格。

样本 API 输出:

207.8

何时使用外部价格源

当您的机器人在相对较不流动的交易对上做市,但是不同交易所上存在具有相同基础风险敞口的更流动的交易对时,外部价格源很有价值。

假设我们正在为 ETH-USDT 交易对做市。我们交易的交易所,记为 交易所 A,最佳买单价格为 198 美元,最佳卖单价格为 202 美元,因此中间价格为 200 美元。

假设存在一个 交易所 B,其 ETH-USD 交易对。该交易对的最佳买单价格为 200 美元,最佳卖单价格为 202 美元,因此中间价格为 201 美元。随着市场条件的变化,不同交易所之间经常出现这种差异。由于交易对、流动性、地理位置的差异,一些交易所对市场变化的反应可能更慢或更快。

如果你认为交易所 B 上的ETH-USD比交易所 A 上的ETH-USDT更具流动性,并且对市场信息的反应更快,你可能希望在交易所 A 上做市,但使用交易所 B 上的ETH-USD作为价格来源。这有助于你根据市场未来可能的走向来定位你的订单。

接受交叉订单

使用外部价格源时,订单可能导致交叉市场。这意味着当前交易所上的订单价格与订单簿中的现有订单匹配。启用take_if_crossed参数允许策略填充匹配的做市订单。

在某些情况下,即使费用更高,这种行为也可能是可取的,因为可能在未来有价格缓解。此功能仅在使用外部价格源时可用。启用后,Hummingbot 使用LIMIT订单而不是LIMIT_MAKER订单类型。

相关参数

price_source

确定创建订单时用作价格参考的市场。

** 提示:**

Which price source to use? (current_market/external_market/custom_api)
>>> current_market

price_type

创建订单时用作价格参考的价格类型。

** 提示:**

Which price type to use? (mid_price/last_price/last_own_trade_price/best_bid/best_ask/inventory_cost)
>>> mid_price

mid_price

Hummingbot 使用当前交易所市场订单簿的中间价格作为参考,例如如果你的买卖价差设置为 1,你的订单将创建在距离中间价格 1%的位置。中间价格 - 计算方式为(市场最佳要价+市场最佳出价) / 2。

           price_source: current_market
             price_type: mid_price

last_price

最新价格是该资产最近交易的价格。

           price_source: current_market
             price_type: last_price

last_own_trade_price

机器人在创建订单时使用最后自有交易价格作为价格参考。

           price_source: current_market
             price_type: last_own_trade_price

best_bid

price_type设置为best_bid时,价格将基于订单簿中的最佳买价。

           price_source: current_market
             price_type: best_bid

best_ask

price_type设置为best_ask时,价格将基于订单簿中的最佳卖价。

           price_source: current_market
             price_type: best_ask

inventory_cost

机器人每次买入订单成交时都会计算库存的平均成本,所有卖出订单将以inventory_cost + ask_spread创建。使用 inventory_cost 时,你需要在启动 Hummingbot 之前使用此命令config inventory_price设置库存价格。

           price_source: current_market
             price_type: inventory_cost

price_source_exchange

用作外部定价源的交易所名称。

** 提示:**

Enter external price source exchange name
>>>

price_source_market

价格源交易所的交易对。

** 提示:**

Enter the token pair on [price_source_exchange]
>>>

take_if_crossed

当启用外部价格源时,如果订单与订单簿交叉则接受订单。

** 提示:**

Do you want to take the best order if orders cross the orderbook? (Yes/No)
>>> Yes

price_source_custom_api

返回价格的外部 API。

** 提示:**

Enter pricing API URL
>>>