Skip to content

Commit b78581c

Browse files
committed
Add recommendation tiers and data factor roadmap
1 parent 517815f commit b78581c

10 files changed

Lines changed: 377 additions & 15 deletions

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ Notification channel rules are documented in
9797
The main JSON artifact is `ModelRecommendationReport`:
9898

9999
```text
100-
schema_version = 3
100+
schema_version = 4
101101
as_of
102102
generated_at
103103
mode = model_recommendations
@@ -116,12 +116,18 @@ Each recommendation carries:
116116
symbol
117117
rating
118118
rating_label
119+
recommendation_tier
120+
recommendation_tier_label
119121
primary_horizon
122+
primary_horizon_label
123+
horizon_note
120124
suitable_horizons[]
121125
strategy_style
122126
score
123127
evidence_score
124128
risk_score
129+
source_confidence
130+
source_confidence_label
125131
reasons[]
126132
risk_notes[]
127133
evidence_refs[]

README.zh-CN.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,10 @@ python scripts/build_advisory_report.py \
3232

3333
- 推荐标的
3434
- 推荐等级:重点推荐、观察、先核验来源、暂缓、监控
35+
- 推荐层级:一级推荐、二级推荐、观察名单、来源核验
3536
- 适合周期:短线、中线、长线
37+
- 周期说明:短线风险、事件驱动验证周期、长期观察理由
38+
- 来源可信度:高、中、低、混合、无事件
3639
- 中长线、价值、事件、宏观等策略风格标签
3740
- 证据分数和风险分数
3841
- 推荐理由、风险、复核清单
@@ -96,3 +99,4 @@ python scripts/publish_advisory_site.py \
9699
`.github/workflows/publish_advisory_site.yml` 可以在仓库启用 GitHub Pages 后部署同样的输出。
97100

98101
通知格式设计见 [docs/notification_format.zh-CN.md](docs/notification_format.zh-CN.md)
102+
数据源和因子完善路线见 [docs/data_factor_roadmap.zh-CN.md](docs/data_factor_roadmap.zh-CN.md)

docs/advisory_contract.md

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Required top-level fields:
66

77
```text
8-
schema_version: "3"
8+
schema_version: "4"
99
as_of: ISO date
1010
generated_at: ISO datetime
1111
mode: "model_recommendations"
@@ -41,12 +41,18 @@ Required fields:
4141
symbol
4242
rating
4343
rating_label
44+
recommendation_tier
45+
recommendation_tier_label
4446
primary_horizon
47+
primary_horizon_label
48+
horizon_note
4549
suitable_horizons
4650
strategy_style
4751
score
4852
evidence_score
4953
risk_score
54+
source_confidence
55+
source_confidence_label
5056
reasons
5157
risk_notes
5258
evidence_refs
@@ -61,13 +67,31 @@ Allowed ratings:
6167
- `defer`
6268
- `monitor`
6369

70+
Allowed recommendation tiers:
71+
72+
- `tier_1`
73+
- `tier_2`
74+
- `watchlist`
75+
- `source_check`
76+
- `defer`
77+
- `monitor`
78+
6479
Allowed horizons:
6580

6681
- `short`
6782
- `medium`
6883
- `long`
6984
- `not_applicable`
7085

86+
Allowed source confidence values:
87+
88+
- `high`
89+
- `medium`
90+
- `low`
91+
- `mixed`
92+
- `no_event`
93+
- `unknown`
94+
7195
Allowed strategy styles:
7296

7397
- `event_driven`

docs/data_factor_roadmap.zh-CN.md

Lines changed: 203 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,203 @@
1+
# 数据源与因子完善路线
2+
3+
## 当前结论
4+
5+
`QuantAdvisorResearch` 当前应该继续做推荐结论仓库,而不是把所有量化因子仓库接进来。原因是现有组织里已经有两条性质不同的链路:
6+
7+
- 可回测、可执行链路:价格、技术、动量、波动、快照和策略仓库,最后可进入券商平台。
8+
- 新闻、政策、公开事件、AI shadow 链路:证据不稳定、样本少、回测难,应该只进入非个性化模型推荐和复盘。
9+
10+
因此本仓库短期只消费 `PoliticalEventTrackingResearch``AiLongHorizonSignalPipelines` 的研究产物;`UsEquitySnapshotPipelines``UsEquityStrategies``CryptoSnapshotPipelines``CryptoStrategies` 保持独立,只作为方法参考和未来人工复核资料来源。
11+
12+
## 现有数据源盘点
13+
14+
### PoliticalEventTrackingResearch
15+
16+
当前负责事件事实层,已有输入与适配器:
17+
18+
- 官方/半结构化记录:`official_records.csv`,支持政府、发行人、主社媒、财经媒体 lead。
19+
- RSS/Atom:`fetch_rss_sources.py`,可拉取 SEC 等公开 feed。
20+
- X recent search:`fetch_x_recent_search.py`,需要 `X_BEARER_TOKEN`
21+
- Truth Social:`import_truthsocial_export.py`,当前走导出或合规采集后的 JSON。
22+
- 原始文本抽取:`extract_source_mentions.py`,通过 alias map 抽取 ticker 相关事件。
23+
- 事件研究:`run_event_study.py`,用本地日收盘价做小窗口事件回测。
24+
25+
当前事件类型:
26+
27+
- `disclosure_buy`
28+
- `public_mention`
29+
- `policy_capital`
30+
- `market_reaction`
31+
32+
当前来源置信度:
33+
34+
- `high`:政府、官方披露、发行人等主来源。
35+
- `medium`:可复核主社媒或一手社媒导出。
36+
- `low`:财经媒体 lead,必须先核验主来源。
37+
38+
### AiLongHorizonSignalPipelines
39+
40+
当前负责 AI 长周期 shadow context:
41+
42+
- 输入为本地价格 CSV 或 Yahoo chart 下载。
43+
- 生成价格上下文:趋势、63 日回撤、21 日实现波动、波动分层。
44+
- 保存 `latest_signal.json``signal_history/YYYY-MM-DD.json`
45+
- replay 只用已保存的历史 artifact,不重新生成过去的 AI 判断。
46+
- 当前示例 overlay 只允许降低风险暴露,不允许提高仓位。
47+
48+
这个仓库适合给本仓库提供长周期背景,例如市场 regime、风险 flags、候选方向偏好,但不应该直接生成下单或仓位。
49+
50+
### QuantAdvisorResearch
51+
52+
当前负责最终非个性化模型推荐:
53+
54+
- 输入:事件 CSV、watchlist CSV、AI shadow JSON。
55+
- 输出:`model_recommendations` JSON、Markdown、HTML、RSS。
56+
- 推荐字段:推荐等级、推荐层级、适合周期、周期说明、来源可信度、理由、风险、复核清单。
57+
- 合约禁止:目标仓位、目标股数、订单、券商、账户信息。
58+
59+
当前评分仍是 MVP 级确定性规则,主要围绕事件类型、来源置信度、AI shadow 偏好和风险 flags。
60+
61+
### UsEquitySnapshotPipelines / UsEquityStrategies
62+
63+
这条链路适合自动交易或可回测策略,不建议直接接入投顾推荐 MVP。
64+
65+
已有 US equity 因子和规则包括:
66+
67+
- Russell 1000 多因子:`mom_6_1``mom_12_1``sma200_gap``vol_63``maxdd_126`、ADV、sector 标准化、宽度防守。
68+
- Global ETF rotation:13612W 动量、SMA250 趋势、canary basket、相对波动和置信门。
69+
- TQQQ/SOXL 等趋势收入策略:RSI、Bollinger band、ATR / Chandelier、动态 RSI 分位、波动/回撤保护。
70+
- Mega-cap leader rotation:动态 universe、leader rotation、频率和集中度研究。
71+
72+
这些因子可以作为未来人工解释或交叉验证材料,但不应让本仓库直接输出可执行 target allocation。
73+
74+
### CryptoSnapshotPipelines / CryptoStrategies
75+
76+
这条链路当前是 crypto leader rotation:
77+
78+
- 数据源:Binance Spot `exchangeInfo`、symbol metadata、daily klines、本地缓存。
79+
- 因子:趋势质量、持久性、流动性、流动性稳定度、相对 BTC 强度、风险调整动量、ATR 风控。
80+
- 当前外部数据 track 仍是实验,不是默认生产路径。
81+
82+
Crypto 可作为跨资产风险情绪参考,但暂时不应混入 US equity 推荐结果,除非未来明确做跨资产投顾版。
83+
84+
## 需要补强的数据源
85+
86+
优先级从高到低:
87+
88+
1. 主来源政策与披露
89+
- SEC press releases、EDGAR / issuer release、White House、Federal Register、Congress、OGE、DoD contracts、DOE / CHIPS、Treasury sanctions、USAspending 或 SAM.gov。
90+
- 目标:提高 `high` confidence 事件比例。
91+
92+
2. 主社媒
93+
- Truth Social、X verified accounts、政府/公司官方账号。
94+
- 目标:把社媒从“话题噪声”变成可审计事件来源。
95+
96+
3. 财经媒体 lead
97+
- 只做 `low` confidence lead。
98+
- 目标:发现线索,但必须通过官方、发行人或主社媒二次确认后才能升级。
99+
100+
4. 实时市场确认
101+
- 日内或日频价格、成交量、相对行业/指数表现、跳空、异常成交量。
102+
- 目标:判断事件是否已经被市场确认或过度透支。
103+
104+
5. 基本面与估值
105+
- 市值、流通市值、行业、营收增长、利润率、负债、forward PE / EV sales、盈利日期。
106+
- 目标:区分政策催化的短中线交易和真正可持有的价值/成长标的。
107+
108+
6. 宏观与风险环境
109+
- VIX、利率、美元、信用利差、油价、期限结构、板块 beta。
110+
- 目标:避免在不合适 regime 里把事件催化误判成推荐。
111+
112+
## 推荐因子分层
113+
114+
### 事件证据因子
115+
116+
- 来源权威度:官方 > 主社媒 > 媒体 lead。
117+
- 来源新鲜度:越接近 `as_of` 越高。
118+
- 多来源确认:同一事件被官方、公司、主社媒交叉确认时加分。
119+
- 事件方向:利好、利空、中性、待核验。
120+
- 事件类型强度:政策资金/采购/监管批准通常强于普通 mention。
121+
- 事件滞后窗口:事件后 1/5/20/60 个交易日的表现用于后续复盘。
122+
123+
### 政策催化因子
124+
125+
- 资金规模或订单规模。
126+
- 政策持续时间。
127+
- 受益链条清晰度:直接受益 > 供应链受益 > 概念受益。
128+
- 政策执行概率。
129+
- 竞争格局:是否只有少数公司能拿到订单或资格。
130+
131+
### 社媒与新闻因子
132+
133+
- 发言人权重:政策制定者、监管者、公司高管、关键人物。
134+
- 文本意图:点名、支持、批评、采购、制裁、监管。
135+
- 传播强度:重复提及、多账号扩散、媒体跟进。
136+
- 噪声惩罚:只来自媒体 lead 且无主来源时不能升级推荐。
137+
138+
### 市场确认因子
139+
140+
- 相对收益:相对 SPY / QQQ / 行业 ETF 的异常表现。
141+
- 异常成交量:相对 20 日/60 日均量。
142+
- 趋势状态:价格相对 50/200 日均线。
143+
- 回撤状态:避免追入已大幅透支的事件。
144+
- 波动状态:高波动标的默认降低推荐层级或标注短线风险。
145+
146+
### 价值与质量因子
147+
148+
- 营收和利润质量。
149+
- 现金流和资产负债表。
150+
- 估值相对行业是否过高。
151+
- 盈利日期和 guidance 风险。
152+
- 是否有长期政策/产业逻辑支撑。
153+
154+
### AI shadow 因子
155+
156+
- regime:risk_on、mixed、risk_off。
157+
- confidence:只作为背景强弱,不作为直接下单信号。
158+
- risk_flags:波动、流动性、盈利集中、宏观冲击。
159+
- candidate bias:用于解释候选标的的长周期背景。
160+
- model/version/source:必须可审计,保留历史 artifact。
161+
162+
## 低风险实施顺序
163+
164+
1. 先把 `PoliticalEventTrackingResearch` 的真实源配置补齐:
165+
- RSS feed 配置。
166+
- X 查询配置。
167+
- Truth Social 导出规范。
168+
- alias map 和 source registry。
169+
170+
2.`QuantAdvisorResearch` 增加 market confirmation 输入,但保持可选:
171+
- `symbol,as_of,close,volume,benchmark_close,sector_etf_close`
172+
- 如果没有市场确认数据,报告继续生成,但降级提示数据缺口。
173+
174+
3. 增加事件复盘结果输入:
175+
- `event_id,symbol,event_date,window,absolute_return,benchmark_relative_return`
176+
- 用于日/周/月回顾,不用于自动交易。
177+
178+
4. 增加基本面/估值快照输入:
179+
- 独立 CSV artifact,不直接依赖策略仓库。
180+
- 先只用于风险提示和推荐解释。
181+
182+
5. 最后再考虑跨仓库只读参考:
183+
- 只读 `UsEquitySnapshotPipelines` 的公开 artifact 摘要。
184+
- 不读取策略 target、broker runtime、账户持仓或订单。
185+
- 输出仍然是推荐文本,不是仓位。
186+
187+
## 不建议现在做的事
188+
189+
- 不要把 `UsEquityStrategies` 的策略信号直接合并成本仓库推荐分数。
190+
- 不要把 `QuantAdvisorResearch` 的推荐推给券商平台执行。
191+
- 不要让 AI 生成目标仓位、买卖数量、订单类型或账户级建议。
192+
- 不要把财经媒体 lead 当成高置信来源。
193+
- 不要为了“AI 化”放弃 point-in-time artifact 和 replay。
194+
195+
## 验证方式
196+
197+
- schema 测试:每次输出都必须通过 `contracts.py` 校验。
198+
- fixture 测试:保留合成样例,验证低置信来源不会升级成推荐。
199+
- 日/周/月回顾:跟踪推荐后的 1/5/20/60 交易日相对表现。
200+
- 来源质量报表:统计 high/medium/low/mixed 推荐命中率。
201+
- 人工复核清单:任何一级推荐必须能追溯到来源、事件、AI context 和风险说明。
202+
203+
短期真正要补的是源和复核数据,不是把自动交易仓库接进来。等真实数据积累后,再决定哪些新闻/政策因子值得转成可回测的独立策略。

docs/notification_format.zh-CN.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,18 @@ symbol
3131
name
3232
rating
3333
rating_label
34+
recommendation_tier
35+
recommendation_tier_label
3436
primary_horizon
3537
primary_horizon_label
38+
horizon_note
3639
suitable_horizons[]
3740
strategy_style
3841
score
3942
evidence_score
4043
risk_score
44+
source_confidence
45+
source_confidence_label
4146
reasons[]
4247
risk_notes[]
4348
evidence_refs[]
@@ -62,11 +67,12 @@ Telegram 适合中等长度,最多展示前 3-5 个推荐:
6267
```text
6368
Quant Model Recommendations | Weekly | 2026-05-30
6469
65-
1. EVT1 | 重点推荐 | 中线 | score 0.85
70+
1. EVT1 | 一级推荐 | 重点推荐 | 中线 | 来源中 | score 0.85
6671
理由:公开事件 + 披露证据 + AI shadow 仍在观察区间。
72+
周期:事件驱动以中线验证为主;短线只适合观察催化反应,波动和反转风险更高。
6773
风险:AI 数据缺口未完全解决。
6874
69-
2. EVT2 | 重点推荐 | 中线 | score 0.83
75+
2. EVT2 | 一级推荐 | 重点推荐 | 中线 | 来源高 | score 0.83
7076
理由:政策资本事件触发,来源置信度高。
7177
风险:需要复核估值、财报日和最新价格行为。
7278
@@ -97,6 +103,22 @@ Subject: Quant Model Recommendations Weekly Review - 2026-05-30
97103
- `defer` / 暂缓:风险或负面 shadow context 优先。
98104
- `monitor` / 监控:只保留上下文,不进入推荐区。
99105

106+
## 推荐层级
107+
108+
- `tier_1` / 一级推荐:推荐等级为重点推荐,分数和来源可信度同时满足发布条件。
109+
- `tier_2` / 二级推荐:推荐等级为重点推荐,但来源或分数还需要更多确认。
110+
- `watchlist` / 观察名单:保留观察,不作为重点推荐。
111+
- `source_check` / 来源核验:先确认来源再决定是否升级。
112+
- `defer` / 暂缓:风险优先。
113+
- `monitor` / 监控:上下文保留。
114+
115+
## 周期原则
116+
117+
- 主周期只给一个:短线、中线、长线或不适用。
118+
- 事件驱动默认以中线为主,短线只作为催化反应观察,不作为自动交易触发。
119+
- 长线推荐需要更多基本面、AI shadow 和事件持续性支持。
120+
- `horizon_note` 必须解释为什么适合该周期,以及短线风险在哪里。
121+
100122
## 禁用表达
101123

102124
通知中不要使用:

docs/system_design.zh-CN.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,5 @@ broker platform repositories
7676
- 能生成静态 HTML 和 RSS feed 供非个性化订阅。
7777
- 所有 artifact 明确允许非个性化模型推荐,但禁止下单、调仓、账户级仓位和个性化建议。
7878
- 后续可以 replay 历史模型推荐,而不是重写过去判断。
79+
80+
数据源和因子完善路线见 [data_factor_roadmap.zh-CN.md](data_factor_roadmap.zh-CN.md)

0 commit comments

Comments
 (0)