与 Hummingbot 配合使用 Injective Helix¶
作者:Emerald
欢迎阅读 Injective Helix Hummingbot 连接器指南,这是关于使用 Hummingbot 在 Injective 去中心化交易所进行整合和交易的全面资源。Injective Helix 利用去中心化的一层区块链 Injective Protocol,提供快速安全的交易和最低的费用。
通过 Injective Helix,用户可以访问全网流动性,进行隐私交易,并在用户友好的界面上享受无缝的交易体验。
该平台支持现货和保证金上的各种交易对。结合 Hummingbot,它允许交易者轻松执行他们的策略。
你将学到什么¶
- 设置钱包并允许它根据你的策略进行交易
- 制作一个演示做市策略
- 在 Injective 和 Hummingbot 上制作自己的策略时的提示与技巧
让我们开始吧!
先决条件¶
- 一些终端技能
- Injective 代币(用于支付费用和交易)。如果你在教程后面使用 Injective 水龙头,你可以免费开始。
安装¶
安装 Docker¶
Docker 是一个软件平台,它允许人们通过将软件打包成标准化单元(称为'容器')来快速构建和部署应用程序,这些容器包含了软件运行所需的一切。这使得 Docker 成为安装和维护 Hummingbot 的最简单方法。
作者的主要操作系统是 Mac 和 Linux,但 Windows 也受支持。
- Windows
- Mac
- Linux
安装 Hummingbot¶
-
打开终端,转到你希望安装 Hummingbot 的目录。
-
运行
git clone https://github.com/hummingbot/hummingbot.git --depth=1
,这将从 GitHub 下载最新的 Hummingbot 发布版本。 -
运行
cd hummingbot
进入 Hummingbot 工作目录。 -
运行
docker compose up -d
来启动你的 Hummingbot 实例
使用 Injective 设置 Hummingbot¶
Injective 可以通过多种方式配置自动化交易,我们将重点关注最安全和用户友好的方式:账户委托。
通过账户委托,你不只有一个而是 2 个账户。第一个账户是你的投资组合,这是你的资金所在的位置。
第二个账户是交易账户,它进行你的日常交易。交易账户有权使用你投资组合账户上的资金进行交易,但不能提取资金或将其转移到其他地方。
设置你的钱包¶
为了便于使用,我们将使用 Keplr,这是一个支持多个账户的 Cosmos 钱包,这使得创建交易和投资组合账户变得容易。
注意:在现实世界中,你希望这两个账户分开,但目前这样是可以的。有关更多详细信息,请参见本文档底部的提示和技巧。
安装 Keplr¶
-
在你最喜欢的浏览器(Chrome、Brave、Firefox 等都可以)上访问 keplr.app 并点击"安装 Keplr"按钮
-
按照特定浏览器的安装程序进行操作。
创建投资组合账户¶
-
在浏览器中打开扩展程序,你应该会看到此屏幕。点击"Create new wallet"按钮:
-
点击"Create new recovery phrase":
-
当警告出现时,选择"understood"并在下一个屏幕中选择 12 或 24 个单词的助记词。这个助记词将让你访问你在 Keplr 上保存的所有加密货币!
-
重要的是要将它们写下来,并将助记词隐藏起来,只有你知道。24 个单词比 12 个单词更安全,但写起来更麻烦。
-
如果你失去了对电脑或数据的访问权限,你可以使用写有单词的纸张来恢复整个钱包
-
在下一个屏幕中,应用程序会要求你输入 2 个你写下来的随机单词,这是为了再次检查你是否正确地写下了它们。
-
找到它要求的 2 个单词并在验证窗口中写下它们
- 将钱包命名为"Hummingbot Portfolio"
- 如果这是第一次设置,创建一个用于登录 Keplr 的密码,然后点击"next"。
- 在链选择屏幕中,找到 Injective 并打开它,然后点击保存:
创建交易账户¶
- 重复上述过程,但将钱包命名为"Hummingbot Trading"
- 当你点击扩展面板右上角的账户图标时,你现在应该会看到类似这样的内容:
当 Keplr 打开时,请注意几件事情(我们稍后需要这些):
- 投资组合钱包地址
- 交易钱包助记词
- 投资组合钱包助记词
委托¶
我们现在需要确保交易钱包能够访问投资组合钱包的资金进行交易。为此我们使用委托。
先决条件¶
你需要在投资组合和交易钱包中存入资金,以支付交易和授权交易钱包权限的费用。为简单起见,我们只关注主网。
你可以使用 Injective 水龙头为你的钱包添加一些小额资金来支付费用,但是,我们建议购买 Injective 并把一小部分(例如 0.1 INJ)放在交易账户上用于支付费用,把更大一部分(你愿意用于交易的金额)放在你的投资组合账户上。
如果你不想购买 INJ 并为你的账户添加资金,你可以访问这里的水龙头:https://inj.supply
-
在终端中,运行
docker compose exec hummingbot bash
登录 Hummingbot Docker shell。 -
下载 Emerald 的账户委托脚本(它比官方的账户委托脚本更加用户友好,但尚未合并到 hummingbot 中),运行
wget https://raw.githubusercontent.com/peterwilli/ModernDragonHoard/6bba346ecd8e425ef2c8351732a6801106701322/hummingbot/connector/exchange/injective_v2/account_delegation_script.py
-
激活 hummingbot 环境:
conda activate hummingbot
-
运行
python account_delegation_script.py --help
查看所有账户委托选项。 -
按你的意愿配置委托
-
查看市场 ID,看看你想在哪个市场上交易。例如:https://lcd.injective.network/injective/exchange/v1beta1/spot/markets 用于现货市场,https://lcd.injective.network/injective/exchange/v1beta1/derivative/markets 用于衍生品市场。
-
例如,通过这个调用,你允许交易账户在衍生品市场上交易 INJ-USDT(将 trading_account_address 替换为你之前记录的实际交易账户地址):
python account_delegation_script.py --network mainnet --grantee_address trading_account_address --granter_subaccount_index 0 --derivative_market_ids 0x9b9980167ecc3645ff1a5517886652d94a0825e54a77d2057cbbe3ebee015963
-
你会收到一个输入私钥的提示,在此处可以粘贴我们之前记下的投资组合钱包助记词。完成后,会发出一笔交易来完成授权。如果出现错误,请确保你的账户中有足够的 Injective 余额来支付费用。
正在连接到 Hummingbot¶
现在我们将把交易账户连接到 Hummingbot!通过运行 exit
命令退出 Hummingbot 容器。
-
运行
docker compose attach hummingbot
进入实际的 Hummingbot 实例。在确认提示处按回车,直到需要输入密码。输入一个你记住的密码,稍后登录/再次解密密钥时需要。此过程完全在本地进行,没有"密码重置"! -
设置密码后,你就进入了主界面,看起来像这样:
-
现在我们将把 Injective 交易钱包连接到 Hummingbot,在主窗口中,根据你想使用现货还是永续市场,输入
connect injective_v2
或connect injective_v2_perpetual
并按回车。 -
你将被问到几个问题。按如下方式回答并按回车:
- 完成后,你应该看到"connected to injective_v2"。现在你可以以最安全的方式开始使用 Injective 的策略!
提示与技巧¶
在家庭服务器上交易¶
在本教程中我们使用了委托账户,这具有安全优势,例如降低运行机器人设备的价值(因为它不包含你实际的私钥),使其不那么吸引人偷盗。
例如,在我的设置中,我的交易机器人日夜运行在我卧室里,使用一台二手的 16GB 内存 Mac Mini M2,价格约 600 美元,但你也可以找到更便宜的 8GB 版本,这对 Hummingbot 来说已经足够。功耗大约为 7 瓦,如果你有太阳能电池板,这基本上是免费运行的,即使在冬天也是如此。这比运行在云服务器上是一种便宜且可靠的替代方案。
为 Injective 优化你的策略¶
在打开示例策略和在 Injective 上进行实盘交易时要小心!每个操作,甚至取消订单,都会收取你 Injective 余额中的一小部分费用。确保你的交易账户中有一些"燃料",我通常会在交易账户中保留 0.01 到 0.1 Injective,这足够用几个月。
为 Injective 优化你的策略,避免我犯过的同样错误(我的机器人默默地消耗了大约 100 inj,因为它每秒下了数百个订单)。
只在必要时下单或取消订单,尽量避免过于频繁地刷新订单!(根据我的经验,检查当前订单价格或数量与你的策略想要下单的差异,看是否超过某个阈值,这可以消除最大的费用消耗)。
不要在你的交易账户中添加过多 Injective,这是为了防止你的策略下太多订单并耗尽你的钱包来支付费用!