DH-WP-001 S1 信源画像与质量初评规则
0. 文档元信息
| 项 | 说明 |
|---|---|
| 消费者 | Data Horizon 后台(信源管理)、Trading Matrix(虚拟交易员/策略/回测输入)、运营复核 |
| 触发条件 | S0 baseline 被 TM 试消费确认信源有价值,进入动态画像与质量初评阶段 |
| 目标 | 对 DH 监听的职业交易员/分析师(名册动态变化)建立一套动态评估机制:从静态信息 + 历史观点/策略信号/实盘信号中,动态构建画像与输入质量评估,供 DH 查看管理、并满足生态(当前 TM)需求 |
| 设计评审 | 本方案经金融专业性 + 工程可行性双重评审后定稿(v2);评审纳入项见 §9 |
| 跨系统契约 | G 组绩效由 TM 回测回填,归属/接口/口径见 TM 画像交接与回填契约 |
| 工程仓对照 | data-horizon:dn_source_signal / dn_source_profile / dn_source_metrics / dn_source_perf / dn_source_profile_override(B 阶段落地) |
本文定义 S1 阶段信源画像字段字典、质量初评 rubric、处理管线与运行模式。两份外部参考(Trading_KOC 身份/信号字段、Trading_KOC_Type 6 象限分类)为设计参考,非照搬对象;凡文本不可靠派生或绩效耦合的维度,降级为低置信代理或划归 TM。
1. 定位与红线
- DH 只评 信息源输入质量与可用性(描述性 + 可解析性 + 可靠性);绝不评绩效/盈利。
- 胜率 / 盈亏比 / 回撤 / 已实现风格漂移 / 期望值等需真实成交结果的指标 → TM 回测回填(G 组,独立表,nullable)。两套分数严格分离(工作包风险控制 #1)。
- 运营层防泄漏:信源消息含事后回报(
Realized R/R、PnL、"已平仓")。逐消息打msg_kind,质量字段(C/E 组)只消费 ex-ante 的trade_intent,事后回报不喂 DH 任何质量评分。 - KOL 自报战绩(如"77胜16负"):单列、
unverified、不计质量、不等同 G;序列化给 TM 时标志不可剥离。 - 一切自动派生值带 置信度 + 证据 sample_id + 人工复核位,可审计、可人工覆盖、可版本化。
2. 设计原则
- 先分类再画像,且分类是分布非标量:
class_mix{signal_pct, analyst_pct, community_pct}(由逐消息signal_clarity聚合),primary_class = argmax(UI 便利、派生非权威)。解决"真实源同时是信号+分析+闲聊、单枚举全塞 MIXED"。 - "可结构化为可回测信号"是 TM 核心入参轴——逐消息刻画齐备率/可解析等级,再聚合。
- 风险披露是交易台第一问:单列
gives_stop_loss+discloses_risk_sizing+discloses_leverage。 - 输入质量与已实现绩效解耦,且操作上以 ex-ante/ex-post 分流强制隔离。
- 不可靠派生项降级、中性命名、低置信(如加仓性质"马丁/金字塔"严格判别需成交序列 → 归 TM)。
- 正交轴不可合并:结构干净 ≠ 商业可信;信心语气 ≠ 点位精度;对冲 ≠ 两可。
3. 字段字典(8 组)
来源:NLP(文本派生)/ DATA(数据派生)/ TM(回测回填)/ HUMAN。阶段:C1 逐消息 / C2 聚合 / S 摘要 / DATA。
A 身份与静态
source_id(裸 bigint 为 join 键,cs_{id} 仅展示)· display_name · kol_id/kol_name · platform · external_ref · class_mix{signal/analyst/community %}(C2) · primary_class(argmax) · market_scope(json 多值) · instrument_type(json 多值) · primary_language · commercial_solicitation(none/low/med/high;正交轴,高则压质量档+抬 needs_review)(S) · first_seen/last_active(DATA,存 UTC+8,API 出 Unix-UTC)
B 方法与风格(S 摘要,带置信)
| 字段 | 取值 |
|---|---|
| time_horizon | scalping / intraday / swing / position / multi_horizon / unclear |
| method_tags(json 多值) | price_action / chart_patterns / indicators / elliott_wave / macro_fundamental / on_chain / wyckoff / quant / discretionary / other |
| directional_bias | float -1..+1 + label(long/short/two_way/market_neutral/neutral) |
| trade_structure | outright / hedged / pairs_relative_value / spread / unclear |
| entry_timing_style | dip_buyer(左/≈反转) / breakout_follower(右/≈趋势) / both / unclear(日内趋势 vs 反转的事前意图由此恢复) |
| position_mgmt_hint | flat_risk / scales_in_dips / pyramids_winners / unclear(中性·低置信;严格判别归 TM) |
| gives_stop_loss | always / often / sometimes / rarely / unknown(信号源但证据不足) / na(非信号源) |
| discloses_risk_sizing | always / often / sometimes / never |
| discloses_leverage | yes / no / unclear |
| conviction_language | 0..1(确定性语气;与 specificity 正交) |
| articulates_rr_thesis | 0..1(事前 R/R 论证频率;≠ 已实现 R/R,后者属 G) |
| mechanically_verifiable_logic | bool(指标/形态/裸K=可机械验证→TM 可自动复盘;宏观/主观=不可证伪→走情绪因子) |
C 信号结构与可解析性(C1 逐消息 → C2 聚合,TM 核心)
| 字段 | 取值 |
|---|---|
| signal_clarity | explicit_command / conditional / directional_view / commentary_only / chatter / non_actionable |
| fields_present_rate | {symbol,direction,entry,stop,target} 各 0..1(C2) |
| structure_completeness | 0..1 |
| parseability | machine_parseable / semi_nlp / manual_only / none(机器视角,与 clarity 语义视角可分离) |
| levels_style | exact_point / zone / mixed(对 TM 回测可用性比 specificity 更重要) |
| signal_specificity | high / medium / low(按精确数值点位数,DATA 检查) |
D 活跃与节奏(全 DATA/SQL,不走 LLM)
post_cadence_per_week(群聊注明全员聚合)· signal_cadence_class(high_freq≥~20/wk 有效信号 / standard / sniper≤~3/wk / dormant;按信号非发帖)· capture_latency_p50_ms = UNIX_TIMESTAMP(created_at) − source_timestamp + latency_coverage% · is_dormant · active_window
E 输入质量与可靠性(复合,非绩效;见 §4 rubric)
input_quality_tier A/B/C/D · 子项(各标来源):sub_clarity(C2) · sub_structure(C2) · sub_specificity(C2) · sub_risk_disclosure(B) · sub_signal_density(C2) · sub_noise(C2) · text_self_consistency(C2:窗口内"说的 vs 发的"方向矛盾,排除声明的对冲/换挡)· sub_method_consistency(S,低置信) · reliability_flags(json)
F 自报与未核验(S,flagged)
self_reported: json{wins,losses,raw_text,as_of_msg_id,unverified:true} · promotional_intensity(高/中/低) · paywall_signal(bool)
G 绩效(TM 回填,独立表 dn_source_perf,DH 只读)
historical_win_rate / rolling_win_rate_7d / profit_factor / max_drawdown / realized_style_drift / expectancy / backtest_window — DH 只供 C 组结构化信号 + capture_latency 作回测输入。详见 TM 契约。
H 治理
profile_confidence · evidence_sample_ids(json,来自 dn_source_signal 行) · data_sufficiency(rich/moderate/limited/dormant/no_data) · needs_review · review_status(unreviewed/human_confirmed/human_adjusted) · window_spec · profile_version/generated_at/gen_model · 人工覆盖走独立 dn_source_profile_override 表(读时覆盖 auto,重算永不触碰)
4. 质量初评 Rubric(E → tier,写死,跨批一致)
按 primary_class 分别评(信号源/分析师不同权重;COMMUNITY 默认 D,仅作语料/情绪)。子项归一 0..1,加权汇总 Q:
| 子项 | SIGNAL_PROVIDER 权重 | ANALYST 权重 |
|---|---|---|
| sub_structure(齐备率) | 0.30 | 0.10 |
| sub_clarity | 0.20 | 0.20 |
| sub_risk_disclosure(止损+风险披露) | 0.20 | 0.10 |
| text_self_consistency | 0.15 | 0.25 |
| sub_signal_density | 0.10 | 0.15 |
| conviction / articulates_rr(事前论证质量) | 0.05 | 0.20 |
| sub_noise | 以 (1−noise) 作乘性折扣 | 同 |
Q → tier:A ≥0.80 / B 0.60–0.80 / C 0.40–0.60 / D <0.40。
硬约束(覆盖分数):
commercial_solicitation=high→ tier 上限 C 且 needs_review=1;gives_stop_loss∈{rarely,unknown}且 class=SIGNAL_PROVIDER → 上限 C(呼应"无止损单"安全红线);data_sufficiency∈{limited,dormant,no_data}→ tier 置空 + needs_review。
rubric 权重为初版,需运营人工标定后冻结为
s1-v1。
5. 处理管线(两阶段)
- Stage C1 逐消息抽取(增量、append-only):每条
dn_raw_news抽 →dn_source_signal一行:msg_kind(intent/report/commentary/chatter)、has_{symbol,direction,entry,stop,target}、direction、signal_clarity、parseability、price_levels_count、published_ts、latency_ms。新消息到达即增量跑,永不重读历史。 - Stage C2 聚合(确定性 SQL):C 组齐备率/结构完整度/clarity 分布、D 组节奏/延迟、
text_self_consistency(方向序列矛盾)全部 SQL 算出。 - Stage S 摘要(LLM):仅 A.分类、B 方法风格、E 质性子项、F 自报。
- LLM 调用走
dn_llm_call_log(需注册画像 pseudo-agent)。
6. 运行模式(首跑全量 · 动态刷新 · 后台集成)
6.1 动态名册同步(机制核心,非一次性)
名册 = dn_crawler_source 中 social + 绑定 kol_id 候选(当前 136,未来动态增减)。roster_sync 步骤定期 diff 候选集:新源入队首跑、停用源标 inactive 留历史画像、恢复源增量续跑;画像随源生命周期版本化留痕。
6.2 首跑 = 全量历史深度分析(不分活跃与否)
首次运行对每个职业交易员/分析师(含静默源,如 90d=0 但全量数万条)做全量历史逐消息抽取 + 全历史摘要。大源用 map-reduce 分块摘要(按时间分块 → 每块 LLM 偏摘要 → reduce 汇总)控 context/成本。数据充足度据全量判定;静默源标 is_dormant 但画像基于历史完整产出。
6.3 后续 = 增量刷新
C1 仅处理新消息;摘要在"≥K 新信号 / 周期"触发时基于"近窗 + 上版画像"增量更新;D 组高频原地覆盖。
6.4 后台集成(DH 管理后台)
画像查看/筛选/排序页(按 class / 质量档 / 市场 / 风格 / 活跃度);来源详情页嵌画像卡(A–F + 证据 + 置信 + G 组 TM 回填只读);人工复核由 override 表驱动(逐字段 confirm/adjust,读时取胜,review_status 流转);支持手动「重算此源画像」与首跑/刷新进度展示。
7. 落库(5 表,按 owner 与变更率拆分)
| 表 | 内容 | 特性 |
|---|---|---|
dn_source_signal | C1 逐消息信号(证据锚) | append-only,增量 |
dn_source_profile | A/B/E + 聚合 C + H | 慢变,版本化快照 |
dn_source_metrics | D 活跃节奏 | 高频,原地覆盖 |
dn_source_perf | G 绩效 | TM 独写,DH 只读 |
dn_source_profile_override | 人工覆盖 | 读时取胜,重算永不触碰 |
多值/证据用 json 列(对齐 repo 既有 subjects/tags/market)。serving = profile(latest) ⟕ metrics ⟕ perf ⟕ override,override 序列化时取胜。
8. 待确认 / 开放项
- 讨论群无单一作者(如熬鹰、yekoi):信号归属 / 是否按 author 切分。
- image/bot 生成行(空内容 +
[Image Analysis])的排除规则。 - rubric 权重人工标定后冻结。
- 枚举回灌 TM:
COMMUNITY第三类、method_tags(on_chain/wyckoff/quant)、levels_style、trade_structure(见 TM 契约 §5)。
9. 评审纳入项(双 sub-agent)
| 评审 | 处理 |
|---|---|
| 逐消息 vs 摘要混淆 | 拆 Stage C1/C2/S + dn_source_signal |
| 时区(UTC+8 vs Unix) | latency = UNIX_TIMESTAMP(created_at) − source_timestamp;datetime 标 UTC+8;API 出 Unix-UTC |
| 分类过硬 | class_mix 分布 |
| 单表混慢/快/TM/人工 | 拆 5 表 + override 结构不变量 |
| 全量窗口成本 | 增量抽取 + 首跑 map-reduce 分块 |
| rubric 缺失 | §4 写死 |
| 绩效运营泄漏 | ex-ante/ex-post msg_kind 分流 |
| 带单营销源 | commercial_solicitation 正交轴压档 |
| 漏字段 | 补 risk_sizing/leverage/rr_thesis/conviction/trade_structure |
| 噪声地板 / 一致性定义 | signal_clarity 加 chatter;internal→text_self_consistency 窄义 |