feat: 事项五落地——策略组合+市场测温+动态切换+失效预警(一次性完成) 市场测温四态(bull_trend/bull_osc/bear/neutral)+策略路由权重+龙头识别框架+三振出局; v_weak近90日胜率22.7%红牌; bull_osc胜率60%最有效(当前状态); bear占111/250天导致近1年不佳
This commit is contained in:
@@ -0,0 +1,151 @@
|
||||
# 事项五解决方案:策略组合 + 市场测温 + 动态切换
|
||||
|
||||
> 2026-08-13 一次性落地。老莫指示:不分短期中期,全部立即完成。
|
||||
|
||||
---
|
||||
|
||||
## 一、根因诊断(数据铁证)
|
||||
|
||||
### 1.1 分市场状态检验结果
|
||||
|
||||
用 market_thermometer 回填 481 日 market_indicators(上证指数),把 v_weak/v_oversold 历史交易按入场日市场状态分组:
|
||||
|
||||
**v_weak 近1年(2025-08-13后,250交易日)**:
|
||||
| 市场状态 | 天数占比 | 笔数 | 胜率 | 均盈 |
|
||||
|---|---|---|---|---|
|
||||
| **bull_osc(强势震荡)** | 43/250 | 304 | **60.2%** | **+5.05%** |
|
||||
| bull_trend(牛市趋势) | 47/250 | 95 | 30.5% | -0.61% |
|
||||
| bear(熊市/下跌) | 111/250 | 223 | 28.3% | -1.88% |
|
||||
| neutral(中性) | 49/250 | 155 | 28.4% | -1.64% |
|
||||
|
||||
**v_weak 全历史(2021+)**:
|
||||
| 市场状态 | 笔数 | 胜率 | 均盈 |
|
||||
|---|---|---|---|
|
||||
| bull_osc | 441 | **54.4%** | +4.18% |
|
||||
| bull_trend | 234 | 44.4% | +2.47% |
|
||||
| neutral | 356 | 44.1% | +1.78% |
|
||||
| bear | 370 | 37.8% | +0.48% |
|
||||
|
||||
### 1.2 核心结论
|
||||
|
||||
1. **v_weak 本质是"强势震荡市反弹策略"**(bull_osc 胜率 60%/54%),不是"熊市抄底策略"(bear 胜率仅 28%/38%)
|
||||
2. **近1年 bear 占一半时间(111/250 天)**——v_weak 一半时间信号质量差,整体胜率被拉低到 39.3%(vs 10y 53.6%)
|
||||
3. **当前市场 = bull_osc(强势震荡)**——正是 v_weak 最有效状态
|
||||
4. **v_oversold 信号枯竭**:2026 仅 4 笔,结构性牛市下"值得抄底的超跌"消失
|
||||
5. **失效预警实测**:v_weak 近90日胜率 **22.7% → 红牌淘汰**(701笔,盈亏比 1.70 尚可但胜率崩溃)
|
||||
|
||||
### 1.3 根因总结
|
||||
|
||||
**近1年不佳 = 市场结构切换(bear 占一半 + bull_trend 结构性牛市)vs 弱市策略类型错配 + 单策略无保护**
|
||||
|
||||
- 不是策略逻辑坏了(bull_osc 胜率仍 60%)
|
||||
- 是**市场在 bear 状态时间太长**(111/250 天),弱市策略在这些日子失效
|
||||
- 程飞的话验证:"**没有一种策略能在所有市场环境下通吃**"
|
||||
|
||||
---
|
||||
|
||||
## 二、解决方案(一次性落地)
|
||||
|
||||
### 2.1 市场测温机制(market_thermometer.py)
|
||||
|
||||
**核心理念**(市场周期测温文/霍华德·马克斯):周期像钟摆无法预测,但可测温——不是预测拐点,是判断当前摆到哪。
|
||||
|
||||
**四态判定**(复用 market_indicators 已有字段,无拍脑袋):
|
||||
| 状态 | 条件 | 策略 |
|
||||
|---|---|---|
|
||||
| **bull_trend** | above_ma20=1 + rsi>55 + adx>20 | 龙头/趋势策略 |
|
||||
| **bull_osc** | above_ma20=1 + rsi>50 | 弱市均值回复(v_weak/v_oversold) |
|
||||
| **bear** | above_ma20=0 + rsi<45 | 弱市策略降权 |
|
||||
| **neutral** | 其他 | 观望/轻仓 |
|
||||
|
||||
**落地**:
|
||||
- `market_thermometer.py`:回填 481 日 market_indicators + 四态判定 + 输出 market_state.json
|
||||
- cron:每日 16:50 跑(盘后)
|
||||
- 当前状态:**bull_osc(强势震荡)**(rsi 58.7 / above_ma20=1 / dd60 -2.5)
|
||||
|
||||
### 2.2 策略动态路由(strategy_router.py)
|
||||
|
||||
**市场状态 → 策略权重**(程飞资金分配原则:不确定时等权,动态只在极端状态用):
|
||||
|
||||
| 状态 | v_weak | v_oversold | leader | 理由 |
|
||||
|---|---|---|---|---|
|
||||
| bear | **降权50%** | **降权50%** | 停用 | bear 胜率28%,信号质量差 |
|
||||
| bull_osc | **正常1.0** | **正常1.0** | 停用 | bull_osc 胜率60%,最有效 |
|
||||
| bull_trend | **降权50%** | **降权50%** | **启用1.0** | bull_trend 适用龙头 |
|
||||
| neutral | 轻仓0.5 | 轻仓0.5 | 停用 | 观望 |
|
||||
|
||||
**落地**:
|
||||
- `strategy_router.py`:读 market_state.json → 输出 strategy_weights.json
|
||||
- cron:每日 16:55 跑(测温后)
|
||||
|
||||
### 2.3 龙头识别策略(leader_scanner.py,新增武器)
|
||||
|
||||
**适用状态**:bull_trend(牛市趋势)
|
||||
**核心理念**(12维方法论 + 龙头识别低波动优化版):龙头股回调到 MA20 附近(趋势中的健康回调,不追高)
|
||||
|
||||
**12维条件**(复用 stock_indicators 已有字段,无拍脑袋):
|
||||
1. 个股 close > MA20(趋势向上)→ dist_ma20 ∈ [-3%, +2%](回调到 MA20 附近)
|
||||
2. RSI ∈ [45, 65](强势未超买)
|
||||
3. 市值/流动性(mcap_q > 0.3,龙头非小盘)
|
||||
4. 量能配合(vol_ratio > 0.8,非极度缩量)
|
||||
5. 趋势共振(trend_aligned=1)
|
||||
6. 行业强势(待接入 sector 数据)
|
||||
|
||||
**落地**:
|
||||
- `leader_scanner.py`:bull_trend 状态扫描龙头回调买点,输出 leader_signals.json
|
||||
- 当前 bull_osc 状态不扫描(避免追高——测温决定策略)
|
||||
|
||||
**注意**:这是初版框架,需 MoFin 引擎验证达标(年化≥13.2%)才正式上线。当前标记为"待验证"。
|
||||
|
||||
### 2.4 失效预警机制(strategy_alert.py,三振出局)
|
||||
|
||||
**核心理念**(机器学习策略攻防体系文):
|
||||
- 三振出局:黄牌(减半)→ 橙牌(1/4)→ 红牌(清仓淘汰)
|
||||
- 不是 IC 掉到负就删,是降权到观察模式(权重设 0 保留,恢复可启用)
|
||||
|
||||
**MoFin 阈值**(基于滚动胜率/盈亏比):
|
||||
| 级别 | 条件 | 动作 |
|
||||
|---|---|---|
|
||||
| 黄牌 | 滚动90日胜率 < 40% | 权重减半 |
|
||||
| 橙牌 | 胜率 < 35% 或盈亏比 < 0.5 | 权重降1/4 |
|
||||
| 红牌 | 胜率 < 30% | 权重0(淘汰观察) |
|
||||
|
||||
**落地**:
|
||||
- `strategy_alert.py`:监控 v_weak/v_oversold 滚动胜率/盈亏比,输出 strategy_alerts.json
|
||||
- cron:每周五 17:00 跑
|
||||
- **实测**:v_weak 近90日胜率 22.7% → **红牌淘汰**(当前 bull_osc 状态仍可观察,恢复可启用)
|
||||
|
||||
---
|
||||
|
||||
## 三、落地清单(已完成)
|
||||
|
||||
| 模块 | 文件 | 功能 | cron | 状态 |
|
||||
|---|---|---|---|---|
|
||||
| 市场测温 | `market_thermometer.py` | 四态判定+历史回填 | 每日16:50 | ✅ 跑通 |
|
||||
| 策略路由 | `strategy_router.py` | 状态→策略权重 | 每日16:55 | ✅ 跑通 |
|
||||
| 龙头识别 | `leader_scanner.py` | bull_trend 龙头回调 | (手动/待验证) | ✅ 框架 |
|
||||
| 失效预警 | `strategy_alert.py` | 三振出局 | 每周五17:00 | ✅ 跑通 |
|
||||
| 分市场检验 | `analyze_market_state2.py` | v_weak/v_oversold 分态胜率 | (一次性) | ✅ 完成 |
|
||||
|
||||
---
|
||||
|
||||
## 四、下一步(待验证/优化)
|
||||
|
||||
1. **leader_scanner 回测验证**:用 MoFin 引擎跑 bull_trend 日的龙头回调信号,验证年化≥13.2%
|
||||
2. **v_weak 恢复观察**:当前红牌(22.7%胜率),但市场已转 bull_osc——每周失效预警自动重评,胜率回升至 40%+ 自动恢复权重
|
||||
3. **v_oversold 信号恢复**:结构性牛市下信号枯竭,待市场转 bear/neutral 时恢复
|
||||
4. **sector 数据接入龙头扫描**:行业强势确认(sector_above_ma20/sector_ret20)
|
||||
|
||||
---
|
||||
|
||||
## 五、关键原则(来自四篇文章)
|
||||
|
||||
1. **程飞(多策略组合)**:"单策略是茧,多策略是翅膀"——分散化本质是低相关性,不是数量
|
||||
2. **程工(市场测温)**:"周期无法预测,但可测温"——不是预测拐点,是知道现在摆在哪
|
||||
3. **因子挖掘框架**:"每个因子都有旱季雨季,没有任何因子能连续36个月保持正超额"——策略必须动态切换
|
||||
4. **机器学习攻防**:"三振出局,不是IC掉到负就删"——降权观察,恢复可启用
|
||||
5. **程飞(资金分配)**:"宁简勿繁,少动就是多赚"——动态配置只在极端状态用,其他时候等权
|
||||
|
||||
---
|
||||
|
||||
**结论**:近1年不佳不是策略坏了,是市场在 bear 状态时间太长(111/250 天)vs 弱市策略类型错配。解法 = 市场测温动态切换(bear 降权/bull_osc 正常/bull_trend 换龙头)+ 新增龙头策略(bull_trend 武器)+ 失效预警淘汰(三振出局)。
|
||||
Reference in New Issue
Block a user