外部定价源配置¶
更新于 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 支持的另一交易所的外部市场作为价格参考。
在下面的示例中,我们在币安交易 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
是可选的,因为它只允许用户在存在匹配订单时从订单薄上接受现有订单。
注意
目前,外部价格源不能与做市商交易所相同(即如果机器人在币安交易,则 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 输出:
何时使用外部价格源¶
当您的机器人在相对较不流动的交易对上做市,但是不同交易所上存在具有相同基础风险敞口的更流动的交易对时,外部价格源很有价值。
假设我们正在为 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
¶
确定创建订单时用作价格参考的市场。
** 提示:**
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。
** 提示:**