降低入场门槛+2

This commit is contained in:
zhangkun9038@dingtalk.com 2025-11-25 12:49:31 +08:00
parent 8765d12e61
commit e66eac733d

View File

@ -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