方案a+B
This commit is contained in:
parent
311463ba72
commit
b5f9f07665
64
A+B组合方案实施完成.txt
Normal file
64
A+B组合方案实施完成.txt
Normal file
@ -0,0 +1,64 @@
|
||||
✅ A+B组合方案(收紧版)实施完成
|
||||
|
||||
【双重过滤机制】
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📍 第一层过滤:方案A(收紧版)- 入场信号生成阶段
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
位置:populate_entry_trend() 方法
|
||||
触发条件:market_state == 'strong_bear'
|
||||
|
||||
收紧的趋势反转要求(从宽松的"三选一"改为严格的"必须MACD上穿+其他"):
|
||||
|
||||
✓ 必须条件:MACD上穿信号线
|
||||
✓ 附加条件(满足其一):
|
||||
- RSI >= 30(从25提高到30)
|
||||
- 布林位置 >= 0.2(从0提高到0.2,需回到布林带中下部)
|
||||
|
||||
逻辑:trend_reversal = MACD上穿 AND (RSI回升 OR 价格企稳)
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📍 第二层过滤:方案B(收紧版)- ML审核官阶段
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
位置:confirm_trade_entry() 方法
|
||||
触发条件:market_state == 'strong_bear' AND macd_cross == 'down'
|
||||
|
||||
ML阈值调整(大幅收紧):
|
||||
- 原阈值增加:+0.10 → +0.13
|
||||
- 最终阈值:0.95 → 0.98
|
||||
- 要求:ML概率必须 >= 0.98 才能入场
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🎯 预期效果
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
1. 大幅减少强熊市中的入场数量
|
||||
2. 只有同时满足以下条件才能入场:
|
||||
✓ 通过方案A:MACD已上穿 + (RSI>=30 或 价格回到布林带20%以上)
|
||||
✓ 通过方案B:ML概率 >= 0.98(极高置信度)
|
||||
3. 避免在下跌趋势中"接飞刀"
|
||||
4. 提高入场成功率
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
📊 与之前版本的对比
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
版本 方案A条件 方案B阈值 效果
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
原始版本 无过滤 0.85 基准
|
||||
方案A(宽松) 三选一(OR) 0.85 +0.012%
|
||||
方案B(宽松) 无过滤 0.95 +0.01%
|
||||
A+B组合(收紧) MACD必须+二选一(AND+OR) 0.98 待测试
|
||||
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
🚀 下一步
|
||||
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
运行回测验证效果:
|
||||
freqtrade backtesting --config config.json --strategy FreqaiPrimer --timerange=20251201-20260108
|
||||
|
||||
建议commit信息:
|
||||
git commit -m "实施A+B组合方案(收紧版):双重过滤机制应对强熊市"
|
||||
|
||||
@ -654,6 +654,27 @@ class FreqaiPrimer(IStrategy):
|
||||
)
|
||||
final_condition = condition_count >= self.min_condition_count.value
|
||||
|
||||
# ========== 方案A(收紧版):强熊市中增加严格的趋势反转确认 ==========
|
||||
# 针对6小时中短线策略,避免在下跌趋势中"抄底抄在半山腰"
|
||||
strong_bear_mask = (dataframe['market_state'] == 'strong_bear')
|
||||
|
||||
if strong_bear_mask.any():
|
||||
# 计算布林位置(价格在布林带中的相对位置)
|
||||
bb_position = (dataframe['close'] - dataframe['bb_lower_1h']) / \
|
||||
(dataframe['bb_upper_1h'] - dataframe['bb_lower_1h'] + 1e-8)
|
||||
|
||||
# 收紧的趋势反转信号:必须MACD上穿 + (RSI回升或价格企稳)
|
||||
macd_reversal = (dataframe['macd_1h'] > dataframe['macd_signal_1h'])
|
||||
rsi_recovery = (dataframe['rsi_1h'] >= 30) # 从25提高到30
|
||||
price_stable = (bb_position >= 0.2) # 从0提高到0.2(需回到布林带中下部)
|
||||
|
||||
# 必须MACD上穿 AND (RSI回升 OR 价格企稳)
|
||||
trend_reversal = macd_reversal & (rsi_recovery | price_stable)
|
||||
|
||||
# 在强熊市中,必须有趋势反转信号才能入场
|
||||
final_condition = final_condition & (~strong_bear_mask | trend_reversal)
|
||||
# ========== 方案A结束 ==========
|
||||
|
||||
# 设置入场信号
|
||||
dataframe.loc[final_condition, 'enter_long'] = 1
|
||||
|
||||
@ -940,16 +961,17 @@ class FreqaiPrimer(IStrategy):
|
||||
# 确保概率在 [0, 1] 范围内(分类器输出可能有浮点误差)
|
||||
entry_prob = max(0.0, min(1.0, entry_prob))
|
||||
|
||||
# ========== 方案B:强熊市+MACD下降时提高ML阈值 ==========
|
||||
# ========== 方案B(收紧版):强熊市+MACD下降时大幅提高ML阈值 ==========
|
||||
# 根据市场状态动态获取入场阈值
|
||||
entry_threshold = self.get_ml_threshold_by_market_state(market_state, 'entry')
|
||||
|
||||
# 如果处于强熊市且MACD下降,额外提高阈值
|
||||
# 如果处于强熊市且MACD下降,大幅提高阈值
|
||||
if market_state == 'strong_bear' and macd_cross == 'down':
|
||||
original_threshold = entry_threshold
|
||||
entry_threshold = min(0.95, entry_threshold + 0.10) # 从0.85提高到0.95
|
||||
# 从+0.10收紧到+0.13,阈值从0.95提高到0.98
|
||||
entry_threshold = min(0.98, entry_threshold + 0.13)
|
||||
self.strategy_log(
|
||||
f"[{pair}] 强熊市+MACD下降,提高ML阈值: "
|
||||
f"[{pair}] 强熊市+MACD下降,大幅提高ML阈值: "
|
||||
f"{original_threshold:.2f} -> {entry_threshold:.2f}"
|
||||
)
|
||||
# ========== 方案B结束 ==========
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user