This commit is contained in:
薇薇安 2026-02-13 07:40:29 +08:00
parent 01c11d62f6
commit 73f148a120
2 changed files with 5 additions and 4 deletions

View File

@ -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}'")

View File

@ -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 继续")