From 73f148a1209eb0c3495019fe2ac1e1827eeaeadf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Fri, 13 Feb 2026 07:40:29 +0800 Subject: [PATCH] 1 --- trading_system/binance_client.py | 3 ++- trading_system/position_manager.py | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/trading_system/binance_client.py b/trading_system/binance_client.py index c2345b6..299c8c9 100644 --- a/trading_system/binance_client.py +++ b/trading_system/binance_client.py @@ -1836,11 +1836,12 @@ class BinanceClient: Args: symbol: 交易对 - leverage: 杠杆倍数 + leverage: 杠杆倍数(可为 int 或 float,内部会转为 int) Returns: 是否成功 """ + leverage = int(leverage) # 币安 API 要求整数;动态杠杆可能传入 float symbol = self._resolve_api_symbol(symbol) if not symbol or not symbol.isascii(): logger.error(f"❌ 设置杠杆请求包含非法 Symbol: '{symbol}'") diff --git a/trading_system/position_manager.py b/trading_system/position_manager.py index 89034d6..a3c97ef 100644 --- a/trading_system/position_manager.py +++ b/trading_system/position_manager.py @@ -208,8 +208,8 @@ class PositionManager: if not await self.risk_manager.should_trade(symbol, change_percent): return None - # 设置杠杆 - await self.client.set_leverage(symbol, leverage) + # 设置杠杆(确保为 int,避免动态杠杆传入 float 导致 API/range 报错) + await self.client.set_leverage(symbol, int(leverage)) # 计算仓位大小(传入实际使用的杠杆) # ⚠️ 优化:先估算止损价格,用于固定风险百分比计算 @@ -293,7 +293,7 @@ class PositionManager: if quantity is not None and adjusted_leverage is not None and adjusted_leverage != leverage: logger.info(f"{symbol} 风险控制调整杠杆: {leverage}x -> {adjusted_leverage}x (适应宽止损)") try: - await self.client.set_leverage(symbol, adjusted_leverage) + await self.client.set_leverage(symbol, int(adjusted_leverage)) leverage = adjusted_leverage except Exception as e: logger.error(f"{symbol} 调整杠杆失败: {e},将使用原杠杆 {leverage}x 继续")