3. 客户端基础操作

3.客户端基础操作

安装好 Hummingbot 之后,第一次启动客户端,会看到一个简洁的命令行界面。这个界面看起来朴实无华,却是整个交易系统的指挥中心。不需要图形界面,也不需要复杂的配置,只需要记住几个核心命令,就能让交易机器人运转起来。

客户端启动与退出

启动方式

Docker 方式安装的 Hummingbot,启动过程非常直接。在终端里执行 docker attach hummingbot,就能进入正在运行的容器。如果容器还没启动,先用 docker compose up -d 在后台启动服务,再 attach 进去。

源码安装的话,需要激活 conda 环境后运行启动脚本。进入 hummingbot 主目录,执行 conda activate hummingbot 激活环境,然后 ./start 命令就能启动客户端。这个启动脚本会自动处理路径和环境变量,比手动运行 Python 文件更可靠。

启动成功后,会看到一个欢迎界面,提示输入密码。第一次使用需要设置一个强密码,这个密码会用来加密存储在本地的 API 密钥和私钥。密码设置完成后,就进入了主界面。

退出方式

退出 Hummingbot 有几种方法。最优雅的方式是输入 exit 命令,这会先取消所有未成交的订单,保存当前状态,然后安全退出。如果订单很多,这个过程可能需要几秒钟。

更快捷的方式是按 Ctrl + C 两次,效果和 exit 命令一样。这个快捷键在紧急情况下特别有用,比如需要快速停止所有交易活动。

如果客户端卡死或者无法正常响应,可以用 exit -f 强制退出。这种方式不会等待订单取消,直接终止进程,可能导致订单残留在交易所上,一般不建议使用。

从 Docker 容器 detach 而不停止容器,需要按 Ctrl + P 然后 Ctrl + Q。这个组合键告诉 Docker 只断开终端连接,保持容器在后台运行。下次再用 docker attach 就能重新连接,所有正在运行的策略都会保持原状。

核心命令与快捷键

基础命令

Hummingbot 的命令设计遵循直观原则,大部分命令都是英文单词本身。connect 命令用于连接交易所,balance 查看余额,create 创建策略,start 启动策略,stop 停止策略,status 查看状态,history 查看历史绩效。

这些命令不需要记忆复杂的参数,大部分情况下直接输入命令就能工作。比如输入 balance,会自动显示所有已连接交易所的余额;输入 status,会展示当前策略的运行状态。

Gateway 相关命令

如果安装了 Gateway 中间件,会多出一大类 gateway 开头的命令。gateway ping 测试连接状态,gateway list 查看支持的链和协议,gateway connect 添加钱包,gateway swap 执行代币兑换。

Gateway 命令的语法和主命令保持一致,都支持 --help 参数查看详细用法。比如 gateway swap --help 会显示兑换命令的所有参数说明。

快捷键系统

Hummingbot 的快捷键设计很贴心,大部分常用功能都有对应的键盘组合。Ctrl + S 快速查看状态,相当于输入 status 命令。Ctrl + T 切换日志面板的显示和隐藏,在需要专注看行情时很有用。

Ctrl + F 在日志面板中搜索关键词,按一次打开搜索框,输入关键词后按回车会高亮所有匹配项,继续按回车可以逐个跳转。再按一次 Ctrl + F 关闭搜索功能。

在配置参数时,如果想放弃当前输入,按 Ctrl + X 可以直接退出配置流程,回到主界面。这个快捷键在不小心进入某个配置菜单时特别实用。

复制粘贴功能在 Linux 和 macOS 上略有不同。Linux 下用 Ctrl + Shift + C 复制,Shift + 鼠标右键 粘贴。macOS 下用 Cmd + CCmd + V,和其他 macOS 应用一致。

交易所与钱包余额查询

实盘余额查询

balance 命令是查看资产状况的入口。执行后会显示所有已连接交易所的余额,包括总余额和可用余额两列。总余额是账户里的全部资产,可用余额是扣除挂单占用部分后真正能使用的资金。

输出表格里有一列叫 "Allocated",显示被活跃订单占用的资金量。比如某个交易所的 USDT 总余额是 1000,Allocated 显示 200,说明有 200 USDT 被挂单冻结,实际可用的是 800。

这个命令还会自动计算各资产按当前价格换算成 BTC 或 USD 的总价值,方便快速评估整体仓位。价值计算使用 Rate Oracle 获取的实时汇率,如果某个代币的价格源不可用,会显示为 N/A。

模拟交易余额

balance paper 命令查看模拟交易账户的余额。默认会显示预置的几种代币,每种都有 1000 个单位的初始资金。模拟账户的资金是虚拟的,可以随意添加或修改,用来测试策略而不用担心真实亏损。

添加模拟资金很简单,执行 balance paper BTC 0.5 就能把 BTC 的余额设为 0.5。如果该代币不存在,会自动添加到列表中;如果已存在,会覆盖原有余额。

模拟交易支持几乎所有主流交易所,包括 Binance、Kucoin、Gate.io 等。在创建策略时选择带 paper_trade 后缀的交易所名称,就能用模拟资金运行。这种方式不需要真实的 API 密钥,非常适合新手熟悉系统。

余额限制设置

balance limit 命令可以限制 Hummingbot 在某个交易所使用特定代币的最大数量。比如 balance limit binance USDT 1000,表示在 Binance 上最多只能用 1000 USDT 进行交易。

这个功能在运行多个策略实例时特别有用。假设账户里有 5000 USDT,可以同时运行 5 个策略,每个限制使用 1000 USDT,互不干扰。设置限制后,策略在下单时会自动计算可用余额,不会超过设定的上限。

取消限制也很简单,在全局配置文件中把对应值设为 -1 就行。设为 0 则表示初始不分配资金,等交易积累了该代币后才使用。

配置文件创建与管理

策略配置文件

Hummingbot 使用 YAML 格式的配置文件保存策略参数。创建策略时,系统会引导完成一系列问题,答案会自动保存为配置文件。文件存放在 conf/strategies 目录下,文件名包含策略名称和时间戳。

配置文件是纯文本格式,可以用任何编辑器手动修改。修改后需要重启策略才能生效。建议在修改前备份原文件,防止改错导致策略无法运行。

导入已有配置用 import 命令,后面跟配置文件路径。Hummingbot 会自动验证配置的有效性,如果参数不符合要求会提示错误。导入成功后可以直接 start 运行。

脚本配置文件

V2 策略框架支持更灵活的脚本配置。执行 create --script-config [脚本名] 可以为 Python 脚本创建对应的 YAML 配置文件。这种方式把策略逻辑和参数分离,方便在不同市场条件下快速切换参数。

脚本配置文件保存在 conf/scripts 目录,运行时用 start --script [脚本文件] --conf [配置文件] 指定。如果只指定脚本文件而不指定配置,会使用脚本内部的默认参数。

全局配置文件

全局配置文件 conf_client.yml 存放客户端级别的设置,比如模拟交易开关、余额限制、Kill Switch 阈值等。这个文件在第一次启动时自动生成,之后可以通过 config 命令修改,也可以直接编辑文件。

直接编辑文件的好处是可以批量修改多个参数,适合高级用户。修改后需要重启客户端才能生效。文件采用 YAML 格式,注意缩进和冒号后面要加空格。

密码设置与删除

密码的重要性

Hummingbot 的密码是保护资产安全的第一道防线。所有交易所 API 密钥、钱包私钥等敏感信息都用这个密码加密存储。密码强度越高,资产越安全。

密码在第一次启动时设置,之后每次启动都需要输入。如果忘记密码,已经存储的密钥将无法解密,必须重新连接所有交易所。所以一定要妥善保管密码,建议使用密码管理器保存。

修改密码

Hummingbot 没有直接修改密码的命令。要修改密码,需要删除加密文件后重新设置。先退出客户端,然后删除 conf 目录下的所有 .yml 文件和 key_file 文件。

下次启动时会提示设置新密码,然后需要重新连接所有交易所。这个过程比较繁琐,所以除非怀疑密码泄露,否则不建议频繁修改。

密码找回

Hummingbot 采用本地加密存储,没有中心化的密码找回机制。如果忘记密码,唯一的办法是删除所有配置文件,从头开始设置。这强调了备份密码的重要性。

全局参数配置

Kill Switch 止损开关

Kill Switch 是风险管理的重要工具。当策略亏损达到设定阈值时,自动停止所有交易。配置时先选择模式,然后设置止损百分比,比如 -5 表示亏损 5% 时停止。

止损计算基于 history 命令的绩效数据,包括未实现盈亏。这意味着即使策略没有成交,只要市场价格变动导致账面亏损超过阈值,也会触发止损。

配置完成后,可以在 conf_client.yml 文件中看到 kill_switch_modekill_switch_rate 两个参数。随时修改这两个值就能调整止损设置。

模拟交易开关

模拟交易模式让策略在虚拟资金上运行,不产生真实交易。在创建策略时选择带 paper_trade 后缀的交易所,就能启用模拟模式。

也可以在策略运行中切换,用 config exchange 命令修改交易所配置。从实盘切换到模拟,或反过来,都需要先 stopstart 才能生效。

模拟交易的数据完全隔离,不会影响实盘账户。balance paper 命令查看模拟资金,balance 命令查看实盘资金,互不干扰。

其他全局参数

conf_client.yml 里还有很多可调参数。anonymized_metrics_mode 控制是否发送匿名使用数据,默认开启,帮助项目改进。rate_limits_share_pct 设置 API 调用频率限制,避免触发交易所的限流。

clock_tick_size 调整策略的心跳间隔,默认 1 秒。调大这个值可以减少 CPU 占用,但会降低策略响应速度。color_settings 可以自定义界面颜色,适合长时间盯盘的用户。

历史绩效查看与解读

history 命令基础

history 命令展示策略的完整绩效报告。输出分为几个部分:交易统计、资产变化、市场表现和最终绩效指标。每个部分都有明确的计算逻辑,数据来源于本地存储的 .csv 文件。

交易统计部分显示买卖次数、总成交量和平均价格。资产变化对比策略开始和结束时的持仓差异。市场表现记录起始价格和结束价格,计算价格变动对盈亏的影响。

绩效指标计算

总盈亏的计算比较复杂。先计算持仓盈亏(Trade P&L),即当前持仓价值减去假设不交易时的持仓价值。然后加上手续费得到总盈亏(Total P&L)。回报率是总盈亏除以初始持仓价值。

这些计算都考虑了市场价格变动的影响。即使策略没有成交,只要持仓代币价格变化,盈亏数字也会实时更新。这比单纯计算已实现的盈亏更能反映策略的真实表现。

详细交易记录

history --verbose 显示每笔成交的详细信息,包括成交时间、价格、数量、手续费等。这些数据保存在 data 目录下,即使重启客户端也不会丢失。

history --days 7 可以查看最近 7 天的历史,默认显示全部历史。配合 --precision 参数可以调整价格的小数位数,方便阅读。

绩效解读技巧

看绩效报告时,重点关注回报率(Return %)和盈亏金额(Total P&L)。正回报说明策略盈利,但还要看成交量,成交量太小可能是运气因素。

最大回撤(Max Drawdown)反映策略的风险水平,回撤越大说明策略越不稳定。夏普比率(Sharpe Ratio)衡量风险调整后的收益,大于 1 通常认为不错。

通过这些基础操作,就能掌握 Hummingbot 客户端的核心功能。从启动退出到余额查询,从配置管理到绩效分析,每个环节都设计得简洁实用。熟练运用这些命令,是走向更复杂策略开发的第一步。

下一章将深入交易所连接的细节,看看如何让 Hummingbot 真正接入市场,开始第一笔交易。