From b86abf4309b78aa22d86f38963ae05c49fe97dc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Wed, 14 Jan 2026 19:45:13 +0800 Subject: [PATCH] a --- trading_system/risk_manager.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/trading_system/risk_manager.py b/trading_system/risk_manager.py index 4c3733d..724e78e 100644 --- a/trading_system/risk_manager.py +++ b/trading_system/risk_manager.py @@ -69,13 +69,22 @@ class RiskManager: logger.info(f" 单笔最大限制: {max_position_value:.2f} USDT ({max_position_pct:.1f}%)") logger.info(f" 单笔最小限制: {min_position_value:.2f} USDT ({min_position_pct:.1f}%)") - if position_value > max_position_value: + # 使用小的容差来处理浮点数精度问题(0.01 USDT) + tolerance = 0.01 + if position_value > max_position_value + tolerance: logger.warning( f"❌ {symbol} 单笔仓位过大: {position_value:.2f} USDT > " f"最大限制: {max_position_value:.2f} USDT " f"(超出: {position_value - max_position_value:.2f} USDT)" ) return False + elif position_value > max_position_value: + # 在容差范围内,允许通过(浮点数精度问题) + logger.info( + f"⚠ {symbol} 仓位价值略超限制但 within 容差: " + f"{position_value:.2f} USDT vs {max_position_value:.2f} USDT " + f"(差异: {position_value - max_position_value:.4f} USDT)" + ) if position_value < min_position_value: logger.warning(