diff --git a/trading_system/market_scanner.py b/trading_system/market_scanner.py index 2280dd9..58dd1af 100644 --- a/trading_system/market_scanner.py +++ b/trading_system/market_scanner.py @@ -840,14 +840,16 @@ class MarketScanner: if trend_4h in ('down', 'neutral', None) and direction == 'SELL': signal_strength += TREND_SIGNAL_WEIGHTS['price_above_ema20'] - # 4H趋势确认加分 + # 4H趋势确认加分 / 逆势是否清零 + allow_4h_neutral = bool(config.TRADING_CONFIG.get("AUTO_TRADE_ALLOW_4H_NEUTRAL", False)) if direction and trend_4h: if (direction == 'BUY' and trend_4h == 'up') or (direction == 'SELL' and trend_4h == 'down'): signal_strength += TREND_SIGNAL_WEIGHTS['4h_trend_confirmation'] elif (direction == 'BUY' and trend_4h == 'down') or (direction == 'SELL' and trend_4h == 'up'): - # 逆势信号,直接拒绝 - signal_strength = 0 - direction = None + # 逆势时:若开启「允许4H中性」,仅不加分、不清零,便于出推荐与列表展示;策略层仍会禁止逆势自动下单 + if not allow_4h_neutral: + signal_strength = 0 + direction = None # 强度上限归一到 0-10 signal_strength = max(0, min(int(signal_strength), 10))