diff --git a/backend/sync_global_config_defaults.py b/backend/sync_global_config_defaults.py index 6cd7b53..21eb1aa 100644 --- a/backend/sync_global_config_defaults.py +++ b/backend/sync_global_config_defaults.py @@ -46,6 +46,8 @@ DEFAULTS_TO_SYNC = [ "description": "是否启用固定风险仓位计算(推荐)。若启用,则忽略 MAX_POSITION_PERCENT,改用 FIXED_RISK_PERCENT 计算仓位。"}, {"config_key": "FIXED_RISK_PERCENT", "config_value": "0.025", "config_type": "number", "category": "risk", "description": "每笔交易风险占总账户的百分比(如 0.025=2.5%)。配合止损距离计算仓位,风险可控。"}, + {"config_key": "MIN_MARGIN_USDT", "config_value": "2.0", "config_type": "number", "category": "risk", + "description": "最小保证金(USDT)。2026-02-13 提高到 2.0 USDT 以避免无效小单。"}, ] diff --git a/trading_system/risk_manager.py b/trading_system/risk_manager.py index 01c6ac3..e0f3528 100644 --- a/trading_system/risk_manager.py +++ b/trading_system/risk_manager.py @@ -654,7 +654,8 @@ class RiskManager: margin_value = notional_value / actual_leverage # 检查最小保证金要求(margin 语义:MIN_MARGIN_USDT 本身就是保证金下限) - min_margin_usdt = config.TRADING_CONFIG.get('MIN_MARGIN_USDT', 0.5) # 默认0.5 USDT + # 2026-02-13 优化:默认最小保证金提高到 2.0 USDT,避免无效小单 + min_margin_usdt = config.TRADING_CONFIG.get('MIN_MARGIN_USDT', 2.0) logger.info(f" 当前保证金: {margin_value:.4f} USDT (杠杆: {actual_leverage}x)") if margin_value < min_margin_usdt: @@ -664,8 +665,14 @@ class RiskManager: ) # 检查是否可以使用更大的仓位价值(但不超过最大仓位限制) - max_position_percent = config.TRADING_CONFIG['MAX_POSITION_PERCENT'] - max_margin_value = available_balance * max_position_percent + if use_fixed_risk: + # 固定风险模式下,放宽最大仓位限制(允许高达95%可用余额) + max_position_percent = 0.95 + max_margin_value = available_balance * 0.95 + else: + max_position_percent = config.TRADING_CONFIG['MAX_POSITION_PERCENT'] + max_margin_value = available_balance * max_position_percent + if min_margin_usdt <= max_margin_value: margin_value = min_margin_usdt notional_value = margin_value * actual_leverage