现货连接器 QA 检查清单

在批准新的连接器之前,Hummingbot 基金会质量保证(QA)团队将进行测试拉取请求以确保其按预期工作。以下是我们 spot 连接器的测试模板。

标题 步骤 预期结果
连接 API 密钥 运行 connect name-of-connector
示例:connect binance
1. 添加有效 API 密钥时连接。
2. 如果 API 密钥无效、过期或有其他问题,则抛出错误或警告。
3. 除非特别说明只能一次在一个实例中使用,否则同一 API 密钥可以在多个机器人上使用。
拉取余额 运行 balance 命令 1. 显示当前可用余额,应与交易所显示的余额匹配。
2. 每当有未平仓订单时,分配应更新。
策略创建期间的市场可用性 在设置策略时,您将被询问:
输入您希望在 name-of-connector 上交易的代币交易对(例如 ZRX-ETH)>>>
1. 在策略创建期间设置市场时应提供自动完成列表。
2. 所有市场在启动创建的策略时都应工作。
与可用策略的兼容性 在不同的 hummingbot 策略上创建简单配置 1. 连接器应在客户端中可用的任何策略上工作,除非连接器是为特定策略设计的。
2. 连接器应同时作为做市商和吃单方交易所工作(仅现货连接器)
价格和余额更新 运行 statusstatus --live 命令
状态命令的快捷键为 ctrl+s
1. 在状态窗口中,每当订单簿发生变更时,价格都会不断更新。
2. 每当创建或取消订单时,可用余额都会更新。
3. 创建的订单数量保持一致,除非有多个机器人使用资产、有挂单或由于特定参数而取消订单。
订单提交和取消 设置简单的做市策略并启动机器人 1. 创建的订单必须包含带有经纪商前缀的订单 ID(如果有)。
2. 订单在客户端中提交时没有错误。
3. 提交的订单应与交易所中未平仓订单的信息匹配。
4. 订单被取消时没有错误。
5. 订单不会卡住或遗漏,除非是手动订单。
6. 客户端不应取消未在此实例中创建的订单,例如手动订单、其他实例创建的订单或第三方机器人。
7. 优雅地拒绝/取消不符合交易所规则的订单。
快速刷新率 1. 创建纯做市策略并设置快速订单刷新时间,禁用订单刷新容差
- 要禁用,config order_refresh_tolerance -1
2. 运行 statusstatus --live 命令
3. 核对客户端和交易所的未平仓订单。
- 如果有成交订单,请检查交易所的交易历史和客户端的 historyhistory --verbose 命令
注意:请确保在具有稳定互联网连接的机器上运行客户端。理想情况下,您希望在 Linux 云服务器上进行测试
1. 优雅地取消订单:没有卡住或丢失的订单
2. 余额相应更新
3. 快速取消期间日志中不应有错误。
4. 如果发生成交事件,则跟踪并保存已成交订单。
5. 每当请求接近最大化允许限制时,会发出速率限制警告。
6. 达到速率限制时停止下单,但保持与交易所的连接。
长刷新率 1. 创建一个纯做市策略并设置快速订单刷新时间,且禁用订单刷新容差
- 要禁用,请执行 config order_refresh_tolerance -1
2. 运行 statusstatus --live 命令
注意:请确保在具有稳定网络连接的机器上运行客户端。理想情况下,您应该在 Linux 云服务器上进行测试
1. 当存在未成交订单时保持连接。
2. 在订单未成交时优雅地取消订单。
3. 订单开放期间不应出现错误(网络问题除外)
4. 如果发生网络问题,一旦连接建立,应跟踪未成交订单。
5. 跟踪并保存断开连接期间可能发生的成交事件。
多订单 创建支持多订单级别的做市策略
- 设置 config order_level
1. 同时提交多个订单且不出现任何错误。
2. 同时取消所有订单且不出现任何错误。
3. 可用余额和分配相应调整。
4. 订单数量和级别根据可用余额相应调整。
挂单 创建支持挂单的做市策略并设置取消百分比
- 设置 config haning_orders_enabled
- 设置 config hanging_orders_cancel_pct
1. 持续跟踪在实例内创建的挂单。
2. 跟踪并保存成交的挂单
3. 当策略停止或达到取消百分比时,挂单应被取消。
4. 刷新非挂单时,挂单保持未取消状态。
5. 不出现挂单重复
多机器人 1. 使用同一家交易所设置多个测试机器人(相同账户和 API 密钥)
2. 启动所有测试机器人。最好使用 docker 构建设置
3. 设置足够窄的价差以触发其中一个测试机器人的成交事件
4. 查看日志窗格
5. 通过运行 historyhistory --verbose 命令、CSV 或 sqlite 文件以及交易所的交易历史来比较所有测试机器人的数据
1. 每个机器人中的未成交订单不应受到另一个机器人取消事件的影响。
2. 不应存在冲突的订单 ID
数据完整性 1. 运行 status --live
2. 运行 order_book --live
- 您可以添加参数 order_book --live --line 10,它应显示订单簿每侧的 10 个订单
3. 运行 ticker --live
1. 客户端中的订单簿与交易所的订单簿同步。
2. 当交易所发生变化时持续更新。
3. 当交易所发生变更时,价格持续更新(状态和行情)。
成交事件 设置做市机器人,价差足够窄以触发成交事件。
1. 在没有成交订单时运行 history 命令
2. 成交后运行 historyhistory --verbose 命令
- 您可以通过设置 history --verbose --precision 5 来增加小数值,其中 5 是增加的小数位数
3. 查看 history --verbose 命令、CSV 或 sqlite 文件以及交易所的交易历史
1. 完全成交和部分成交都被正确跟踪和记录。
2. 成交订单信息应与交易所的交易历史匹配。
历史 运行 history 命令(有或没有交易) 1. 正确显示成交订单信息
- 没有重复订单
- 保存部分成交
- 仅显示由实例创建的订单
2. 正确显示资产信息
交易费用 在客户端获得交易后:
1. 运行 history --verbose 命令
2. 记录总费用
3. 登录交易所网站并检查交易历史
4. 手动计算机器人完成的所有已成交交易的费用
1. 如果可用则使用交易费用,否则使用估算费用。
2. 客户端中记录的交易费用(CSV 或 SQLite)应与交易所中交易历史显示的费用相匹配。
数据聚合 [仅适用于 QA 基础测试] 1. 设置较窄的价差以轻松获得成交,并在 15 分钟间隔后检查 datadog - hummingbot usdt 交易量指标
- 您可以在 conf/config_client.yml 中将 anonymized_metrics_interval_min 设置为更低的时间范围
2. 设置非常窄的价差以立即获得成交,然后在不等待心跳间隔完成的情况下停止机器人。
1. 启用后,所有已成交的交易在 Datadog 中进行聚合。