强熊市趋势反转确认机制
This commit is contained in:
parent
182d5d8a65
commit
db03b35b27
234
doc/方案A-强熊市趋势反转确认机制.md
Normal file
234
doc/方案A-强熊市趋势反转确认机制.md
Normal file
@ -0,0 +1,234 @@
|
||||
# 方案A:强熊市趋势反转确认机制
|
||||
|
||||
## 📌 背景与问题
|
||||
|
||||
### 问题发现
|
||||
通过对 `ruchang.log` 入场诊断数据的分析,发现策略存在严重的"**抄底抄在半山腰**"问题:
|
||||
|
||||
- **67.1%** 的入场属于高危"半山腰抄底"
|
||||
- **100%** 的入场发生在强熊市环境(`market_state == 'strong_bear'`)
|
||||
- **100%** 的入场时 MACD 处于下降趋势(`macd_1h < macd_signal_1h`)
|
||||
- **65%** 的入场价格跌破布林下轨
|
||||
- **12%** 的入场 RSI 极度超卖(< 20,恐慌杀跌)
|
||||
|
||||
### 问题本质
|
||||
策略的目标是 **6 小时左右持仓的中短线交易**,但在强熊市+下跌趋势中:
|
||||
1. **下跌趋势未结束**:MACD 下降意味着价格还在惯性下跌
|
||||
2. **技术反弹难持续**:即使 ML 给出高置信度,在熊市中往往只是"技术性反弹"而非"趋势反转"
|
||||
3. **时间窗口不足**:6 小时持仓无法等待趋势真正反转,容易在反弹夭折后止损
|
||||
|
||||
这导致策略频繁"接飞刀"——看起来是技术超卖的低位,但几小时后看却是"半山腰"。
|
||||
|
||||
---
|
||||
|
||||
## 🎯 解决方案
|
||||
|
||||
### 核心思路
|
||||
在强熊市环境中,**增加趋势反转确认条件**,只有出现明确的反转信号后才允许入场。
|
||||
|
||||
### 实现逻辑
|
||||
|
||||
#### 1. 识别强熊市环境
|
||||
```python
|
||||
strong_bear_mask = (dataframe['market_state'] == 'strong_bear')
|
||||
```
|
||||
|
||||
#### 2. 计算趋势反转信号(满足任意一条即可)
|
||||
|
||||
| 反转信号 | 判断条件 | 含义 |
|
||||
|---------|---------|------|
|
||||
| **MACD上穿信号线** | `macd_1h > macd_signal_1h` | 下跌动能减弱,可能转为上涨 |
|
||||
| **RSI回升** | `rsi_1h >= 25` | 从极度超卖(<20)回升,恐慌杀跌结束 |
|
||||
| **价格回到布林带内** | `bb_position >= 0` | 价格企稳,不再持续跌破下轨 |
|
||||
|
||||
其中布林位置计算方式:
|
||||
```python
|
||||
bb_position = (close - bb_lower) / (bb_upper - bb_lower)
|
||||
# bb_position < 0:跌破下轨
|
||||
# bb_position = 0:刚好在下轨
|
||||
# bb_position > 0:在布林带内
|
||||
```
|
||||
|
||||
#### 3. 应用过滤规则
|
||||
```python
|
||||
# 在强熊市中,必须有趋势反转信号才能入场
|
||||
final_condition = final_condition & (~strong_bear_mask | trend_reversal)
|
||||
```
|
||||
|
||||
逻辑解读:
|
||||
- 如果**不是**强熊市 → 保持原有入场逻辑
|
||||
- 如果**是**强熊市 → 必须同时满足原条件 **AND** 趋势反转信号
|
||||
|
||||
---
|
||||
|
||||
## 💻 代码实现
|
||||
|
||||
### 修改位置
|
||||
文件:`freqtrade/templates/freqaiprimer.py`
|
||||
方法:`populate_entry_trend()`
|
||||
位置:第 655-676 行
|
||||
|
||||
### 完整代码
|
||||
```python
|
||||
# 合并所有条件
|
||||
condition_count = (
|
||||
close_to_bb_lower_1h.astype(int) +
|
||||
rsi_condition_1h.astype(int) +
|
||||
stochrsi_condition_1h.astype(int) +
|
||||
macd_condition_1h.astype(int) +
|
||||
(volume_spike | bb_width_condition).astype(int) +
|
||||
trend_confirmation.astype(int)
|
||||
)
|
||||
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) # 避免除零
|
||||
|
||||
# 趋势反转信号(至少满足其一)
|
||||
trend_reversal = (
|
||||
(dataframe['macd_1h'] > dataframe['macd_signal_1h']) | # MACD上穿信号线
|
||||
(dataframe['rsi_1h'] >= 25) | # RSI从极度超卖回升
|
||||
(bb_position >= 0) # 价格回到布林带内
|
||||
)
|
||||
|
||||
# 在强熊市中,必须有趋势反转信号才能入场
|
||||
final_condition = final_condition & (~strong_bear_mask | trend_reversal)
|
||||
# ========== 趋势反转确认结束 ==========
|
||||
|
||||
# 设置入场信号
|
||||
dataframe.loc[final_condition, 'enter_long'] = 1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 预期效果
|
||||
|
||||
### 入场质量改善
|
||||
- ✅ **大幅减少高危入场**:从 67.1% 降低到 <30%
|
||||
- ✅ **避免 MACD 下降时盲目入场**:确保下跌趋势已减弱
|
||||
- ✅ **过滤恐慌杀跌底部**:RSI<20 时等待回升到 25 以上
|
||||
- ✅ **等待价格企稳**:不在持续跌破布林下轨时入场
|
||||
|
||||
### 盈利表现优化
|
||||
- 📈 提高入场成功率(减少"接飞刀")
|
||||
- 📈 降低止损频率(等待趋势反转后入场)
|
||||
- 📈 更适配 6 小时中短线策略的时间窗口
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试验证
|
||||
|
||||
### 1. 运行回测
|
||||
```bash
|
||||
freqtrade backtesting \
|
||||
--config config.json \
|
||||
--strategy FreqaiPrimer \
|
||||
--timerange=20251201-20260108
|
||||
```
|
||||
|
||||
### 2. 分析入场质量
|
||||
```bash
|
||||
python3 tools/analyze_entry_quality.py outputs/ruchang.log
|
||||
```
|
||||
|
||||
### 3. 对比关键指标
|
||||
|
||||
| 指标 | 修改前 | 目标 |
|
||||
|------|--------|------|
|
||||
| 高危入场比例 | 67.1% | <30% |
|
||||
| 强熊市入场数量 | 70 | 大幅减少 |
|
||||
| MACD下降时入场 | 100% | <50% |
|
||||
| 入场成功率 | 待测 | 提升 |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 参数调优
|
||||
|
||||
如果方案 A 效果不理想,可以调整以下参数:
|
||||
|
||||
### 1. RSI 回升阈值(当前 25)
|
||||
```python
|
||||
# 更保守:要求 RSI 回升到 30
|
||||
(dataframe['rsi_1h'] >= 30)
|
||||
|
||||
# 更激进:允许 RSI 20 以上
|
||||
(dataframe['rsi_1h'] >= 20)
|
||||
```
|
||||
|
||||
### 2. 布林位置阈值(当前 0)
|
||||
```python
|
||||
# 更保守:要求价格回到布林带中部
|
||||
(bb_position >= 0.2)
|
||||
|
||||
# 更激进:允许仍在下轨附近
|
||||
(bb_position >= -0.1)
|
||||
```
|
||||
|
||||
### 3. 趋势反转条件组合
|
||||
```python
|
||||
# 当前:满足任意一条(OR)
|
||||
trend_reversal = (condition1 | condition2 | condition3)
|
||||
|
||||
# 更严格:至少满足两条
|
||||
trend_reversal = (
|
||||
(condition1.astype(int) + condition2.astype(int) + condition3.astype(int)) >= 2
|
||||
)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 回退方案
|
||||
|
||||
如果方案 A 导致入场机会过少或整体收益下降:
|
||||
|
||||
### 选项 1:注释趋势反转确认代码
|
||||
```python
|
||||
# 注释掉第 655-676 行
|
||||
# if strong_bear_mask.any():
|
||||
# ...
|
||||
```
|
||||
|
||||
### 选项 2:仅在极端情况应用
|
||||
```python
|
||||
# 只在 RSI < 15(极度恐慌)时应用趋势反转确认
|
||||
extreme_bear = strong_bear_mask & (dataframe['rsi_1h'] < 15)
|
||||
final_condition = final_condition & (~extreme_bear | trend_reversal)
|
||||
```
|
||||
|
||||
### 选项 3:改为其他市场状态
|
||||
```python
|
||||
# 不仅在 strong_bear,也在 weak_bear 应用
|
||||
bear_mask = dataframe['market_state'].isin(['strong_bear', 'weak_bear'])
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 相关文档
|
||||
|
||||
- [入场质量分析工具](../tools/analyze_entry_quality.py)
|
||||
- [入场诊断日志](../outputs/ruchang.log)
|
||||
- [策略主文件](../freqtrade/templates/freqaiprimer.py)
|
||||
- [动态阈值机制](./README.md#动态ml阈值)
|
||||
|
||||
---
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
| 日期 | 版本 | 说明 |
|
||||
|------|------|------|
|
||||
| 2026-01-08 | v1.0 | 初版实施,针对强熊市增加趋势反转确认 |
|
||||
|
||||
---
|
||||
|
||||
## 💡 后续优化方向
|
||||
|
||||
1. **方案 B**:在强熊市中进一步提高 ML 阈值(从 0.85 到 0.90+)
|
||||
2. **方案 C**:增加"冷静期"机制(跌破布林下轨后等待 1-2 根 K 线)
|
||||
3. **自适应调整**:根据回测结果动态调整 RSI/布林位置阈值
|
||||
4. **市场状态细化**:区分"温和下跌"和"恐慌杀跌",使用不同策略
|
||||
@ -654,6 +654,26 @@ 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) # 避免除零
|
||||
|
||||
# 趋势反转信号(至少满足其一)
|
||||
trend_reversal = (
|
||||
(dataframe['macd_1h'] > dataframe['macd_signal_1h']) | # MACD上穿信号线
|
||||
(dataframe['rsi_1h'] >= 25) | # RSI从极度超卖回升
|
||||
(bb_position >= 0) # 价格回到布林带内
|
||||
)
|
||||
|
||||
# 在强熊市中,必须有趋势反转信号才能入场
|
||||
final_condition = final_condition & (~strong_bear_mask | trend_reversal)
|
||||
# ========== 趋势反转确认结束 ==========
|
||||
|
||||
# 设置入场信号
|
||||
dataframe.loc[final_condition, 'enter_long'] = 1
|
||||
|
||||
|
||||
60
outputs/chicang.log
Normal file
60
outputs/chicang.log
Normal file
@ -0,0 +1,60 @@
|
||||
币种 入场时间 入场价格 出场时间 出场价格 盈利金额 盈利比例
|
||||
0 BTC/USDT 2025-12-10 00:03:00+00:00 92665.00000 2025-12-10 01:03:00+00:00 92168.000000 -2.435686 -0.70%
|
||||
1 BTC/USDT 2025-12-11 18:36:00+00:00 90463.50000 2025-12-12 13:03:00+00:00 92411.200000 6.969545 1.99%
|
||||
2 BTC/USDT 2025-12-13 16:54:00+00:00 90117.10000 2025-12-13 20:03:00+00:00 90191.800000 -0.270109 -0.08%
|
||||
3 DOGE/USDT 2025-12-10 00:03:00+00:00 0.14818 2025-12-10 01:03:00+00:00 0.146780 -3.864144 -1.10%
|
||||
4 DOGE/USDT 2025-12-11 22:24:00+00:00 0.14075 2025-12-12 15:15:00+00:00 0.139800 -2.920455 -0.83%
|
||||
5 DOGE/USDT 2025-12-13 17:33:00+00:00 0.13902 2025-12-13 21:33:00+00:00 0.138220 -2.572487 -0.73%
|
||||
6 KAITO/USDT 2025-12-14 05:54:00+00:00 0.60950 2025-12-14 06:42:00+00:00 0.612300 1.046589 0.30%
|
||||
7 MASK/USDT 2025-12-11 15:03:00+00:00 0.59920 2025-12-11 18:39:00+00:00 0.609600 5.509907 1.57%
|
||||
8 MASK/USDT 2025-12-12 14:09:00+00:00 0.61320 2025-12-12 15:06:00+00:00 0.610400 -2.156895 -0.62%
|
||||
9 MASK/USDT 2025-12-13 00:06:00+00:00 0.60530 2025-12-13 17:33:00+00:00 0.608500 1.288842 0.37%
|
||||
10 MASK/USDT 2025-12-13 21:48:00+00:00 0.60810 2025-12-13 22:21:00+00:00 0.607100 -1.135103 -0.32%
|
||||
11 PEPE/USDT 2025-12-10 00:06:00+00:00 0.00000 2025-12-10 00:06:00+00:00 0.000005 -0.560000 -0.16%
|
||||
12 PEPE/USDT 2025-12-10 01:03:00+00:00 0.00000 2025-12-10 01:03:00+00:00 0.000005 -0.560000 -0.16%
|
||||
13 PEPE/USDT 2025-12-10 19:09:00+00:00 0.00000 2025-12-10 19:09:00+00:00 0.000005 -0.560000 -0.16%
|
||||
14 PEPE/USDT 2025-12-10 19:21:00+00:00 0.00000 2025-12-10 19:21:00+00:00 0.000005 -0.560000 -0.16%
|
||||
15 PEPE/USDT 2025-12-11 15:03:00+00:00 0.00000 2025-12-11 15:03:00+00:00 0.000004 -0.560000 -0.16%
|
||||
16 PEPE/USDT 2025-12-11 15:30:00+00:00 0.00000 2025-12-11 15:30:00+00:00 0.000004 -0.560000 -0.16%
|
||||
17 PEPE/USDT 2025-12-12 10:36:00+00:00 0.00000 2025-12-12 10:36:00+00:00 0.000005 -0.560000 -0.16%
|
||||
18 PEPE/USDT 2025-12-12 10:48:00+00:00 0.00000 2025-12-12 10:48:00+00:00 0.000005 -0.560000 -0.16%
|
||||
19 PEPE/USDT 2025-12-14 01:03:00+00:00 0.00000 2025-12-14 01:03:00+00:00 0.000004 -0.560000 -0.16%
|
||||
20 PEPE/USDT 2025-12-14 02:03:00+00:00 0.00000 2025-12-14 02:03:00+00:00 0.000004 -0.560000 -0.16%
|
||||
21 SOL/USDT 2025-12-10 00:03:00+00:00 138.13000 2025-12-10 01:03:00+00:00 137.370000 -2.484181 -0.71%
|
||||
22 SOL/USDT 2025-12-11 14:03:00+00:00 131.36000 2025-12-11 22:24:00+00:00 136.080000 12.006063 3.43%
|
||||
23 SOL/USDT 2025-12-12 14:03:00+00:00 136.85000 2025-12-12 19:06:00+00:00 132.600000 -16.967941 -3.26%
|
||||
24 SOL/USDT 2025-12-13 19:06:00+00:00 132.32000 2025-12-13 19:48:00+00:00 132.890000 0.946502 0.27%
|
||||
25 SOL/USDT 2025-12-13 20:54:00+00:00 132.33000 2025-12-13 21:39:00+00:00 132.410000 -0.348577 -0.10%
|
||||
26 SOL/USDT 2025-12-13 22:15:00+00:00 132.28000 2025-12-13 22:21:00+00:00 132.620000 0.338887 0.10%
|
||||
27 SOL/USDT 2025-12-14 05:12:00+00:00 132.28000 2025-12-14 05:45:00+00:00 132.540000 0.127384 0.04%
|
||||
28 SUI/USDT 2025-12-12 14:03:00+00:00 1.61340 2025-12-13 03:03:00+00:00 1.573700 -16.050958 -2.62%
|
||||
29 SUI/USDT 2025-12-13 14:42:00+00:00 1.60210 2025-12-13 22:03:00+00:00 1.599800 -1.062063 -0.30%
|
||||
30 SUI/USDT 2025-12-14 00:06:00+00:00 1.59720 2025-12-14 05:03:00+00:00 1.599500 -0.056396 -0.02%
|
||||
31 SUI/USDT 2025-12-14 12:03:00+00:00 1.59280 2025-12-14 12:54:00+00:00 1.618600 5.104726 1.46%
|
||||
32 SUI/USDT 2025-12-14 14:39:00+00:00 1.59970 2025-12-15 00:00:00+00:00 1.552900 -10.791227 -3.08%
|
||||
33 TON/USDT 2025-12-10 17:03:00+00:00 1.64800 2025-12-11 00:03:00+00:00 1.657000 1.349878 0.39%
|
||||
34 TON/USDT 2025-12-11 18:39:00+00:00 1.61500 2025-12-12 09:12:00+00:00 1.626000 1.821993 0.52%
|
||||
35 TON/USDT 2025-12-12 10:03:00+00:00 1.63400 2025-12-12 12:06:00+00:00 1.643000 1.366242 0.39%
|
||||
36 TON/USDT 2025-12-13 03:03:00+00:00 1.61000 2025-12-13 16:54:00+00:00 1.617000 0.960522 0.27%
|
||||
37 TON/USDT 2025-12-14 13:18:00+00:00 1.60600 2025-12-14 15:15:00+00:00 1.598000 -2.302067 -0.66%
|
||||
38 TRB/USDT 2025-12-10 00:06:00+00:00 22.65000 2025-12-10 01:03:00+00:00 22.420000 -4.111240 -1.17%
|
||||
39 TRB/USDT 2025-12-10 19:09:00+00:00 22.50000 2025-12-10 22:03:00+00:00 22.060000 -7.398969 -2.11%
|
||||
40 TRB/USDT 2025-12-11 14:06:00+00:00 20.97000 2025-12-12 09:12:00+00:00 21.240000 3.942833 1.13%
|
||||
41 TRB/USDT 2025-12-12 23:03:00+00:00 20.90000 2025-12-13 14:42:00+00:00 20.860000 -1.229321 -0.35%
|
||||
42 TRB/USDT 2025-12-13 20:42:00+00:00 20.96000 2025-12-13 22:51:00+00:00 20.980000 -0.226298 -0.06%
|
||||
43 TRUMP/USDT 2025-12-10 01:03:00+00:00 5.88400 2025-12-10 03:03:00+00:00 5.889000 -0.262821 -0.08%
|
||||
44 TRUMP/USDT 2025-12-11 13:03:00+00:00 5.64400 2025-12-11 15:30:00+00:00 5.668000 0.927115 0.26%
|
||||
45 TRUMP/USDT 2025-12-13 17:06:00+00:00 5.57600 2025-12-13 19:06:00+00:00 5.582000 -0.183687 -0.05%
|
||||
46 TRUMP/USDT 2025-12-13 21:33:00+00:00 5.55900 2025-12-13 21:42:00+00:00 5.568000 0.006195 0.00%
|
||||
47 TRUMP/USDT 2025-12-13 22:03:00+00:00 5.55500 2025-12-14 06:42:00+00:00 5.518000 -2.889368 -0.82%
|
||||
48 UNI/USDT 2025-12-10 00:03:00+00:00 5.75100 2025-12-10 01:03:00+00:00 5.657000 -6.276168 -1.79%
|
||||
49 UNI/USDT 2025-12-10 18:03:00+00:00 5.65200 2025-12-10 20:18:00+00:00 5.873000 13.114473 3.74%
|
||||
50 UNI/USDT 2025-12-10 22:27:00+00:00 5.67200 2025-12-11 00:03:00+00:00 5.597000 -5.184295 -1.48%
|
||||
51 UNI/USDT 2025-12-14 05:30:00+00:00 5.47000 2025-12-14 07:09:00+00:00 5.479000 0.015408 0.00%
|
||||
52 WCT/USDT 2025-12-10 17:21:00+00:00 0.08820 2025-12-10 23:21:00+00:00 0.087000 -5.318090 -1.52%
|
||||
53 WCT/USDT 2025-12-11 18:48:00+00:00 0.08100 2025-12-11 20:36:00+00:00 0.081200 0.303506 0.09%
|
||||
54 WCT/USDT 2025-12-12 10:24:00+00:00 0.08040 2025-12-12 17:03:00+00:00 0.078500 -13.031495 -2.51%
|
||||
55 WCT/USDT 2025-12-12 23:03:00+00:00 0.08020 2025-12-13 22:03:00+00:00 0.081200 3.800590 1.09%
|
||||
56 XRP/USDT 2025-12-11 11:03:00+00:00 2.01480 2025-12-11 18:45:00+00:00 2.022000 0.689744 0.20%
|
||||
57 XRP/USDT 2025-12-11 20:36:00+00:00 2.01990 2025-12-12 09:42:00+00:00 2.027800 0.807785 0.23%
|
||||
58 XRP/USDT 2025-12-13 03:03:00+00:00 2.01600 2025-12-13 17:06:00+00:00 2.02230
|
||||
70
outputs/ruchang.log
Normal file
70
outputs/ruchang.log
Normal file
@ -0,0 +1,70 @@
|
||||
2026-01-08 09:25:28,963 - freqaiprimer - INFO - [入场诊断] BTC/USDT | 价格: 88211.100000 | vs 5K高点: -0.14% | vs EMA5: +0.00% | 布林位置: -0.11 | RSI: 14.9 | MACD: down | 市场: strong_bear | ML概率: 0.62
|
||||
2026-01-08 09:25:28,971 - freqaiprimer - INFO - [入场诊断] BTC/USDT | 价格: 88237.000000 | vs 5K高点: -0.11% | vs EMA5: +0.00% | 布林位置: -0.10 | RSI: 14.9 | MACD: down | 市场: strong_bear | ML概率: 0.67
|
||||
2026-01-08 09:25:28,972 - freqaiprimer - INFO - [入场诊断] BTC/USDT | 价格: 88138.300000 | vs 5K高点: -0.22% | vs EMA5: +0.00% | 布林位置: -0.14 | RSI: 14.9 | MACD: down | 市场: strong_bear | ML概率: 0.69
|
||||
2026-01-08 09:25:28,972 - freqaiprimer - INFO - [入场诊断] BTC/USDT | 价格: 88162.900000 | vs 5K高点: -0.36% | vs EMA5: +0.00% | 布林位置: -0.13 | RSI: 14.9 | MACD: down | 市场: strong_bear | ML概率: 0.71
|
||||
2026-01-08 09:25:28,976 - freqaiprimer - INFO - [入场诊断] BTC/USDT | 价格: 88356.900000 | vs 5K高点: -0.14% | vs EMA5: +0.00% | 布林位置: -0.01 | RSI: 23.1 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:29,300 - freqaiprimer - INFO - [入场诊断] TON/USDT | 价格: 1.546000 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.22 | RSI: 23.4 | MACD: down | 市场: strong_bear | ML概率: 0.93
|
||||
2026-01-08 09:25:29,301 - freqaiprimer - INFO - [入场诊断] TON/USDT | 价格: 1.550000 | vs 5K高点: +0.00% | vs EMA5: +0.00% | 布林位置: -0.16 | RSI: 23.4 | MACD: down | 市场: strong_bear | ML概率: 0.90
|
||||
2026-01-08 09:25:29,308 - freqaiprimer - INFO - [入场诊断] TON/USDT | 价格: 1.546000 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.22 | RSI: 23.4 | MACD: down | 市场: strong_bear | ML概率: 0.99
|
||||
2026-01-08 09:25:29,308 - freqaiprimer - INFO - [入场诊断] TON/USDT | 价格: 1.546000 | vs 5K高点: -0.39% | vs EMA5: +0.00% | 布林位置: -0.22 | RSI: 23.4 | MACD: down | 市场: strong_bear | ML概率: 0.90
|
||||
2026-01-08 09:25:29,309 - freqaiprimer - INFO - [入场诊断] TON/USDT | 价格: 1.548000 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.12 | RSI: 26.5 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:29,681 - freqaiprimer - INFO - [入场诊断] DOT/USDT | 价格: 1.953000 | vs 5K高点: -0.31% | vs EMA5: +0.00% | 布林位置: 0.04 | RSI: 29.6 | MACD: down | 市场: strong_bear | ML概率: 0.98
|
||||
2026-01-08 09:25:29,685 - freqaiprimer - INFO - [入场诊断] DOT/USDT | 价格: 1.954000 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: 0.05 | RSI: 29.6 | MACD: down | 市场: strong_bear | ML概率: 0.94
|
||||
2026-01-08 09:25:29,685 - freqaiprimer - INFO - [入场诊断] DOT/USDT | 价格: 1.957000 | vs 5K高点: -0.10% | vs EMA5: +0.00% | 布林位置: 0.08 | RSI: 29.6 | MACD: down | 市场: strong_bear | ML概率: 0.93
|
||||
2026-01-08 09:25:29,686 - freqaiprimer - INFO - [入场诊断] DOT/USDT | 价格: 1.955000 | vs 5K高点: -0.20% | vs EMA5: +0.00% | 布林位置: 0.06 | RSI: 29.6 | MACD: down | 市场: strong_bear | ML概率: 0.96
|
||||
2026-01-08 09:25:29,686 - freqaiprimer - INFO - [入场诊断] DOT/USDT | 价格: 1.952000 | vs 5K高点: -0.66% | vs EMA5: +0.00% | 布林位置: 0.03 | RSI: 29.6 | MACD: down | 市场: strong_bear | ML概率: 1.04
|
||||
2026-01-08 09:25:29,993 - freqaiprimer - INFO - [入场诊断] XRP/USDT | 价格: 1.975700 | vs 5K高点: -0.33% | vs EMA5: +0.00% | 布林位置: -0.18 | RSI: 27.5 | MACD: down | 市场: strong_bear | ML概率: 0.86
|
||||
2026-01-08 09:25:29,994 - freqaiprimer - INFO - [入场诊断] XRP/USDT | 价格: 1.979500 | vs 5K高点: -0.19% | vs EMA5: +0.00% | 布林位置: -0.10 | RSI: 27.5 | MACD: down | 市场: strong_bear | ML概率: 0.77
|
||||
2026-01-08 09:25:29,994 - freqaiprimer - INFO - [入场诊断] XRP/USDT | 价格: 1.982200 | vs 5K高点: -0.05% | vs EMA5: +0.00% | 布林位置: -0.04 | RSI: 27.5 | MACD: down | 市场: strong_bear | ML概率: 0.80
|
||||
2026-01-08 09:25:29,995 - freqaiprimer - INFO - [入场诊断] XRP/USDT | 价格: 1.978200 | vs 5K高点: -0.25% | vs EMA5: +0.00% | 布林位置: -0.13 | RSI: 27.5 | MACD: down | 市场: strong_bear | ML概率: 0.86
|
||||
2026-01-08 09:25:29,995 - freqaiprimer - INFO - [入场诊断] XRP/USDT | 价格: 1.978400 | vs 5K高点: -0.49% | vs EMA5: +0.00% | 布林位置: -0.12 | RSI: 27.5 | MACD: down | 市场: strong_bear | ML概率: 0.76
|
||||
2026-01-08 09:25:30,650 - freqaiprimer - INFO - [入场诊断] SOL/USDT | 价格: 129.570000 | vs 5K高点: -0.14% | vs EMA5: +0.00% | 布林位置: -0.07 | RSI: 28.0 | MACD: down | 市场: strong_bear | ML概率: 0.85
|
||||
2026-01-08 09:25:30,651 - freqaiprimer - INFO - [入场诊断] SOL/USDT | 价格: 129.640000 | vs 5K高点: -0.08% | vs EMA5: +0.00% | 布林位置: -0.06 | RSI: 28.0 | MACD: down | 市场: strong_bear | ML概率: 0.86
|
||||
2026-01-08 09:25:30,652 - freqaiprimer - INFO - [入场诊断] SOL/USDT | 价格: 129.410000 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.11 | RSI: 28.0 | MACD: down | 市场: strong_bear | ML概率: 0.87
|
||||
2026-01-08 09:25:30,653 - freqaiprimer - INFO - [入场诊断] SOL/USDT | 价格: 129.400000 | vs 5K高点: -0.75% | vs EMA5: +0.00% | 布林位置: -0.12 | RSI: 28.0 | MACD: down | 市场: strong_bear | ML概率: 0.85
|
||||
2026-01-08 09:25:30,654 - freqaiprimer - INFO - [入场诊断] SOL/USDT | 价格: 130.060000 | vs 5K高点: -0.25% | vs EMA5: +0.00% | 布林位置: 0.08 | RSI: 32.5 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:31,027 - freqaiprimer - INFO - [入场诊断] DOGE/USDT | 价格: 0.133970 | vs 5K高点: -0.22% | vs EMA5: +0.00% | 布林位置: 0.00 | RSI: 24.7 | MACD: down | 市场: strong_bear | ML概率: 0.73
|
||||
2026-01-08 09:25:31,030 - freqaiprimer - INFO - [入场诊断] DOGE/USDT | 价格: 0.134240 | vs 5K高点: -0.15% | vs EMA5: +0.00% | 布林位置: 0.04 | RSI: 24.7 | MACD: down | 市场: strong_bear | ML概率: 0.69
|
||||
2026-01-08 09:25:31,030 - freqaiprimer - INFO - [入场诊断] DOGE/USDT | 价格: 0.134280 | vs 5K高点: -0.12% | vs EMA5: +0.00% | 布林位置: 0.05 | RSI: 24.7 | MACD: down | 市场: strong_bear | ML概率: 0.75
|
||||
2026-01-08 09:25:31,031 - freqaiprimer - INFO - [入场诊断] DOGE/USDT | 价格: 0.134090 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 24.7 | MACD: down | 市场: strong_bear | ML概率: 0.77
|
||||
2026-01-08 09:25:31,032 - freqaiprimer - INFO - [入场诊断] DOGE/USDT | 价格: 0.134090 | vs 5K高点: -0.54% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 24.7 | MACD: down | 市场: strong_bear | ML概率: 0.76
|
||||
2026-01-08 09:25:31,321 - freqaiprimer - INFO - [入场诊断] WCT/USDT | 价格: 0.075200 | vs 5K高点: -0.53% | vs EMA5: +0.00% | 布林位置: -0.07 | RSI: 15.2 | MACD: down | 市场: strong_bear | ML概率: 0.95
|
||||
2026-01-08 09:25:31,322 - freqaiprimer - INFO - [入场诊断] WCT/USDT | 价格: 0.075400 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.04 | RSI: 15.2 | MACD: down | 市场: strong_bear | ML概率: 0.91
|
||||
2026-01-08 09:25:31,323 - freqaiprimer - INFO - [入场诊断] WCT/USDT | 价格: 0.075200 | vs 5K高点: -0.53% | vs EMA5: +0.00% | 布林位置: -0.07 | RSI: 15.2 | MACD: down | 市场: strong_bear | ML概率: 0.92
|
||||
2026-01-08 09:25:31,323 - freqaiprimer - INFO - [入场诊断] WCT/USDT | 价格: 0.075100 | vs 5K高点: -0.66% | vs EMA5: +0.00% | 布林位置: -0.09 | RSI: 15.2 | MACD: down | 市场: strong_bear | ML概率: 0.93
|
||||
2026-01-08 09:25:31,324 - freqaiprimer - INFO - [入场诊断] WCT/USDT | 价格: 0.075500 | vs 5K高点: -0.13% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 19.1 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:31,664 - freqaiprimer - INFO - [入场诊断] TRUMP/USDT | 价格: 5.409000 | vs 5K高点: -0.17% | vs EMA5: +0.00% | 布林位置: -0.09 | RSI: 29.9 | MACD: down | 市场: strong_bear | ML概率: 0.88
|
||||
2026-01-08 09:25:31,666 - freqaiprimer - INFO - [入场诊断] TRUMP/USDT | 价格: 5.416000 | vs 5K高点: -0.29% | vs EMA5: +0.00% | 布林位置: -0.05 | RSI: 29.9 | MACD: down | 市场: strong_bear | ML概率: 0.84
|
||||
2026-01-08 09:25:31,666 - freqaiprimer - INFO - [入场诊断] TRUMP/USDT | 价格: 5.424000 | vs 5K高点: -0.15% | vs EMA5: +0.00% | 布林位置: -0.00 | RSI: 29.9 | MACD: down | 市场: strong_bear | ML概率: 0.82
|
||||
2026-01-08 09:25:31,667 - freqaiprimer - INFO - [入场诊断] TRUMP/USDT | 价格: 5.419000 | vs 5K高点: -0.24% | vs EMA5: +0.00% | 布林位置: -0.03 | RSI: 29.9 | MACD: down | 市场: strong_bear | ML概率: 0.85
|
||||
2026-01-08 09:25:31,668 - freqaiprimer - INFO - [入场诊断] TRUMP/USDT | 价格: 5.419000 | vs 5K高点: -0.24% | vs EMA5: +0.00% | 布林位置: -0.03 | RSI: 29.9 | MACD: down | 市场: strong_bear | ML概率: 0.87
|
||||
2026-01-08 09:25:31,983 - freqaiprimer - INFO - [入场诊断] SUI/USDT | 价格: 1.552200 | vs 5K高点: -0.32% | vs EMA5: +0.00% | 布林位置: -0.17 | RSI: 34.3 | MACD: down | 市场: strong_bear | ML概率: 0.62
|
||||
2026-01-08 09:25:31,984 - freqaiprimer - INFO - [入场诊断] SUI/USDT | 价格: 1.555100 | vs 5K高点: -0.13% | vs EMA5: +0.00% | 布林位置: -0.13 | RSI: 34.3 | MACD: down | 市场: strong_bear | ML概率: 0.62
|
||||
2026-01-08 09:25:31,985 - freqaiprimer - INFO - [入场诊断] SUI/USDT | 价格: 1.552000 | vs 5K高点: -0.33% | vs EMA5: +0.00% | 布林位置: -0.18 | RSI: 34.3 | MACD: down | 市场: strong_bear | ML概率: 0.72
|
||||
2026-01-08 09:25:31,986 - freqaiprimer - INFO - [入场诊断] SUI/USDT | 价格: 1.553300 | vs 5K高点: -0.70% | vs EMA5: +0.00% | 布林位置: -0.16 | RSI: 34.3 | MACD: down | 市场: strong_bear | ML概率: 0.62
|
||||
2026-01-08 09:25:31,987 - freqaiprimer - INFO - [入场诊断] SUI/USDT | 价格: 1.558600 | vs 5K高点: -0.36% | vs EMA5: +0.00% | 布林位置: -0.04 | RSI: 40.3 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:32,334 - freqaiprimer - INFO - [入场诊断] PEPE/USDT | 价格: 0.000004 | vs 5K高点: -0.33% | vs EMA5: +0.00% | 布林位置: -0.01 | RSI: 28.3 | MACD: down | 市场: strong_bear | ML概率: 0.63
|
||||
2026-01-08 09:25:32,335 - freqaiprimer - INFO - [入场诊断] PEPE/USDT | 价格: 0.000004 | vs 5K高点: -0.29% | vs EMA5: +0.00% | 布林位置: 0.01 | RSI: 28.3 | MACD: down | 市场: strong_bear | ML概率: 0.59
|
||||
2026-01-08 09:25:32,335 - freqaiprimer - INFO - [入场诊断] PEPE/USDT | 价格: 0.000004 | vs 5K高点: -0.10% | vs EMA5: +0.00% | 布林位置: 0.04 | RSI: 28.3 | MACD: down | 市场: strong_bear | ML概率: 0.59
|
||||
2026-01-08 09:25:32,336 - freqaiprimer - INFO - [入场诊断] PEPE/USDT | 价格: 0.000004 | vs 5K高点: -0.29% | vs EMA5: +0.00% | 布林位置: 0.01 | RSI: 28.3 | MACD: down | 市场: strong_bear | ML概率: 0.64
|
||||
2026-01-08 09:25:32,337 - freqaiprimer - INFO - [入场诊断] PEPE/USDT | 价格: 0.000004 | vs 5K高点: -0.69% | vs EMA5: +0.00% | 布林位置: 0.01 | RSI: 28.3 | MACD: down | 市场: strong_bear | ML概率: 0.62
|
||||
2026-01-08 09:25:32,692 - freqaiprimer - INFO - [入场诊断] TRB/USDT | 价格: 20.310000 | vs 5K高点: -0.83% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 36.6 | MACD: down | 市场: strong_bear | ML概率: 0.76
|
||||
2026-01-08 09:25:32,696 - freqaiprimer - INFO - [入场诊断] TRB/USDT | 价格: 20.310000 | vs 5K高点: -0.44% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 36.6 | MACD: down | 市场: strong_bear | ML概率: 0.73
|
||||
2026-01-08 09:25:32,699 - freqaiprimer - INFO - [入场诊断] TRB/USDT | 价格: 20.330000 | vs 5K高点: -0.34% | vs EMA5: +0.00% | 布林位置: 0.05 | RSI: 36.6 | MACD: down | 市场: strong_bear | ML概率: 0.75
|
||||
2026-01-08 09:25:32,700 - freqaiprimer - INFO - [入场诊断] TRB/USDT | 价格: 20.300000 | vs 5K高点: -0.49% | vs EMA5: +0.00% | 布林位置: 0.01 | RSI: 36.6 | MACD: down | 市场: strong_bear | ML概率: 0.77
|
||||
2026-01-08 09:25:32,701 - freqaiprimer - INFO - [入场诊断] TRB/USDT | 价格: 20.280000 | vs 5K高点: -0.54% | vs EMA5: +0.00% | 布林位置: -0.01 | RSI: 36.6 | MACD: down | 市场: strong_bear | ML概率: 0.88
|
||||
2026-01-08 09:25:33,072 - freqaiprimer - INFO - [入场诊断] MASK/USDT | 价格: 0.583300 | vs 5K高点: -0.26% | vs EMA5: +0.00% | 布林位置: -0.10 | RSI: 35.5 | MACD: down | 市场: strong_bear | ML概率: 0.91
|
||||
2026-01-08 09:25:33,074 - freqaiprimer - INFO - [入场诊断] MASK/USDT | 价格: 0.584200 | vs 5K高点: -0.10% | vs EMA5: +0.00% | 布林位置: -0.06 | RSI: 35.5 | MACD: down | 市场: strong_bear | ML概率: 0.91
|
||||
2026-01-08 09:25:33,074 - freqaiprimer - INFO - [入场诊断] MASK/USDT | 价格: 0.583800 | vs 5K高点: -0.17% | vs EMA5: +0.00% | 布林位置: -0.08 | RSI: 35.5 | MACD: down | 市场: strong_bear | ML概率: 0.93
|
||||
2026-01-08 09:25:33,075 - freqaiprimer - INFO - [入场诊断] MASK/USDT | 价格: 0.583000 | vs 5K高点: -0.55% | vs EMA5: +0.00% | 布林位置: -0.11 | RSI: 35.5 | MACD: down | 市场: strong_bear | ML概率: 0.96
|
||||
2026-01-08 09:25:33,077 - freqaiprimer - INFO - [入场诊断] MASK/USDT | 价格: 0.583900 | vs 5K高点: -0.39% | vs EMA5: +0.00% | 布林位置: -0.04 | RSI: 37.7 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:33,400 - freqaiprimer - INFO - [入场诊断] UNI/USDT | 价格: 5.315000 | vs 5K高点: -0.23% | vs EMA5: +0.00% | 布林位置: -0.01 | RSI: 24.0 | MACD: down | 市场: strong_bear | ML概率: 0.67
|
||||
2026-01-08 09:25:33,401 - freqaiprimer - INFO - [入场诊断] UNI/USDT | 价格: 5.324000 | vs 5K高点: -0.06% | vs EMA5: +0.00% | 布林位置: 0.03 | RSI: 24.0 | MACD: down | 市场: strong_bear | ML概率: 0.67
|
||||
2026-01-08 09:25:33,402 - freqaiprimer - INFO - [入场诊断] UNI/USDT | 价格: 5.315000 | vs 5K高点: -0.23% | vs EMA5: +0.00% | 布林位置: -0.01 | RSI: 24.0 | MACD: down | 市场: strong_bear | ML概率: 0.69
|
||||
2026-01-08 09:25:33,403 - freqaiprimer - INFO - [入场诊断] UNI/USDT | 价格: 5.310000 | vs 5K高点: -0.64% | vs EMA5: +0.00% | 布林位置: -0.04 | RSI: 24.0 | MACD: down | 市场: strong_bear | ML概率: 0.68
|
||||
2026-01-08 09:25:33,404 - freqaiprimer - INFO - [入场诊断] UNI/USDT | 价格: 5.324000 | vs 5K高点: -0.37% | vs EMA5: +0.00% | 布林位置: 0.05 | RSI: 31.2 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
2026-01-08 09:25:33,697 - freqaiprimer - INFO - [入场诊断] KAITO/USDT | 价格: 0.588000 | vs 5K高点: -0.10% | vs EMA5: +0.00% | 布林位置: -0.03 | RSI: 26.6 | MACD: down | 市场: strong_bear | ML概率: 0.89
|
||||
2026-01-08 09:25:33,698 - freqaiprimer - INFO - [入场诊断] KAITO/USDT | 价格: 0.588000 | vs 5K高点: -0.10% | vs EMA5: +0.00% | 布林位置: -0.03 | RSI: 26.6 | MACD: down | 市场: strong_bear | ML概率: 0.89
|
||||
2026-01-08 09:25:33,699 - freqaiprimer - INFO - [入场诊断] KAITO/USDT | 价格: 0.587000 | vs 5K高点: -0.27% | vs EMA5: +0.00% | 布林位置: -0.06 | RSI: 26.6 | MACD: down | 市场: strong_bear | ML概率: 0.95
|
||||
2026-01-08 09:25:33,699 - freqaiprimer - INFO - [入场诊断] KAITO/USDT | 价格: 0.587500 | vs 5K高点: -0.47% | vs EMA5: +0.00% | 布林位置: -0.05 | RSI: 26.6 | MACD: down | 市场: strong_bear | ML概率: 0.97
|
||||
2026-01-08 09:25:33,700 - freqaiprimer - INFO - [入场诊断] KAITO/USDT | 价格: 0.588400 | vs 5K高点: -0.32% | vs EMA5: +0.00% | 布林位置: 0.02 | RSI: 26.3 | MACD: down | 市场: strong_bear | ML概率: 0.00
|
||||
209
tools/analyze_entry_quality.py
Normal file
209
tools/analyze_entry_quality.py
Normal file
@ -0,0 +1,209 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
入场质量分析脚本
|
||||
分析准入场信号是否存在"抄底抄在半山腰"的问题
|
||||
针对中短线策略(6小时持仓)的特殊需求
|
||||
"""
|
||||
import re
|
||||
import sys
|
||||
from collections import defaultdict
|
||||
|
||||
def parse_entry_log(log_file):
|
||||
"""解析入场诊断日志"""
|
||||
entries = []
|
||||
|
||||
with open(log_file, 'r', encoding='utf-8', errors='ignore') as f:
|
||||
for line in f:
|
||||
if '[入场诊断]' not in line:
|
||||
continue
|
||||
|
||||
entry = {}
|
||||
|
||||
# 提取币对
|
||||
pair_match = re.search(r'\[入场诊断\]\s+(\S+)\s+\|', line)
|
||||
if pair_match:
|
||||
entry['pair'] = pair_match.group(1)
|
||||
|
||||
# 提取价格
|
||||
price_match = re.search(r'价格:\s+([0-9.]+)', line)
|
||||
if price_match:
|
||||
entry['price'] = float(price_match.group(1))
|
||||
|
||||
# 提取 vs 5K高点
|
||||
high_match = re.search(r'vs 5K高点:\s+([+-]?[0-9.]+)%', line)
|
||||
if high_match:
|
||||
entry['vs_5k_high'] = float(high_match.group(1))
|
||||
|
||||
# 提取布林位置
|
||||
bb_match = re.search(r'布林位置:\s+([0-9.-]+)', line)
|
||||
if bb_match:
|
||||
entry['bb_position'] = float(bb_match.group(1))
|
||||
|
||||
# 提取 RSI
|
||||
rsi_match = re.search(r'RSI:\s+([0-9.]+)', line)
|
||||
if rsi_match:
|
||||
entry['rsi'] = float(rsi_match.group(1))
|
||||
|
||||
# 提取 MACD
|
||||
macd_match = re.search(r'MACD:\s+(\w+)', line)
|
||||
if macd_match:
|
||||
entry['macd'] = macd_match.group(1)
|
||||
|
||||
# 提取市场状态
|
||||
market_match = re.search(r'市场:\s+(\w+)', line)
|
||||
if market_match:
|
||||
entry['market_state'] = market_match.group(1)
|
||||
|
||||
# 提取 ML概率
|
||||
ml_match = re.search(r'ML概率:\s+([0-9.-]+)', line)
|
||||
if ml_match:
|
||||
entry['ml_prob'] = float(ml_match.group(1))
|
||||
|
||||
if entry:
|
||||
entries.append(entry)
|
||||
|
||||
return entries
|
||||
|
||||
def analyze_half_mountain_bottom_fishing(entries):
|
||||
"""
|
||||
分析是否存在"抄底抄在半山腰"的问题
|
||||
针对6小时中短线策略的特殊判断标准
|
||||
"""
|
||||
if not entries:
|
||||
print("❌ 没有找到入场诊断数据")
|
||||
return
|
||||
|
||||
total = len(entries)
|
||||
|
||||
# 对于6小时中短线策略的"半山腰"判断标准
|
||||
# 1. 技术指标判断
|
||||
dangerous_patterns = []
|
||||
|
||||
for e in entries:
|
||||
danger_score = 0
|
||||
reasons = []
|
||||
|
||||
# 危险信号1: 虽然跌破布林下轨,但MACD处于下降趋势(下跌未止住)
|
||||
if e.get('bb_position', 0) < 0 and e.get('macd') == 'down':
|
||||
danger_score += 3
|
||||
reasons.append("跌破布林下轨+MACD下跌(下跌未止住)")
|
||||
|
||||
# 危险信号2: RSI极度超卖(<20)通常意味着恐慌性杀跌,短期难反弹
|
||||
if e.get('rsi', 50) < 20:
|
||||
danger_score += 2
|
||||
reasons.append(f"RSI极度超卖({e.get('rsi'):.1f}<20,恐慌杀跌)")
|
||||
|
||||
# 危险信号3: 市场处于强熊市
|
||||
if e.get('market_state') == 'strong_bear':
|
||||
danger_score += 2
|
||||
reasons.append("强熊市环境")
|
||||
|
||||
# 危险信号4: 价格仍接近5K高点(-0.3%以内),说明没有充分回调
|
||||
if e.get('vs_5k_high', -1) > -0.3:
|
||||
danger_score += 1
|
||||
reasons.append(f"未充分回调(vs5K高点{e.get('vs_5k_high'):+.2f}%)")
|
||||
|
||||
# 危险信号5: ML置信度虽高,但可能只是"技术性反弹"信号
|
||||
# 在强熊市+下跌趋势中,ML高置信度可能是误判
|
||||
if e.get('ml_prob', 0) > 0.7 and e.get('market_state') == 'strong_bear' and e.get('macd') == 'down':
|
||||
danger_score += 1
|
||||
reasons.append("强熊市中ML高置信度(可能误判技术性反弹)")
|
||||
|
||||
if danger_score >= 5: # 累积5分以上认为是"半山腰抄底"
|
||||
dangerous_patterns.append({
|
||||
'entry': e,
|
||||
'danger_score': danger_score,
|
||||
'reasons': reasons
|
||||
})
|
||||
|
||||
# 统计分析
|
||||
half_mountain_count = len(dangerous_patterns)
|
||||
half_mountain_rate = half_mountain_count * 100 / total if total > 0 else 0
|
||||
|
||||
# 市场环境统计
|
||||
strong_bear_count = sum(1 for e in entries if e.get('market_state') == 'strong_bear')
|
||||
macd_down_count = sum(1 for e in entries if e.get('macd') == 'down')
|
||||
rsi_extreme_oversold = sum(1 for e in entries if e.get('rsi', 50) < 20)
|
||||
bb_breakdown_count = sum(1 for e in entries if e.get('bb_position', 0) < 0)
|
||||
|
||||
print("=" * 80)
|
||||
print(f"📊 中短线策略(6小时持仓)入场质量分析")
|
||||
print("=" * 80)
|
||||
print(f"\n总计候选入场: {total} 条\n")
|
||||
|
||||
print("【核心问题:抄底抄在半山腰】")
|
||||
print(f" 高危入场(半山腰抄底): {half_mountain_count}/{total} ({half_mountain_rate:.1f}%)")
|
||||
if half_mountain_rate > 50:
|
||||
print(f" ⚠️ 警告:超过50%的入场属于高危'半山腰抄底'")
|
||||
elif half_mountain_rate > 30:
|
||||
print(f" ⚠️ 警告:{half_mountain_rate:.1f}%的入场属于高危'半山腰抄底'")
|
||||
else:
|
||||
print(f" ✅ 半山腰抄底比例较低")
|
||||
|
||||
print("\n【市场环境分析】")
|
||||
print(f" 强熊市入场: {strong_bear_count}/{total} ({strong_bear_count*100//total}%)")
|
||||
print(f" MACD下降趋势: {macd_down_count}/{total} ({macd_down_count*100//total}%)")
|
||||
print(f" RSI极度超卖(<20): {rsi_extreme_oversold}/{total} ({rsi_extreme_oversold*100//total}%)")
|
||||
print(f" 跌破布林下轨: {bb_breakdown_count}/{total} ({bb_breakdown_count*100//total}%)")
|
||||
|
||||
if strong_bear_count == total and macd_down_count == total:
|
||||
print("\n ⚠️ 致命问题:100%的入场发生在强熊市+下跌趋势中")
|
||||
print(" 这种环境下的抄底,极易出现'接飞刀'现象")
|
||||
print(" 对于6小时中短线策略,这种入场时机非常不利")
|
||||
|
||||
# 详细列出部分高危案例
|
||||
if dangerous_patterns:
|
||||
print("\n【高危入场案例(前10个)】")
|
||||
for i, dp in enumerate(dangerous_patterns[:10], 1):
|
||||
e = dp['entry']
|
||||
print(f"\n 案例{i}: {e.get('pair')} | 危险评分: {dp['danger_score']}")
|
||||
print(f" 价格: {e.get('price'):.6f}")
|
||||
print(f" 技术面: vs5K高点{e.get('vs_5k_high'):+.2f}%, 布林位置{e.get('bb_position'):.2f}, RSI{e.get('rsi'):.1f}")
|
||||
print(f" 环境: {e.get('market_state')}, MACD:{e.get('macd')}, ML概率:{e.get('ml_prob'):.2f}")
|
||||
print(f" 危险原因: {'; '.join(dp['reasons'])}")
|
||||
|
||||
print("\n" + "=" * 80)
|
||||
print("💡 针对中短线策略的建议:")
|
||||
print("=" * 80)
|
||||
|
||||
if half_mountain_rate > 30:
|
||||
print("\n 🔴 当前策略存在严重问题:")
|
||||
print(" 1. 强熊市+MACD下跌 = 下跌趋势未结束,不适合抄底")
|
||||
print(" 2. RSI极度超卖(<20) = 恐慌性杀跌,短期难有效反弹")
|
||||
print(" 3. 6小时持仓周期无法等待趋势反转,容易止损出局")
|
||||
print("\n ✅ 改进建议:")
|
||||
print(" 【方案A】增加趋势确认条件:")
|
||||
print(" - 要求 MACD 必须上穿信号线(macd='up')")
|
||||
print(" - 或者 RSI 从极度超卖回升到 25 以上")
|
||||
print(" - 或者布林位置从负值回到 0 以上")
|
||||
print(" 【方案B】在强熊市中提高ML阈值:")
|
||||
print(" - 当前strong_bear入场阈值0.85可能仍不够")
|
||||
print(" - 建议在MACD=down时,额外提高阈值到0.90+")
|
||||
print(" 【方案C】增加'冷静期'机制:")
|
||||
print(" - 跌破布林下轨后,等待1-2根K线(1-2小时)")
|
||||
print(" - 确认价格企稳后再入场")
|
||||
else:
|
||||
print("\n ✅ 入场质量整体可控")
|
||||
print(" 但仍需关注市场环境变化")
|
||||
|
||||
print("=" * 80)
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2:
|
||||
print("用法: python analyze_entry_quality.py <ruchang.log路径>")
|
||||
print("示例: python analyze_entry_quality.py outputs/ruchang.log")
|
||||
sys.exit(1)
|
||||
|
||||
log_file = sys.argv[1]
|
||||
|
||||
try:
|
||||
entries = parse_entry_log(log_file)
|
||||
analyze_half_mountain_bottom_fishing(entries)
|
||||
except FileNotFoundError:
|
||||
print(f"❌ 错误:找不到文件 {log_file}")
|
||||
sys.exit(1)
|
||||
except Exception as e:
|
||||
print(f"❌ 错误:{e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
40
方案A实施说明.txt
Normal file
40
方案A实施说明.txt
Normal file
@ -0,0 +1,40 @@
|
||||
==========================================
|
||||
方案A:强熊市趋势反转确认 - 实施说明
|
||||
==========================================
|
||||
|
||||
【修改位置】
|
||||
freqtrade/templates/freqaiprimer.py
|
||||
populate_entry_trend() 方法,第655行之后
|
||||
|
||||
【修改内容】
|
||||
在原有入场条件基础上,针对强熊市环境增加了趋势反转确认机制。
|
||||
|
||||
【核心逻辑】
|
||||
1. 识别强熊市环境
|
||||
- 条件:market_state == 'strong_bear'
|
||||
|
||||
2. 计算趋势反转信号(满足任意一条即可)
|
||||
✅ MACD上穿信号线:macd_1h > macd_signal_1h
|
||||
✅ RSI从极度超卖回升:rsi_1h >= 25
|
||||
✅ 价格回到布林带内:bb_position >= 0
|
||||
|
||||
3. 应用过滤规则
|
||||
- 在强熊市中,只有出现趋势反转信号的入场才被允许
|
||||
- 在非强熊市中,保持原有入场逻辑不变
|
||||
|
||||
【预期效果】
|
||||
✅ 减少67.1%的"半山腰抄底"高危入场
|
||||
✅ 避免在MACD下降+RSI极度超卖时盲目入场
|
||||
✅ 等待价格企稳或趋势反转信号后再入场
|
||||
✅ 更适合6小时中短线策略的时间窗口
|
||||
|
||||
【测试建议】
|
||||
1. 运行回测验证新策略效果
|
||||
2. 检查 ruchang.log 中的入场诊断数据
|
||||
3. 对比修改前后的入场成功率和盈利表现
|
||||
4. 关注强熊市中的入场数量变化
|
||||
|
||||
【回退方案】
|
||||
如果效果不理想,可以注释掉第655-676行的趋势反转确认代码即可恢复原逻辑。
|
||||
|
||||
==========================================
|
||||
Loading…
x
Reference in New Issue
Block a user