# 杠杆配置总结 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 | ### 配置文件位置 ```python # 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 开仓 ```python # crypto_agent.py:2579-2581 # 设置杠杆 (默认10x,最大10x) leverage = min(decision.get('leverage', 10), 10) self.bitget.update_leverage(symbol, leverage) ``` #### Hyperliquid 开仓 ```python # crypto_agent.py:2884-2885 leverage = min(decision.get('leverage', 10), 10) self.hyperliquid.update_leverage(symbol, leverage) ``` #### PaperTrading 开仓 ```python # paper_trading_service.py 使用配置中的杠杆 self.leverage = settings.paper_trading_leverage # 10x ``` --- ## 杠杆控制逻辑 ### 单笔杠杆限制 ```python # 确保单笔杠杆不超过10x leverage = min(decision.get('leverage', 10), 10) ``` ### 总杠杆控制 系统会实时监控总杠杆使用情况: ```python # 计算当前总杠杆 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% --- ## 监控指标 ### 实时监控 ```python # 每轮循环检查 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 时发送告警 - **日志记录**: 每次开仓记录杠杆变化 - **自动拒绝**: 杠杆满时自动拒绝新信号 --- ## 配置建议 ### 保守型(推荐新手) ```python paper_trading_leverage: int = 5 # 或保持10x但降低仓位比例 base_margin_pct = 0.05 # A级5% ``` ### 平衡型(当前配置) ```python paper_trading_leverage: int = 10 base_margin_pct = 0.10 # A级10% ``` ### 激进型(仅限经验丰富) ```python paper_trading_leverage: int = 10 base_margin_pct = 0.15 # A级15% max_total_leverage: float = 15 # ⚠️ 极高风险 ``` --- ## 检查清单 - [x] PaperTrading 杠杆从20x改为10x - [x] Bitget 默认杠杆从5x改为10x - [x] Hyperliquid 默认杠杆保持10x - [x] 总杠杆上限保持10x - [x] 更新配置文档 - [x] 创建杠杆控制文档 - [ ] 回测验证新配置效果 - [ ] 实盘测试并监控 - [ ] 根据实际表现微调 --- ## 相关文档 - [仓位配置策略](./POSITION_SIZING_STRATEGY.md) - [仓位计算逻辑](./POSITION_SIZE_LOGIC.md) - [移动止损功能](./MOVE_STOP_LOSS_FEATURE.md) - [功能完成总结](./FEATURE_SUMMARY.md)