146 lines
7.2 KiB
Markdown
146 lines
7.2 KiB
Markdown
# MoFin 系统状态与数据链路说明(知微须知)
|
||
|
||
> 更新:2026-08-17(小小莫整理,供知微了解最新系统机制)
|
||
> 范围:自选候选管道 / 重评报告 / 淘汰机制 / RR 指标 的当前逻辑与今天的重要修复
|
||
|
||
---
|
||
|
||
## 一、核心结论速览
|
||
|
||
1. **RR(盈亏比)不是质量指标,只是风控保底**——基于 12.3 万笔回测数据:RR 与最终收益 Pearson r≈0.05(几乎无关),分策略/分年规律相反。**RR 阈值已从 2.0 降到 1.0**(只拦"止损距离≥止盈距离"的负期望交易)。
|
||
2. **淘汰自选只认"卖出"信号**——数据证明死水3连/RR<2.0 淘汰 60% 误杀(淘汰后 20 日反而涨)。
|
||
3. **12 维重评报告的资金流/行业数据源已修复**——此前读到过期缓存/错表导致"暂无数据/待补充"。
|
||
4. **全环节记录"依据策略"**——候选→提拔→重评快照都有 strategy_name,可追溯。
|
||
|
||
---
|
||
|
||
## 二、RR 指标的正确理解(重要)
|
||
|
||
### 数据依据(docs/RR分析结论.md)
|
||
- 样本:123,049 笔回测交易(15 个策略版本)
|
||
- **计划 RR**(选股时)= (止盈-买入)/(买入-止损),反映的是**止盈/止损参数比例**,不是选股质量
|
||
- 各策略设计 RR 天然不同:b_td1_v3=1.875,s2_panic_v2=2.5,v_mr 回测中位 2.25,v8.1 中位 1.53
|
||
- 全局 Pearson r≈0.05;分策略规律相反(v1.0 高RR好、v_mr2 高RR差);分年不稳定(2022 高RR反而亏)
|
||
|
||
### 当前阈值(已改)
|
||
| 位置 | 门槛 | 逻辑 |
|
||
|------|------|------|
|
||
| promote 进自选 | RR ≥ 1.0 | 保底,防负期望交易 |
|
||
| watchlist_auto_exit 每日淘汰 | RR < 1.0 淘汰 | 保底 |
|
||
| 超跌类策略(p_oversold/b_td1_v3)| 豁免 RR 门槛 | 超跌反弹 RR 天然低 |
|
||
|
||
---
|
||
|
||
## 三、淘汰机制(2026-08-17 重构,老莫确认方案A)
|
||
|
||
### 数据依据(docs/淘汰逻辑验证.md)
|
||
1126 只死水3连淘汰标的后 20 日实际走势:
|
||
- 信号不充分3连:+9.78%,71% 涨 → **严重误杀**
|
||
- 弱势持有3连:+9.67%,75% 涨 → **严重误杀**
|
||
- 观望3连:+1.80%(中性)
|
||
- RR<2.0 淘汰:+4.74%,44% 涨 → 误杀
|
||
- **信号=卖出:-2.2% → 唯一正确**
|
||
|
||
### 当前逻辑(watchlist_auto_exit.py,每日 8:50 盘前)
|
||
```
|
||
自动退出条件(二选一):
|
||
1. timing_signal 包含 "卖出"
|
||
2. rr_ratio > 0 且 < 1.0(保底)
|
||
其他情况一律保留(即使长期观望/信号不充分/弱势持有)
|
||
```
|
||
**关键认知**:"信号不充分/弱势持有"是**启动前的最低位区**(策略在等确认),不是该删的信号。删掉 = 删在启动前夜。
|
||
|
||
---
|
||
|
||
## 四、12 维重评报告数据源(2026-08-17 修复)
|
||
|
||
### 根因与修复
|
||
| 问题 | 根因 | 修复 |
|
||
|------|------|------|
|
||
| 报告"资金流暂无数据" | 读 capital_flow_cache 用 ORDER BY id DESC → 拿到旧行 id=194(08-10,仅11只)| 改 WHERE id=1(现在08-17,33只)|
|
||
| 报告"行业待补充" | 重评读 stock_sectors(仅898只),300668 等6只无记录 | 回退 stock_sectors_em(5061只)|
|
||
| 资金流采集断档(08-04) | candidates 表缺 source 列,fund_flow_alert 写入静默失败 | 加 candidates.source 列 |
|
||
|
||
### 当前数据状态
|
||
- 资金流缓存:id=1,08-17 19:24 刷新,覆盖 33 只(holdings + 自选)
|
||
- 行业覆盖:stock_sectors_em 5061 只全市场
|
||
- **注意**:港股(5位码)无资金流数据(sina API 不支持)——HK 股报告资金面仍可能显示中性
|
||
|
||
---
|
||
|
||
## 五、全环节策略来源记录(strategy_name)
|
||
|
||
| 环节 | 落点 | 说明 |
|
||
|------|------|------|
|
||
| 选股扫描 | candidates.source_strategy | b_td1_v3/accumulation/s2_panic_v2/v_mr 写策略名 |
|
||
| 提拔 | holding_strategies.strategy_name | promote 继承候选来源 |
|
||
| 重评快照 | strategy_history.strategy_name | snapshot 继承 holding |
|
||
| 资金流突变 | candidates.source | = 'fund_flow_positive' |
|
||
|
||
**查询方法**:
|
||
```sql
|
||
-- 某候选是哪策略选的
|
||
SELECT code, source_strategy, rr FROM candidates WHERE code='XXX';
|
||
-- 某自选属于哪个策略
|
||
SELECT code, strategy_name, rr_ratio FROM holding_strategies WHERE code='XXX';
|
||
```
|
||
|
||
---
|
||
|
||
## 六、进自选推送(2026-08-17 增强)
|
||
|
||
promote 提拔进自选后,XMPP 给老莫推送**完整 12 维重评全文**(含策略名、RR、买入区/止损/止盈、交叉分析)。若重评报告未就绪会标注"稍后补推"。
|
||
|
||
---
|
||
|
||
## 七、当前运行状态(08-17 收盘)
|
||
|
||
- active 策略:b_td1(trend_down,权重 0.3)
|
||
- 自选:26 只(RR<1.0 待淘汰:0 只)
|
||
- watchlist_auto_exit:cron `50 8 * * 1-5`(盘前跑)
|
||
- 当日提交:22 个(RR规范/淘汰重构/数据源修复/4环节策略记录)
|
||
|
||
---
|
||
|
||
## 八、已知遗留(待处理/注意事项)
|
||
|
||
### 已修复(今日,共 26 个提交)
|
||
- 资金流读取 bug(batch_reassess/candidate_filter/mofin_db 三处读到旧缓存 id=194 → WHERE id=1)
|
||
- 行业读取缺覆盖(per_stock/batch_reassess/strategy_lifecycle 加 stock_sectors_em 回退)
|
||
- sector_snapshots 全表读取(strategy_lifecycle 改最新快照,原 133907 行乱序)
|
||
- watchlist 淘汰回注硬编码 v_mr → 用 strategy_name
|
||
|
||
### 遗留已知问题(minor/info,不阻塞运行)
|
||
1. **CREATE TABLE 不含新列**:candidates.source/source_strategy、holding_strategies.strategy_name、strategy_history.strategy_name 仅靠 `schema_migrate_20260817.py` ALTER 添加。**新建库/恢复部署时必须先跑迁移脚本**,否则 promote_candidates 会报"无此列"。
|
||
2. **三份 mofin_db.py 并存**(/home/hmo/MoFin/mofin_db.py、scripts/、deploy/profile-scripts/)——已全部同步修复,但维护时需注意是同一逻辑的多副本(硬链接)。
|
||
3. **港股(5位码)无资金流**:sina API 不支持,报告资金面可能显示中性——非 bug,数据源限制。
|
||
4. **fund_flow_alert.py:191** 读 capital_flow_cache 用 `ORDER BY updated_at DESC`(非 WHERE id=1)——当前正常(id=1 最新),未来若多行写入有隐患(minor)。
|
||
5. **batch_reassess.py:226** 行业读取无 em 回退——仅用于 signal_news 新闻关联匹配,影响小(minor)。
|
||
6. **capital_flow_cache 表残留旧行 id=194**(2026-08-10,11只)——WHERE id=1 已规避,旧行可清理(`DELETE FROM capital_flow_cache WHERE id<>1`)。
|
||
7. **存量 candidates 中 14 行 sector/source_strategy='v_mr'**(旧 watchlist 回注遗留)——新逻辑不再产生,存量可保留(promote 会按 actual 策略判断)。
|
||
|
||
### 重要运维提醒
|
||
- **deploy_guard 15 分钟回滚未提交改动**:改生产代码必须立即 `GIT_ALLOW_COMMIT=1 git commit && push`(今天踩过坑,回滚重做了 2 次)。
|
||
- 整点写锁问题已修(conn 统一 timeout=30 + busy_timeout),但大表操作仍避开整点调度窗口。
|
||
|
||
---
|
||
|
||
*文档位置:/home/hmo/MoFin/docs/ 下(RR分析结论.md / 淘汰逻辑验证.md / 本说明)*
|
||
*配套:/home/hmo/MoFin/deploy/profile-scripts/schema_migrate_20260817.py(schema 迁移,新建库必跑)*
|
||
|
||
---
|
||
|
||
# 增量更新(2026-08-18 彻夜)
|
||
|
||
MoFin 系统状态与数据链路说明 v2(知微须知)
|
||
|
||
> 更新:2026-08-18(小小莫彻夜整理,供知微了解最新机制)
|
||
> 范围:激活逻辑重构 / AB路线研究 / 淘汰机制 / RR 指标 / 数据链路修复
|
||
|
||
---
|
||
|
||
#
|
||
|
||
一、激活逻辑(2026-08-18 重构,老莫原则)
|
||
|
||
## |