6.4 KiB
6.4 KiB
杠杆配置总结
UPDATED: 2026-03-28
配置变更
✅ 已完成的修改
| 配置项 | 修改前 | 修改后 | 文件 |
|---|---|---|---|
| PaperTrading 单笔杠杆 | 20x | 10x | config.py:133 |
| Bitget 默认杠杆 | 5x | 10x | crypto_agent.py:2580 |
| Hyperliquid 默认杠杆 | 10x | 10x (不变) | crypto_agent.py:2884 |
| 总杠杆上限 | 10x | 10x (不变) | config.py |
当前配置
杠杆配置总览
| 平台 | 单笔杠杆 | 总杠杆上限 | 说明 |
|---|---|---|---|
| PaperTrading | 10x | 10x | 模拟盘统一10x杠杆 |
| Bitget | 10x | 10x | 实盘默认10x,可动态调整 |
| Hyperliquid | 10x | 10x | 实盘默认10x,最大10x |
配置文件位置
# config.py
class Settings(BaseSettings):
# 模拟交易
paper_trading_leverage: int = 10 # ✅ 从20改为10
paper_trading_max_total_leverage: float = 10 # 总杠杆上限
# Bitget 实盘
bitget_max_total_leverage: float = 10 # 总杠杆上限
# Hyperliquid 实盘
hyperliquid_max_total_leverage: float = 10 # 总杠杆上限.
代码实现
Bitget 开仓
# crypto_agent.py:2579-2581
# 设置杠杆 (默认10x,最大10x)
leverage = min(decision.get('leverage', 10), 10)
self.bitget.update_leverage(symbol, leverage)
Hyperliquid 开仓
# crypto_agent.py:2884-2885
leverage = min(decision.get('leverage', 10), 10)
self.hyperliquid.update_leverage(symbol, leverage)
PaperTrading 开仓
# paper_trading_service.py 使用配置中的杠杆
self.leverage = settings.paper_trading_leverage # 10x
杠杆控制逻辑
单笔杠杆限制
# 确保单笔杠杆不超过10x
leverage = min(decision.get('leverage', 10), 10)
总杠杆控制
系统会实时监控总杠杆使用情况:
# 计算当前总杠杆
total_position_value = sum(all_positions_value)
current_total_leverage = total_position_value / account_balance
# 检查是否还能开仓
remaining_leverage = max_total_leverage - current_total_leverage
if remaining_leverage <= 0:
# 已达最大杠杆,无法开仓
return 0, f"已达最大杠杆 {current_leverage:.1f}x/{max_total_leverage}x"
# 限制新开仓的杠杆
max_new_position = account_balance * remaining_leverage
实际案例
案例 1: Bitget $1074 账户, A级信号
账户余额: $1,074
可用余额: $1,074
当前总杠杆: 0x (无持仓)
信号置信度: 92% (A级)
保证金比例: 10% (Kelly公式型)
保证金: $1,074 × 10% = $107.40
单笔杠杆: 10x
持仓价值: $107.40 × 10 = $1,074
当前总杠杆: $1,074 / $1,074 = 1.0x ✅
剩余可用杠杆: 10x - 1.0x = 9.0x
剩余可开仓金额: $1,074 × 9.0 = $9,666
案例 2: Hyperliquid $2000 账户, 已有持仓
账户余额: $2,000
当前持仓价值: $8,000 (已用杠杆 4x)
当前总杠杆: $8,000 / $2,000 = 4.0x
新信号 (B级):
保证金比例: 6% (Kelly公式型)
保证金: $2,000 × 6% = $120
单笔杠杆: 10x
新持仓价值: $120 × 10 = $1,200
开仓后总杠杆: ($8,000 + $1,200) / $2,000 = 4.6x ✅ (< 10x)
剩余可用杠杆: 10x - 4.6x = 5.4x
案例 3: 杠杆超限,拒绝开仓
账户余额: $1,000
当前持仓价值: $9,500 (已用杠杆 9.5x)
当前总杠杆: $9,500 / $1,000 = 9.5x
新信号 (A级):
保证金: $100
期望杠杆: 10x
期望持仓价值: $1,000
预计总杠杆: ($9,500 + $1,000) / $1,000 = 10.5x ❌ (> 10x)
系统拒绝: "已达最大杠杆 9.5x/10x"
建议: 先平仓部分持仓
Kelly公式型 + 10x杠杆的威力
资金利用效率对比
| 场景 | 3%仓位+5x杠杆 | 10%仓位+10x杠杆 | 倍数 |
|---|---|---|---|
| $1000账户 A级信号 | $150 仓位 | $1000 仓位 | 6.7x |
| 盈利 3% | +$4.5 | +$30 | 6.7x |
| 亏损 3% | -$4.5 | -$30 | 6.7x |
示例: 10次交易后的差异
假设:
- A级信号胜率: 60%
- 平均盈利: 4%
- 平均亏损: 3%
- $1000账户
保守配置 (3% + 5x):
盈利: 6次 × $150 × 4% = $36
亏损: 4次 × $150 × 3% = -$18
净收益: +$18 (1.8%)
总杠杆峰值: ~1.5x (非常安全)
Kelly配置 (10% + 10x):
盈利: 6次 × $1000 × 4% = $240
亏损: 4次 × $1000 × 3% = -$120
净收益: +$120 (12%) 🚀
总杠杆峰值: ~6x (风险可控)
收益差异: 12% vs 1.8% = 6.7倍
风险管理
单笔最大亏损(-3%止损)
| 信号等级 | 保证金 | 杠杆 | 持仓价值 | -3%亏损 | 占总资金% |
|---|---|---|---|---|---|
| A级 | $100 | 10x | $1,000 | -$30 | -3.0% |
| B级 | $60 | 10x | $600 | -$18 | -1.8% |
| C级 | $20 | 10x | $200 | -$6 | -0.6% |
最大回撤控制
- 单笔最大亏损: -3% (A级信号止损)
- 连续5次亏损: -15% (极端情况)
- 建议: 设置账户级止损 -20%
监控指标
实时监控
# 每轮循环检查
current_total_leverage = total_position_value / account_balance
if current_total_leverage > 8.0:
# 警告: 接近杠杆上限
logger.warning(f"⚠️ 总杠杆 {current_leverage:.1f}x,接近上限10x")
if current_total_leverage >= 10.0:
# 紧急: 达到杠杆上限
logger.error(f"🚨 已达最大杠杆 {current_leverage:.1f}x/10x")
告警通知
- 飞书通知: 杠杆 > 8x 时发送告警
- 日志记录: 每次开仓记录杠杆变化
- 自动拒绝: 杠杆满时自动拒绝新信号
配置建议
保守型(推荐新手)
paper_trading_leverage: int = 5 # 或保持10x但降低仓位比例
base_margin_pct = 0.05 # A级5%
平衡型(当前配置)
paper_trading_leverage: int = 10
base_margin_pct = 0.10 # A级10%
激进型(仅限经验丰富)
paper_trading_leverage: int = 10
base_margin_pct = 0.15 # A级15%
max_total_leverage: float = 15 # ⚠️ 极高风险
检查清单
-
PaperTrading 杠杆从20x改为10x
-
Bitget 默认杠杆从5x改为10x
-
Hyperliquid 默认杠杆保持10x
-
总杠杆上限保持10x
-
更新配置文档
-
创建杠杆控制文档
-
回测验证新配置效果
-
实盘测试并监控
-
根据实际表现微调