diff --git a/freqtrade/templates/freqaiprimer.py b/freqtrade/templates/freqaiprimer.py index 870525d..3831441 100644 --- a/freqtrade/templates/freqaiprimer.py +++ b/freqtrade/templates/freqaiprimer.py @@ -393,37 +393,26 @@ class FreqaiPrimer(IStrategy): if 'prev_market_state' not in dataframe.columns: dataframe['prev_market_state'] = 'neutral' - # ======================== 极致激进版入场逻辑 ======================== - # 只需满足以下3个核心条件中的至少2个 + # ======================== 简化版入场逻辑 - 只需1个条件满足 ======================== - # 条件1: RSI 超卖(市场自适应) - rsi_oversold = dataframe.apply(lambda row: - row['rsi_1h'] < 55 if row['prev_market_state'] in ['strong_bull', 'weak_bull'] # 牛市放宽到55 - else row['rsi_1h'] < self.rsi_oversold.value, # 熊市使用优化值 - axis=1) + # 条件1: RSI超卖(核心条件) + rsi_oversold = dataframe['rsi_1h'] < self.rsi_oversold.value - # 条件2: 价格低于1小时前的价格(简单下跌判断) - price_lower = dataframe['close'] < dataframe['close'].shift(5).mean() # 比5根K线前更低 + # 条件2: 价格接近BB下轨 + price_near_bb_lower = dataframe['close'] <= dataframe['bb_lower_1h'] * self.bb_lower_deviation.value - # 条件3: MACD 看涨(最宽松的MACD判断) - macd_bullish = ( - (dataframe['macd_1h'] > dataframe['macd_signal_1h']) | # MACD已上穿 - (dataframe['macd_1h'] > 0) # 或MACD本身为正 - ) + # 条件3: MACD看涨 + macd_bullish = dataframe['macd_1h'] > dataframe['macd_signal_1h'] - # 条件4: 避免极度高位(可选保护) - not_extreme_high = dataframe['close'] < dataframe['bb_upper_1h'] * 1.10 # 放宽到BB上轨上方10% + # 条件4: 避免极高位 + not_too_high = dataframe['close'] < dataframe['bb_upper_1h'] - # 计算有多少个条件满足 - condition_count = ( - rsi_oversold.astype(int) + - price_lower.astype(int) + - macd_bullish.astype(int) + - not_extreme_high.astype(int) - ) - - # 只需满足至少2个条件即可入场(极其宽松) - final_condition = condition_count >= 2 + # 只需满足任意1个条件就入场(极其宽松) + final_condition = ( + rsi_oversold | + price_near_bb_lower | + macd_bullish + ) & not_too_high # 但必须不在极高位 # 设置入场信号 dataframe.loc[final_condition, 'enter_long'] = 1