在 Hummingbot 中使用 Injective Helix¶
作者:Emerald
欢迎来到 Injective Helix Hummingbot 连接器指南,这是您使用 Hummingbot 集成并交易 Injective 去中心化交易所的全面资源。Injective Helix 基于 Injective 协议——一个去中心化的 Layer-1 区块链,提供快速、安全且低费用的交易体验。
借助 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 可以通过多种方式配置自动化交易,我们将重点关注最安全且用户友好的方法:账户委托。
通过账户委托,你不仅拥有一个,而是两个账户。第一个是你的投资组合账户,资金存放于此。
第二个是交易账户,负责日常交易。交易账户有权使用投资组合账户中的资金进行交易,但无法提走资金或将其转移到其他地方。
设置你的钱包¶
为方便使用,我们将采用 Keplr 钱包,这是一种支持多账户的 Cosmos 钱包,便于创建交易账户和投资组合账户。
注意:在实际操作中,建议将这两个账户分开,但目前这样设置也可以。更多详细信息请参见本文档末尾的提示与技巧。
安装 Keplr¶
- 
在您常用的浏览器(Chrome、Brave、Firefox 等均可)中访问 keplr.app,然后点击“Install Keplr”按钮 
- 
按照浏览器对应的安装流程进行操作。 
创建投资组合账户¶
- 
在浏览器中打开扩展程序,您应该会看到如下界面。点击“Create new wallet”按钮:  
- 
点击“Create new recovery phrase”:  
- 
当警告提示出现时,选择“understood”,然后在下一个界面选择 12 位或 24 位助记词。该助记词将用于访问您在 Keplr 上持有的所有资产! 
- 
务必将其写下并妥善保存,确保只有您自己知道该助记词。24 个词比 12 个词更安全,但记录起来稍显繁琐。 
- 
如果您将来丢失了计算机或数据,可以通过写有助记词的纸张恢复整个钱包 
- 
在下一个界面中,应用程序会要求您输入之前写下的两个随机单词,以确认您正确记录了助记词。  
- 
找到它要求的两个单词,并在验证窗口中填写 
- 将钱包命名为“Hummingbot Portfolio”
- 如果是首次设置,请创建一个用于登录 Keplr 的密码,然后点击“next”。
- 在链选择界面中,找到 Injective 并启用,然后点击保存: 
创建交易账户¶
- 重复上述步骤,但将钱包命名为“Hummingbot Trading”
- 现在,当您点击扩展面板右上角的账户图标时,应看到类似如下内容: 
在 Keplr 保持打开状态时,请注意记录以下几项信息(后续将会用到):
- 投资组合钱包地址
- 交易钱包助记词
- 投资组合钱包助记词
委托授权(Delegation)¶
现在我们需要确保交易钱包能够访问投资组合钱包的资金以进行交易。为此,我们需要进行委托授权。
前提条件¶
您需要在投资组合钱包和交易钱包中都存有一定资金,以支付交易费用以及授予交易钱包权限所需的手续费。为简化说明,我们仅关注主网环境。
您可以使用 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”的提示。你现在可以以最安全的方式在 Hummingbot 中使用 Injective 进行交易了!
技巧与提示¶
在家庭服务器上运行交易¶
本教程中我们使用了委托账户,这种方式具有安全优势,例如降低运行机器人设备的价值(因为设备本身不包含你的实际私钥),从而减少被盗风险。
例如,在我的设置中,我的交易机器人全天候运行在我卧室的一台二手 Mac Mini M2(16GB RAM)上,成本约为 600 美元,但你甚至可以用更便宜的 8GB 版本,这对 Hummingbot 来说已经足够。功耗大约为 7 瓦,如果你有太阳能板,即使在冬天也几乎是零成本运行。这是一种比云服务器更便宜且可靠的替代方案。
为 Injective 优化你的策略¶
在 Injective 上打开示例策略并进行实盘交易时要小心!每一个操作,哪怕是取消订单,都会消耗少量 Injective 作为手续费。请确保交易账户上有足够的“燃料”,我通常会在交易账户保留 0.01 到 0.1 Injective,这足以支撑数月的交易。
为 Injective 优化你的策略,避免我曾经犯过的错误(我的机器人每秒下几百个订单,悄悄地消耗了约 100 INJ)。
仅在必要时才下单或取消订单,并尽量避免频繁刷新订单!(根据我的经验,检查当前订单价格或数量与策略期望值之间的差异,并设定一个阈值,可以有效避免最大的手续费消耗。)
不要向您的交易账户注入过多的 Injective,这是为了防止您的策略产生过多订单,从而耗尽钱包中的资金来支付费用!
 
                