外部价格来源配置¶
更新于 v0.36.0
默认情况下,Hummingbot 使用您交易的订单簿来生成中间价(最高买价与最高卖价之间的价格),作为计算挂单价格的起始参考。
通过此功能,用户可以选择不同的价格参考来生成订单,例如最新成交价、本人最新成交价、最佳买价、最佳卖价和库存成本。用户还可以使用其他订单簿,例如 Hummingbot 支持的外部交易所或自定义的API。
工作原理¶
当从外部来源计算挂单价格时,若该价格会导致订单与订单簿中现有订单匹配,则该订单将被忽略,除非启用了 take_if_crossed 参数。
价格来源:当前市场¶
默认情况下,price_source 被设置为 current_market。
           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 支持的其他交易所的外部市场作为价格参考。
在以下示例中,我们在 Binance 上交易 BTC-USDC 对,但使用 Crypto.com 交易所上 BTC-USDT 对的中间价作为价格参考。
           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_price、last_own_trade_price、best_bid 或 best_ask。参数 take_if_crossed 为可选,仅在存在匹配订单时允许您执行订单簿中的现有订单。
注意
目前,外部价格来源不能与挂单交易所相同(即:若机器人在 Binance 上交易,则 price_source_exchange 不能是 Binance)。
价格来源:自定义 API¶
自定义 API 主要供高级用户或开发者使用,以采用不同的价格参考。请注意,必须将 price_source 设置为 custom_api,并在 price_source_custom_api 中指定 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 输出:
何时使用外部价格来源¶
当您的机器人在流动性较低的交易对上做市,但同一底层资产在其他交易所存在流动性更高的交易对时,外部价格来源非常有用。
假设我们正在为 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 参数后,策略将执行匹配的_maker_ 订单。
在某些情况下,即使手续费较高,这种行为也可能值得采用,因为其有助于抵消未来价格波动的风险。此功能仅在使用外部价格源时可用。启用后,Hummingbot 将使用 LIMIT 订单而非 LIMIT_MAKER 订单类型。
相关参数¶
price_source¶
确定在创建订单时用作价格参考的市场。
**提示:**
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。
last_price
最新价格是指该资产最近一次成交的价格。
last_own_trade_price
机器人在创建订单时,使用你最近一次自身交易的价格作为价格参考。
best_bid
当 price_type 设置为 best_bid 时,价格将基于订单簿中的最佳买价。
best_ask
当 price_type 设置为 best_ask 时,价格将基于订单簿中的最佳卖价。
inventory_cost
每当买入订单成交时,机器人将重新计算你的持仓平均成本,所有卖出订单将基于 inventory_cost + ask_spread 创建。使用 inventory_cost 时,你需要在启动 Hummingbot 前使用命令 config inventory_price 设置持仓成本价。
price_source_exchange¶
用于外部价格源的交易所名称。
**提示:**
price_source_market¶
价格源交易所的交易对。
**提示:**
take_if_crossed¶
启用外部价格源时,若订单与订单簿交叉则执行吃单。
**提示:**
price_source_custom_api¶
返回价格的外部 API。
**提示:**
