概述
本指南解释了如何在tradesettings.yaml的常规设置中使用杠杆配置选项,以管理您交易所中所有交易符号的杠杆。
1. SetLeverageStartup
SetLeverageStartup: false
目的: 在机器人启动时将定义的杠杆应用于所有交易符号。
何时启用 (true)
- ✅ 首次设置: 当需要为所有符号初始设置杠杆时
- ✅ 更改杠杆设置后: 当您修改了所需的杠杆时
- ✅ 添加新符号后: 当交易所添加了新的交易对时
何时禁用 (false)
- ✅ 成功更新杠杆后: 以避免不必要的API调用
- ✅ 正常运行: 以防止每次重启时重置杠杆
- ✅ 杠杆已配置时: 如果所有符号已具有正确的杠杆
⚠️ 重要说明
-
杠杆成功更新后,始终设置为
false,以避免:- 每次初始化时不必要的API调用
- 交易所可能的速率限制
- 启动时间较慢
# 步骤1:启用以更新杠杆
SetLeverageStartup: true
# 步骤2:启动机器人(杠杆将被应用)
# 步骤3:停止机器人
# 步骤4:在下次启动前禁用
SetLeverageStartup: false
工作流程示例
1. 在配置中设置所需的杠杆(例如,10倍)
2. 启用 SetLeverageStartup: true
3. 启动机器人 → 杠杆应用于所有符号
4. 停止机器人
5. 禁用 SetLeverageStartup: false
6. 重启机器人以进行正常交易
2. SetMaxLeverage
SetMaxLeverage: false
目的: 自动使用交易所允许的每个符号的最大杠杆,而不是您配置的杠杆值。
工作原理
当设置为 false(默认):
- 对所有符号使用您配置的杠杆值
- 如果不受支持,API调用可能会失败
当设置为 true:
- 获取每个符号支持的最大杠杆
- 使用配置值与交易所最大值之间的较低值
示例场景
# 场景1:符号支持您的杠杆
您的配置: 20倍
符号最大: 50倍
结果: 20倍
# 场景2:符号的最大杠杆较低
您的配置: 20倍
符号最大: 5倍
结果: 5倍
机器人输出: "ℹ️ XYZUSDT 最大杠杆为5倍,使用5倍代替20倍"
# 场景3:符号的最大杠杆较高
您的配置: 10倍
符号最大: 125倍
结果: 10倍
何时启用 (true)
- ✅ 避免杠杆相关错误的稳妥方法
- ✅ 具有不同杠杆限制的混合符号类型
- ✅ 保守交易以自动调整到限制
- ✅ 具有不同规则的多交易所机器人
何时禁用 (false)
- ✅ 所有符号支持统一的杠杆
- ✅ 策略需要精确的杠杆值
- ✅ 性能优化(减少API调用)
与symbols.json的集成
杠杆更新流程
1. 机器人从 tradesettings.yaml 读取杠杆
2. 如果 SetMaxLeverage: true → 获取最大杠杆
3. 计算最终杠杆(配置值与最大值的最小值)
4. 通过交易所API应用杠杆
5. ✅ 用实际应用的杠杆更新 symbols.json
6. 机器人使用 symbols.json 中的杠杆进行交易
为什么更新symbols.json很重要
- 确保与交易所的一致性
- 在重启之间保持持久性
- 可跟踪实际使用的杠杆
⚠️ 重要:同步时机
# ❌ 错误方式
SetLeverageStartup: true
SetMaxLeverage: true
# ✅ 正确方式(一次性更新)
SetLeverageStartup: true
SetMaxLeverage: true
# 成功后:
SetLeverageStartup: false
SetMaxLeverage: false
推荐的配置工作流程
初始设置(新机器人)
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
- 配置上述设置
- 启动机器人 → 杠杆应用并更新 symbols.json
- 停止机器人
- 禁用两个设置
- 重启以进行正常操作
更改杠杆值
# tradesettings.yaml
Leverage: 15
SetLeverageStartup: true
SetMaxLeverage: true
- 更新杠杆值
- 启用
SetLeverageStartup - 启动机器人 → 应用新杠杆
- 停止机器人
- 在下次启动前再次禁用
正常操作(推荐)
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: false
SetMaxLeverage: false
机器人从已配置并更新的symbols.json读取杠杆。
添加新符号
# tradesettings.yaml
Leverage: 10
SetLeverageStartup: true
SetMaxLeverage: true
- 向交易所添加新符号
- 启用
SetLeverageStartup - 启动机器人 → 杠杆应用于所有符号
- 停止机器人
- 在正常交易前禁用
故障排除
- 问题: 机器人不断重置杠杆
原因:SetLeverageStartup: true保持启用状态
解决方法: 在初始设置后设置为false - 问题: 杠杆未应用
原因: 更新期间SetLeverageStartup: false
解决方法: 临时启用并重启 - 问题: 关于杠杆限制的API错误
原因: 配置的杠杆超过交易所最大值
解决方法: 启用SetMaxLeverage: true - 问题:
symbols.json不匹配
原因: 手动更改或不同步
解决方法: 一次启用SetLeverageStartup: true以重新同步
最佳实践
✅ 应该做
- 在成功更新后设置
SetLeverageStartup: false - 在首次设置时使用
SetMaxLeverage: true - 验证
symbols.json中的杠杆值 - 在更改前保留备份
- 在应用到所有符号前先在一个符号上测试
❌ 不应该做
- 在正常运行中保留
SetLeverageStartup: true - 不启用
SetLeverageStartup就更改杠杆 - 手动编辑
symbols.json - 反复启用两个设置(会导致API过载)
快速参考表
| 场景 | SetLeverageStartup | SetMaxLeverage | 使用时机 |
|---|---|---|---|
| 初始设置 | true |
true |
首次运行机器人 |
| 正常交易 | false |
false |
日常操作 |
| 更改杠杆 | true |
true |
修改杠杆值后 |
| 添加新符号 | true |
true |
向交易所添加新对 |
| 保守模式 | false |
true |
自动调整到交易所限制 |
| 性能模式 | false |
false |
最小化API调用 |
支持
- 检查机器人日志以查找错误
- 验证交易所API权限是否包括杠杆修改
- 确保所有符号在交易所中存在
- 检查
symbols.json以确保杠杆正确 - 审查交易所特定的杠杆限制