a
This commit is contained in:
parent
62710a5720
commit
30bb8d84c0
|
|
@ -116,9 +116,10 @@ async def get_recommendations(
|
||||||
recommender = TradeRecommender(client, scanner, risk_manager)
|
recommender = TradeRecommender(client, scanner, risk_manager)
|
||||||
|
|
||||||
# 生成推荐(会自动保存到Redis)
|
# 生成推荐(会自动保存到Redis)
|
||||||
|
# 降低信号强度阈值以获取更多推荐(推荐系统可以更宽松)
|
||||||
recommendations = await recommender.generate_recommendations(
|
recommendations = await recommender.generate_recommendations(
|
||||||
min_signal_strength=min_signal_strength,
|
min_signal_strength=max(3, min_signal_strength - 2), # 降低2个等级以获取更多推荐
|
||||||
max_recommendations=limit,
|
max_recommendations=max(limit, 30), # 至少生成30个推荐
|
||||||
add_to_cache=True,
|
add_to_cache=True,
|
||||||
min_quality_score=0.0
|
min_quality_score=0.0
|
||||||
)
|
)
|
||||||
|
|
@ -520,9 +521,10 @@ async def generate_recommendations(
|
||||||
recommender = TradeRecommender(client, scanner, risk_manager)
|
recommender = TradeRecommender(client, scanner, risk_manager)
|
||||||
|
|
||||||
# 生成推荐(增量添加到Redis缓存)
|
# 生成推荐(增量添加到Redis缓存)
|
||||||
|
# 降低信号强度阈值以获取更多推荐(推荐系统可以更宽松)
|
||||||
recommendations = await recommender.generate_recommendations(
|
recommendations = await recommender.generate_recommendations(
|
||||||
min_signal_strength=min_signal_strength,
|
min_signal_strength=max(3, min_signal_strength - 2), # 降低2个等级以获取更多推荐
|
||||||
max_recommendations=max_recommendations,
|
max_recommendations=max(max_recommendations, 30), # 至少生成30个推荐
|
||||||
add_to_cache=True, # 添加到Redis缓存
|
add_to_cache=True, # 添加到Redis缓存
|
||||||
min_quality_score=0.0 # 不过滤,保留所有推荐
|
min_quality_score=0.0 # 不过滤,保留所有推荐
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,7 @@ def _get_trading_config():
|
||||||
'MIN_POSITION_PERCENT': 0.01,
|
'MIN_POSITION_PERCENT': 0.01,
|
||||||
'MIN_MARGIN_USDT': 0.5, # 最小保证金要求(USDT),避免手续费侵蚀收益
|
'MIN_MARGIN_USDT': 0.5, # 最小保证金要求(USDT),避免手续费侵蚀收益
|
||||||
'MIN_CHANGE_PERCENT': 2.0,
|
'MIN_CHANGE_PERCENT': 2.0,
|
||||||
'TOP_N_SYMBOLS': 10, # 每次扫描后处理的交易对数量
|
'TOP_N_SYMBOLS': 30, # 每次扫描后处理的交易对数量(增加到30以获取更多推荐)
|
||||||
'MAX_SCAN_SYMBOLS': 500, # 扫描的最大交易对数量(0表示扫描所有)
|
'MAX_SCAN_SYMBOLS': 500, # 扫描的最大交易对数量(0表示扫描所有)
|
||||||
'STOP_LOSS_PERCENT': 0.03,
|
'STOP_LOSS_PERCENT': 0.03,
|
||||||
'TAKE_PROFIT_PERCENT': 0.05,
|
'TAKE_PROFIT_PERCENT': 0.05,
|
||||||
|
|
@ -177,7 +177,7 @@ def _get_trading_config():
|
||||||
'ENTRY_INTERVAL': '15m',
|
'ENTRY_INTERVAL': '15m',
|
||||||
'MIN_VOLUME_24H': 10000000,
|
'MIN_VOLUME_24H': 10000000,
|
||||||
'MIN_VOLATILITY': 0.02,
|
'MIN_VOLATILITY': 0.02,
|
||||||
'MIN_SIGNAL_STRENGTH': 7, # 提升至7以提高入场质量,减少假信号
|
'MIN_SIGNAL_STRENGTH': 5, # 降低至5以获取更多推荐(推荐系统使用,实际交易仍可设置更高阈值)
|
||||||
'LEVERAGE': 10, # 基础杠杆倍数
|
'LEVERAGE': 10, # 基础杠杆倍数
|
||||||
'USE_DYNAMIC_LEVERAGE': True, # 是否启用动态杠杆(根据信号强度调整)
|
'USE_DYNAMIC_LEVERAGE': True, # 是否启用动态杠杆(根据信号强度调整)
|
||||||
'MAX_LEVERAGE': 20, # 最大杠杆倍数(动态杠杆上限)
|
'MAX_LEVERAGE': 20, # 最大杠杆倍数(动态杠杆上限)
|
||||||
|
|
|
||||||
|
|
@ -124,8 +124,8 @@ class TradeRecommender:
|
||||||
symbol = symbol_info['symbol']
|
symbol = symbol_info['symbol']
|
||||||
current_price = symbol_info['price']
|
current_price = symbol_info['price']
|
||||||
|
|
||||||
# 4. 分析交易信号
|
# 4. 分析交易信号(传入min_signal_strength参数)
|
||||||
trade_signal = await self._analyze_trade_signal(symbol_info)
|
trade_signal = await self._analyze_trade_signal(symbol_info, min_signal_strength=min_signal_strength)
|
||||||
|
|
||||||
# 5. 如果信号强度足够,生成推荐
|
# 5. 如果信号强度足够,生成推荐
|
||||||
if trade_signal['should_trade'] and trade_signal['strength'] >= min_signal_strength:
|
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)} 个推荐(包含缓存)")
|
logger.info(f"生成了 {len(new_recommendations)} 个新推荐,总计 {len(final_recommendations)} 个推荐(包含缓存)")
|
||||||
return 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
|
signal_strength += 2
|
||||||
reasons.append("4H周期共振确认")
|
reasons.append("4H周期共振确认")
|
||||||
|
|
||||||
# 判断是否应该交易
|
# 判断是否应该交易(使用传入的参数,如果没有则使用config中的值)
|
||||||
min_signal_strength = config.TRADING_CONFIG.get('MIN_SIGNAL_STRENGTH', 7)
|
if min_signal_strength is None:
|
||||||
|
min_signal_strength = config.TRADING_CONFIG.get('MIN_SIGNAL_STRENGTH', 7)
|
||||||
should_trade = signal_strength >= min_signal_strength
|
should_trade = signal_strength >= min_signal_strength
|
||||||
|
|
||||||
# 禁止逆4H趋势交易
|
# 禁止逆4H趋势交易
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user