This commit is contained in:
薇薇安 2026-01-16 15:13:43 +08:00
parent 2c66b4dcad
commit 8874b68387

View File

@ -665,14 +665,22 @@ class BinanceClient:
logger.info(f" 当前价格: {current_price:.4f} USDT") logger.info(f" 当前价格: {current_price:.4f} USDT")
logger.info(f" 订单名义价值: {notional_value:.2f} USDT") logger.info(f" 订单名义价值: {notional_value:.2f} USDT")
logger.info(f" 最小名义价值: {min_notional:.2f} USDT") logger.info(f" 最小名义价值: {min_notional:.2f} USDT")
logger.info(f" 平仓模式: {reduce_only}")
# 检查名义价值是否满足最小要求 # 检查名义价值是否满足最小要求
if notional_value < min_notional: # 注意对于平仓操作reduce_only=True币安允许更小的名义价值所以放宽检查
# 但为了安全仍然检查一个更小的阈值0.1 USDT
min_notional_for_order = 0.1 if reduce_only else min_notional
if notional_value < min_notional_for_order:
logger.warning( logger.warning(
f"{symbol} 订单名义价值不足: {notional_value:.2f} USDT < " f"{symbol} 订单名义价值不足: {notional_value:.2f} USDT < "
f"最小要求: {min_notional:.2f} USDT" f"最小要求: {min_notional_for_order:.2f} USDT"
) )
logger.warning(f" 需要增加数量或提高仓位大小") if reduce_only:
logger.warning(f" 这是平仓订单,但名义价值仍然太小,无法执行")
else:
logger.warning(f" 需要增加数量或提高仓位大小")
return None return None
# 检查最小保证金要求(避免手续费侵蚀收益) # 检查最小保证金要求(避免手续费侵蚀收益)
@ -694,7 +702,11 @@ class BinanceClient:
min_margin_usdt = config.TRADING_CONFIG.get('MIN_MARGIN_USDT', 0.5) # 默认0.5 USDT min_margin_usdt = config.TRADING_CONFIG.get('MIN_MARGIN_USDT', 0.5) # 默认0.5 USDT
required_margin = notional_value / current_leverage required_margin = notional_value / current_leverage
if required_margin < min_margin_usdt: # 对于平仓操作reduce_only=True跳过最小保证金检查
# 因为这是关闭现有持仓,不应该因为保证金不足而拒绝平仓
if reduce_only:
logger.info(f" 平仓操作:跳过最小保证金检查(名义价值: {notional_value:.2f} USDT")
elif required_margin < min_margin_usdt:
# 如果保证金不足,自动调整到最小保证金要求 # 如果保证金不足,自动调整到最小保证金要求
required_notional_value = min_margin_usdt * current_leverage required_notional_value = min_margin_usdt * current_leverage
logger.warning( logger.warning(