使用 Vega 协议与 Hummingbot¶
介绍¶
在本指南中,我们将引导您完成将 Vega 钱包与 Hummingbot 连接所需的所有详细步骤,并开始在 Vega 去中心化交易所上运行强大的算法交易策略。
观看 YouTube 上的指南,让我们开始吧!
创建 Vega 钱包¶
一个 Vega 钱包 对于与 Vega 的交互是必需的,无论是用于质押还是交易。Vega 钱包应用程序允许您管理钱包和密钥对,存入和提取资产,质押和签署交易。
连接 MetaMask Snap¶
要开始,请访问 Vega 控制台 并点击 连接到 Vega。之后,您将看到几个创建 Vega 钱包的选项:
下面,我们将向您展示如何使用 MetaMask Snap,这是我们向 Hummingbot 用户推荐的方法。
在上面的菜单中选择 MetaMask Snap 并使用您首选的以太坊地址在 Metamask 中连接。
您应该会收到一个弹窗,其中告知所需要的权限 - 点击 安装。
之后,同意剩余的弹窗,您最终应该看到一个通知告知您 连接成功。您现在可以存入资金并使用新的 Vega 钱包了。
存入资金¶
创建 Vega 钱包后,转到 Vega 控制台,您将被重定向到 MAINNET 交易所,默认情况下。
如果您想切换到 Fairground TESTNET,请退出弹窗,并点击 Vega 交易所网站的左上角以更改网络。
选定网络后,点击上面弹窗中的 存入 按钮,并连接您的以太坊钱包,以批准并存入合格的代币到您的新 Vega 钱包。
连接 Hummingbot 到 Vega¶
在您为 Vega 钱包注资后,现在可以连接 Hummingbot 并开始运算法交易策略。由于我们使用 MetaMask Snap 连接 Vega,我们需要两件信息:
- Snap 密钥:Vega 公钥或参与方 ID
- 助记词
让我们看看您如何找到这些项目:
获取 Snap 密钥¶
连接您的 Vega 钱包后,在屏幕右上角查找您的 Snap 密钥。
Snap 密钥 0 地址应是您之前从以太坊钱包存款的 Vega 密钥 地址。点击它以复制到剪贴板,然后可以在 Hummingbot 中提示输入 Vega 公钥 (参与方 ID) 时粘贴。
获取钱包助记词¶
由于我们使用 Metamask Snap 连接到 Vega,您的私钥将是用于建立连接的以太坊钱包的 助记词。在将您的 Vega 钱包连接到 Hummingbot 时,您将被提示输入此助记词,作为身份验证和设置过程的一部分。
参见此 Metamask 文章以查找助记词:如何显示您的秘密恢复短语。按照文章中的步骤获取您的以太坊钱包助记词。
警告
您的钱包助记词极其敏感。请保持其机密,切勿在线分享或与您不信任的人分享。在处理助记词时,请确保您处于安全和私密的环境中。
安装 Hummingbot¶
在获取了 Snap 密钥和助记词之后,您就可以将 Hummingbot 连接到 Vega!请确保收藏 Vega 连接器 文档页面,这提供了便捷的参考。
现在,按照 安装过程 安装 Hummingbot。最简单的方式是克隆 Github 仓库并启动 Docker 镜像:
git clone https://github.com/hummingbot/hummingbot
cd hummingbot
docker compose up -d
docker attach hummingbot
运行连接命令¶
在 Hummingbot 客户端中,通过运行 connect vega_perpetual
连接到 Vega 主网。要连接到 Vega Fairground 测试网,运行 connect vega_perpetual_testnet
。
首先,您将被提示输入您的 Vega 公钥 - 在此处输入您的 Snap 密钥。然后,输入您的钱包助记词。
如果这两个凭据都有效,您应该会看到此消息:
要确认连接,请运行 balance
命令。您的资产余额应与您存入 Vega 的金额匹配。
运行方向性策略¶
现在,让我们配置并运行一个在 Vega 上的简单算法交易策略 - v2_directional_rsi.py。
这是一个简单的方向性策略,当市场超卖时(以RSI衡量),它会进入多头头寸。反之,如果市场超买,机器人将进入空头头寸。创建头寸后,策略使用 PositionExecutor 来管理它。
配置脚本¶
首先,让我们为该策略创建一个 Vega 特定的配置。运行:
按照提示输入您想要的值,然后保存文件。该文件位于 /conf/scripts 文件夹下,您可以使用任何文本编辑器或 IDE,如 VSCode 打开 YAML 文件并进行修改。
请注意:
- 您需要使用一个不同于 Vega 的交易所(如 Binance Futures)作为
candles_exchange
,因为 Vega 目前尚不支持K 线。 - 交易对符号需要为每个交易所正确定义。对于 Vega,我们将使用
ETHUSDT-USDT
,而我们将在 Binance Futures 上使用ETH-USDT
交易对。 - 此配置将 50 作为 RSI 上限和下限,以便策略启动时立即进入头寸。您可能希望使用不同的值。
作为参考,这是此策略的 Vega 特定配置:
markets: {}
candles_config: []
controllers_config: []
config_update_interval: 60
script_file_name: v2_directional_rsi.py
exchange: vega_perpetual
trading_pair: ETHUSDT-USDT
candles_exchange: binance_perpetual
candles_pair: ETH-USDT
candles_interval: 1m
candles_length: 60
rsi_low: 50.0
rsi_high: 50.0
order_amount_quote: 30
leverage: 10
position_mode: ONEWAY
stop_loss: 0.03
take_profit: 0.01
time_limit: 2700
启动脚本¶
现在,我们可以使用 start
命令运行该脚本:
机器人已进入空头头寸。之后,它放置了一个买入限价止损订单。
您可以运行 status
或按 CTRL + S 检查机器人的实时状态:
Vega 数据节点¶
在上面的日志中,请注意机器人连接到 Vega 协议端点 https://darling.network。这是将市场数据流传输到 Hummingbot 的 Vega 数据节点。
数据节点列表¶
Hummingbot 中的 Vega 连接器在 vega_perpetual_constants.py 中维护其使用的数据节点列表。默认情况下,Vega 连接器尝试使用最低延迟的端点。
要使用您自己的数据节点,将此文件以下部分的 URL 替换为您自己的数据节点 URL:
PERPETUAL_API_ENDPOINTS = [
"https://darling.network/",
"https://graphqlvega.gpvalidator.com/",
"https://vega-data.bharvest.io/",
"https://vega-data.nodes.guru:3008/",
"https://vega-mainnet-data.commodum.io/",
"https://vega-mainnet.anyvalid.com/",
"https://vega.aurora-edge.com/",
"https://vega.mainnet.stakingcabin.com:3008/",
]
PERPETUAL_GRPC_ENDPOINTS = [
"darling.network:3007",
"vega-data.bharvest.io:3007",
"vega-data.nodes.guru:3007",
"vega-mainnet.anyvalid.com:3007",
"vega.mainnet.stakingcabin.com:3007",
]
运行数据节点¶
使用您自己的数据节点而非公共节点可提供显著的延迟优势,但成本可能成为一个问题。为了帮助用户决定是否运行自己的数据节点,请参阅 运行 Vega 数据节点 以获取运行 Vega 数据节点的性能比较和成本分析(带有 Hummingbot)。
Vega 交易对¶
以下是主网和 Vega 网络上的各种交易对,以及如何在 Hummingbot 中输入它们:
主网交易对 | Hummingbot | Fairground 交易对 | Hummingbot | |
---|---|---|---|---|
ETH/USDT-PERP | ETHUSDT-USDT | BTC/USDT-PERP | BTCUSDT-USDT | |
LDO/USDT-PERP | LDOUSDT-USDT | BTCUSD.PYTH.PERP | BTCUSDTPYTHPERPNOI-USDNOI | |
BTC/USDT-PERP | BTCUSDT-USDT | ETH/USDT-PERP | ETHUSDT-USDT | |
INJ/USDT-PERP | INJUSDT-USDT | JUPUSDT.PYTH.PERP | JUPUSDTPYTHPERPNOI-USDNOI | |
SNX/USDT-PERP | SNXUSDT-USDT | INJ/USDT-PERP | INJUSDT-USDT | |
SOL/USDT-PERP | SOLUSDT-USDT | LDO/USDT-PERP | LDOUSDT-USDT | |
SNX/USDT-PERP | SNXUSDT-USDT |
常见问题¶
vega_perpetual 未就绪
2024-02-14 09:59:38,522 - 1423 - hummingbot.client.hummingbot_application - INFO - 使用 tick 大小: 1.0 创建时钟
2024-02-14 09:59:38,525 - 1423 - hummingbot.client.hummingbot_application - INFO - 启动命令已启动。
2024-02-14 09:59:39,001 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:40,001 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:41,001 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:42,000 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:42,954 - 1423 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - INFO - 网络状态已更改为 NetworkStatus.CONNECTED。启动网络...
2024-02-14 09:59:43,001 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:44,000 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:45,001 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:46,000 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:47,000 - 1423 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 09:59:47,671 - 1423 - hummingbot.client.hummingbot_application - INFO - 停止命令已启动。
2024-02-14 09:59:49,273 - 1423 - hummingbot.core.rate_oracle.rate_oracle - INFO - 网络状态已更改为 NetworkStatus.CONNECTED。启动网络...
2024-02-14 23:45:21,966 - 684 - hummingbot.client.hummingbot_application - ERROR - MQTT 已停止!
2024-02-14 23:45:21,969 - 684 - hummingbot.client.hummingbot_application - INFO - 使用 tick 大小: 1.0 创建时钟
2024-02-14 23:45:21,969 - 684 - hummingbot.client.hummingbot_application - INFO - 启动命令已启动。
2024-02-14 23:45:22,000 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:23,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:24,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:24,159 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - INFO - 网络状态已更改为 NetworkStatus.CONNECTED。启动网络...
2024-02-14 23:45:25,000 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:26,000 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:27,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:28,000 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:29,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:30,000 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:31,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:32,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:33,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:34,001 - 684 - hummingbot.strategy.script_strategy_base - WARNING - vega_perpetual 未就绪。请稍候...
2024-02-14 23:45:34,460 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - INFO - 已连接到 Vega 协议端点: https://darling.network/
- 首次启动脚本时,日志面板可能会反复显示上述消息,这是正常的,因为机器人正在尝试连接到节点。只需给机器人一分钟左右的时间,让它尝试连接。
提交买入订单失败
Traceback (most recent call last):
File "/home/hummingbot/hummingbot/connector/exchange_py_base.py", line 452, in _create_order
await self._place_order_and_process_update(order=order, **kwargs,)
File "/home/hummingbot/hummingbot/connector/derivative/vega_perpetual/vega_perpetual_derivative.py", line 456, in _place_order_and_process_update
exchange_order_id, update_timestamp = await self._place_order(
File "/home/hummingbot/hummingbot/connector/derivative/vega_perpetual/vega_perpetual_derivative.py", line 543, in _place_order
transaction = await self._auth.sign_payload(order_payload, "order_submission")
File "/home/hummingbot/hummingbot/connector/derivative/vega_perpetual/vega_perpetual_auth.py", line 78, in sign_payload
self._client: Client = Client(
File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/vega/client.py", line 54, in __init__
self._starting_block_height = self._core_data_client.LastBlockHeight(
File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/grpc/_channel.py", line 1160, in __call__
return _end_unary_response_blocking(state, call, False, None)
File "/opt/conda/envs/hummingbot/lib/python3.10/site-packages/grpc/_channel.py", line 1003, in _end_unary_response_blocking
raise _InactiveRpcError(state) # pytype: disable=not-instantiable
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "connection error: desc = "transport: Error while dialing: dial tcp 127.0.0.1:3002: connect: connection refused""
debug_error_string = "UNKNOWN:Error received from peer ipv4:54.180.211.130:3007 {created_time:"2024-02-06T12:25:12.356527762+00:00", grpc_status:14, grpc_message:"connection error: desc = \"transport: Error while dialing: dial tcp 127.0.0.1:3002: connect: connection refused\""}"
>
2024-02-06 12:25:12,360 - 15 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 提交买入订单到 Vega_perpetual 失败。请检查 API 密钥和网络连接。
- 使用公共节点时,可能会出现机器人尝试创建订单但失败的情况。此失败可能归因于与节点的连接丢失。机器人设计为自动尝试重新连接。但是,如果重新连接尝试失败,请考虑停止机器人并重新启动它。
买入订单数量低于最小订单大小
2024-02-14 23:46:21,686 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 买入订单数量 0 低于最小订单大小 0.001。订单将不会创建,请将数量增加到高于最小订单大小。
2024-02-14 23:46:21,690 - 684 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1707925581.0, "order_id": "VGHBBEPUT611596998f17a44a669251c", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "vega_perpetual"}
2024-02-14 23:46:21,690 - 684 - hummingbot.strategy.script_strategy_base - INFO - 创建 ETHUSDPERP-USDT 买入订单:价格:NaN 数量:0。
2024-02-14 23:46:21,690 - 684 - hummingbot.smart_components.executors.position_executor.position_executor - INFO - 正在放置平仓订单 --> 已成交数量:0 | TP 部分执行:0
2024-02-14 23:46:21,692 - 684 - hummingbot.connector.client_order_tracker - INFO - 订单 VGHBBEPUT611596998f17a44a669251c 已失败。订单更新:OrderUpdate(trading_pair='ETHUSDPERP-USDT', update_timestamp=1707925581.0, new_state=<OrderState.FAILED: 6>, client_order_id='VGHBBEPUT611596998f17a44a669251c', exchange_order_id=None, misc_updates=None)
2024-02-14 23:46:21,692 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 买入订单数量 0 低于最小订单大小 0.001。订单将不会创建,请将数量增加到高于最小订单大小。
2024-02-14 23:46:21,763 - 684 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1707925581.0, "order_id": "VGHBBEPUT61159699976cc44a669251c", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "vega_perpetual"}
2024-02-14 23:46:21,764 - 684 - hummingbot.strategy.script_strategy_base - INFO - 创建 ETHUSDPERP-USDT 买入订单:价格:NaN 数量:0。
2024-02-14 23:46:21,764 - 684 - hummingbot.smart_components.executors.position_executor.position_executor - INFO - 正在放置平仓订单 --> 已成交数量:0 | TP 部分执行:0
2024-02-14 23:46:21,766 - 684 - hummingbot.connector.client_order_tracker - INFO - 订单 VGHBBEPUT61159699976cc44a669251c 已失败。订单更新:OrderUpdate(trading_pair='ETHUSDPERP-USDT', update_timestamp=1707925581.0, new_state=<OrderState.FAILED: 6>, client_order_id='VGHBBEPUT61159699976cc44a669251c', exchange_order_id=None, misc_updates=None)
2024-02-14 23:46:21,766 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 买入订单数量 0 低于最小订单大小 0.001。订单将不会创建,请将数量增加到高于最小订单大小。
2024-02-14 23:46:21,771 - 684 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1707925581.0, "order_id": "VGHBBEPUT61159699a97aa44a669251c", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "vega_perpetual"}
2024-02-14 23:46:21,771 - 684 - hummingbot.strategy.script_strategy_base - INFO - 创建 ETHUSDPERP-USDT 买入订单:价格:NaN 数量:0。
2024-02-14 23:46:21,772 - 684 - hummingbot.smart_components.executors.position_executor.position_executor - INFO - 正在放置平仓订单 --> 已成交数量:0 | TP 部分执行:0
2024-02-14 23:46:21,773 - 684 - hummingbot.connector.client_order_tracker - INFO - 订单 VGHBBEPUT61159699a97aa44a669251c 已失败。订单更新:OrderUpdate(trading_pair='ETHUSDPERP-USDT', update_timestamp=1707925581.0, new_state=<OrderState.FAILED: 6>, client_order_id='VGHBBEPUT61159699a97aa44a669251c', exchange_order_id=None, misc_updates=None)
2024-02-14 23:46:21,806 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 买入订单数量 0 低于最小订单大小 0.001。订单将不会创建,请将数量增加到高于最小订单大小。
2024-02-14 23:46:21,813 - 684 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1707925581.0, "order_id": "VGHBBEPUT61159699ab4c344a669251c", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "vega_perpetual"}
2024-02-14 23:46:21,814 - 684 - hummingbot.strategy.script_strategy_base - INFO - 创建 ETHUSDPERP-USDT 买入订单:价格:NaN 数量:0。
2024-02-14 23:46:21,814 - 684 - hummingbot.smart_components.executors.position_executor.position_executor - INFO - 正在放置平仓订单 --> 已成交数量:0 | TP 部分执行:0
2024-02-14 23:46:21,816 - 684 - hummingbot.connector.client_order_tracker - INFO - 订单 VGHBBEPUT61159699ab4c344a669251c 已失败。订单更新:OrderUpdate(trading_pair='ETHUSDPERP-USDT', update_timestamp=1707925581.0, new_state=<OrderState.FAILED: 6>, client_order_id='VGHBBEPUT61159699ab4c344a669251c', exchange_order_id=None, misc_updates=None)
2024-02-14 23:46:21,817 - 684 - hummingbot.connector.derivative.vega_perpetual.vega_perpetual_derivative.VegaPerpetualDerivative - WARNING - 买入订单数量 0 低于最小订单大小 0.001。订单将不会创建,请将数量增加到高于最小订单大小。
2024-02-14 23:46:21,862 - 684 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp": 1707925581.0, "order_id": "VGHBBEPUT61159699b5bdf44a669251c", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "vega_perpetual"}
2024-02-14 23:46:21,862 - 684 - hummingbot.strategy.script_strategy_base - INFO - 创建 ETHUSDPERP-USDT 买入订单:价格:NaN 数量:0。
2024-02-14 23:46:21,863 - 684 - hummingbot.smart_components.executors.position_executor.position_executor - INFO - 正在放置平仓订单 --> 已成交数量:0 | TP 部分执行:0
- 这是一个已知问题,机器人试图平仓但无法捕获订单数量 - 应该很快会有一个修复实现。