From 30bb8d84c0a1a5d65657d801c6794c81515ae8b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=96=87=E8=96=87=E5=AE=89?= Date: Thu, 15 Jan 2026 22:17:55 +0800 Subject: [PATCH] a --- backend/api/routes/recommendations.py | 10 ++++++---- trading_system/config.py | 4 ++-- trading_system/trade_recommender.py | 11 ++++++----- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/backend/api/routes/recommendations.py b/backend/api/routes/recommendations.py index 2885ac8..dd44860 100644 --- a/backend/api/routes/recommendations.py +++ b/backend/api/routes/recommendations.py @@ -116,9 +116,10 @@ async def get_recommendations( recommender = TradeRecommender(client, scanner, risk_manager) # 生成推荐(会自动保存到Redis) + # 降低信号强度阈值以获取更多推荐(推荐系统可以更宽松) recommendations = await recommender.generate_recommendations( - min_signal_strength=min_signal_strength, - max_recommendations=limit, + min_signal_strength=max(3, min_signal_strength - 2), # 降低2个等级以获取更多推荐 + max_recommendations=max(limit, 30), # 至少生成30个推荐 add_to_cache=True, min_quality_score=0.0 ) @@ -520,9 +521,10 @@ async def generate_recommendations( recommender = TradeRecommender(client, scanner, risk_manager) # 生成推荐(增量添加到Redis缓存) + # 降低信号强度阈值以获取更多推荐(推荐系统可以更宽松) recommendations = await recommender.generate_recommendations( - min_signal_strength=min_signal_strength, - max_recommendations=max_recommendations, + min_signal_strength=max(3, min_signal_strength - 2), # 降低2个等级以获取更多推荐 + max_recommendations=max(max_recommendations, 30), # 至少生成30个推荐 add_to_cache=True, # 添加到Redis缓存 min_quality_score=0.0 # 不过滤,保留所有推荐 ) diff --git a/trading_system/config.py b/trading_system/config.py index 593304a..19e062c 100644 --- a/trading_system/config.py +++ b/trading_system/config.py @@ -166,7 +166,7 @@ def _get_trading_config(): 'MIN_POSITION_PERCENT': 0.01, 'MIN_MARGIN_USDT': 0.5, # 最小保证金要求(USDT),避免手续费侵蚀收益 'MIN_CHANGE_PERCENT': 2.0, - 'TOP_N_SYMBOLS': 10, # 每次扫描后处理的交易对数量 + 'TOP_N_SYMBOLS': 30, # 每次扫描后处理的交易对数量(增加到30以获取更多推荐) 'MAX_SCAN_SYMBOLS': 500, # 扫描的最大交易对数量(0表示扫描所有) 'STOP_LOSS_PERCENT': 0.03, 'TAKE_PROFIT_PERCENT': 0.05, @@ -177,7 +177,7 @@ def _get_trading_config(): 'ENTRY_INTERVAL': '15m', 'MIN_VOLUME_24H': 10000000, 'MIN_VOLATILITY': 0.02, - 'MIN_SIGNAL_STRENGTH': 7, # 提升至7以提高入场质量,减少假信号 + 'MIN_SIGNAL_STRENGTH': 5, # 降低至5以获取更多推荐(推荐系统使用,实际交易仍可设置更高阈值) 'LEVERAGE': 10, # 基础杠杆倍数 'USE_DYNAMIC_LEVERAGE': True, # 是否启用动态杠杆(根据信号强度调整) 'MAX_LEVERAGE': 20, # 最大杠杆倍数(动态杠杆上限) diff --git a/trading_system/trade_recommender.py b/trading_system/trade_recommender.py index edc2b10..fa786fe 100644 --- a/trading_system/trade_recommender.py +++ b/trading_system/trade_recommender.py @@ -124,8 +124,8 @@ class TradeRecommender: symbol = symbol_info['symbol'] current_price = symbol_info['price'] - # 4. 分析交易信号 - trade_signal = await self._analyze_trade_signal(symbol_info) + # 4. 分析交易信号(传入min_signal_strength参数) + trade_signal = await self._analyze_trade_signal(symbol_info, min_signal_strength=min_signal_strength) # 5. 如果信号强度足够,生成推荐 if trade_signal['should_trade'] and trade_signal['strength'] >= min_signal_strength: @@ -217,7 +217,7 @@ class TradeRecommender: logger.info(f"生成了 {len(new_recommendations)} 个新推荐,总计 {len(final_recommendations)} 个推荐(包含缓存)") return final_recommendations - async def _analyze_trade_signal(self, symbol_info: Dict) -> Dict: + async def _analyze_trade_signal(self, symbol_info: Dict, min_signal_strength: int = None) -> Dict: """ 分析交易信号(复用策略模块的逻辑) @@ -315,8 +315,9 @@ class TradeRecommender: signal_strength += 2 reasons.append("4H周期共振确认") - # 判断是否应该交易 - min_signal_strength = config.TRADING_CONFIG.get('MIN_SIGNAL_STRENGTH', 7) + # 判断是否应该交易(使用传入的参数,如果没有则使用config中的值) + if min_signal_strength is None: + min_signal_strength = config.TRADING_CONFIG.get('MIN_SIGNAL_STRENGTH', 7) should_trade = signal_strength >= min_signal_strength # 禁止逆4H趋势交易