← 归档索引 · 2026-10-14 23:19 · 信号纵向跟踪+反馈闭环-23:15(原23:30并入·2合1)
# Cron Job: 信号纵向跟踪+反馈闭环-23:15(原23:30并入·2合1)
**Job ID:** c85cc7fd1251
**Run Time:** 2026-10-14 23:19:28
**Schedule:** 15 23 * * 1-5
**Prompt Characters:** 7215
## Prompt
[IMPORTANT: The user has invoked the "script-output-integrity" skill, indicating they want you to follow its instructions. The full skill content is loaded below.]
---
name: script-output-integrity
description: 消费预跑脚本注入的数据时加载。先判数据真假再分析,识别假成功/降级/空段并标注完整度。
version: 1.0.0
author: Hermes Agent
license: MIT
category: fugui
tags: [data-integrity, silent-failure, consumer-side, cron]
metadata:
hermes:
tags: [data-integrity, silent-failure, consumer-side, cron]
related_skills: [silent-failure-defense, pan-gan-signals]
---
# 消费脚本输出 —— 先判真假,再分析
> 面向**读**注入数据的人(分析 cron),不是**写**脚本的人。
> 建造侧(怎么写不产生假成功)看 `silent-failure-defense`。
## When to Use
```
□ prompt / 上下文里出现「预跑脚本输出」「Script Output」「以下数据由预跑脚本采集」
□ 要用脚本采集的数据做判断、写报告
□ 某段数据看起来"有内容"但可疑(一行字样、空段、括号里的说明)
```
## 铁律:数据段先过完整性,再进入分析
**禁止把「缺失/降级」当作「正常数据」分析。** 缺失要标注,不要脑补。
### 识别清单(按严重度)
| 形态 | 真实含义 | 动作 |
|---|---|---|
| `xxx.sh: timeout` | **该段根本没跑**(不是"超时所以没数据")。典型是 `timeout N cd` 类缺陷 | 该段判为【零数据】,禁用其做主力判断 |
| `failed to run command '...'` | 内建命令被 timeout 包住 → 整段从未执行 | 同上 |
| `Traceback` / `ModuleNotFoundError` | 该段完全不可用 | 同上 |
| `❌<名> 失败(rc=N)` | 该段采集失败(已诚实上报) | 标注缺失,相关结论降级 |
| `(xxx不可用)` / `[超时]` / `数据采集失败` | 降级标记,段落内容为空 | 标注缺失 |
| `[SILENT]` | 无内容(合法语义:无异常/无新增) | 不要当数据,也不要当错误 |
| 空段 / 只有标题 | 采集为空 | 标注缺失 |
| 接口**无报错返回空 DataFrame** | 路由瞬时降级(非"今天无数据") | 重试一次再定性;仍空 → 判缺失 |
> 实测(2026-09-28 12:05):`data_hub.get_realtime_quotes(8 codes)` 一次返回 0 行**且不抛异常**,同一批码 30 秒后重跑全部正常 → 是瞬时静默降级。
> 判据:**空/无异常 ≠ 无数据;先重试,再定性**。消费侧把"空"当"没有"会导致整段结论凭空消失。
### 必须做的三件事
```
1. 报告开头标注完整度:「数据完整度: N/M 段可用」,缺失段逐条列名
2. 缺失段对应的结论 → 标注「基于间接推理 / 置信度降级」,不得伪装成实测
3. 禁止:用缺失段当论据;用"数据暂缺"当结论;脑补缺失段的内容
```
### 反面案例(实测,2026-09-11)
```
## Script Output
【午间扫描 | 2026-09-11 12:00】
midday_scan.sh: timeout ← 整块市场数据就是这一行假的
【心法扫描 | 2026-09-11 12:00】
════ Phase 0: 板块主力方向 ════
```
该报告被连续数周当成正常午间分析发出,AI 拿着这行假消息当市场数据做判断。
**根因:消费侧没有"先判真假"这一步。**
### 一句话判据
**看到数据段,先问「这段是真的吗」,再问「这段说明什么」。**
顺序反了,后面全废。
The user has provided the following instruction alongside the skill invocation: [IMPORTANT: You are running as a scheduled cron job. DELIVERY: Your final response will be automatically delivered to the user — do NOT use send_message or try to deliver the output yourself. Just produce your report/output as your final response and the system handles the rest. SILENT: If there is genuinely nothing new to report, respond with exactly "[SILENT]" (nothing else) to suppress delivery. [SILENT] is a literal ASCII control token — never translate or rephrase it, whatever language the rest of your answer uses. Never combine [SILENT] with content — either report your findings normally, or say [SILENT] and nothing more. FAILURE: If a delegated child fails and this cron run must be recorded as failed, put [CRON_FAILURE] on the first line by itself, then explain the child failure on following lines. RECURSION: This is a run of an EXISTING scheduled job — execute the task now. NEVER create or update a cron job because of recurring or future-schedule language in the task prompt below; treat phrasing like "each Monday" or "every day at 9" as context for this run, not as a request to schedule another job.]
## Output from job 'f06f0ff60f0c'
The following is the most recent output from a preceding cron job. Use it as context for your analysis.
```
# Cron Job: 进化简报-每日22:55(回测结果→明日校准)
**Job ID:** f06f0ff60f0c
**Run Time:** 2026-10-14 22:55:29
**Mode:** no_agent (script)
---
📈 进化简报 2026-10-14(窗口14天)
回测率: 100.0%(31/31 条近期判断已回测)
累计: 落账1603 已决1152 待决0
总命中: 48.4% [32~65%] n=31 (上期 19.4%) | 平均超额 +0.09pp
── 分方向 ──
看空 n= 17 命中 41.2% [22~64%] 超额+1.9pp ⚠️谨慎
中性 n= 8 命中 n不足·只给区间 [41~93%] 超额-0.7pp
看多 n= 6 命中 n不足·只给区间 [10~70%] 超额-4.1pp
── 来源可信度(n≥10 才列)──
✗ hermes_practice n= 11 18.2%
🔴 闭环部件停摆(该跑没跑 → 校准断链):
· 判据来源体检(超额制)
· 超额制全量重算
· 经验学习闭环
· 每日判断练习仪(老板10-05指定)
用法: 下判断前先看本简报 —— 上面✅的来源可以更信,✗的来源要打折;🔴停摆部件是系统盲区。
```
## Script Output
The following data was collected by a pre-run script. Use it as context for your analysis.
```
=== 信号纵向跟踪 ===
验证/回填: 111条
更新125条
信号总数: 124 | 已完整验证(T+20齐): 13 | 跟踪中(未到T+20): 111
类型 数量 T+5命中 T+5均值
----------------------------------------
breakout 9 1/9=11% -5.2%
launch 49 8/16=50% -1.6%
pre_launch 66 21/47=45% +1.5%
最近信号:
2026-10-13 君实生物(688180.SH) T5=- -
2026-10-13 君实生物(688180.SH) T5=- -
2026-10-12 恒烁股份(688416.SH) T5=- -
2026-10-12 德明利(001309.SZ) T5=- -
2026-10-12 德明利(001309.SZ) T5=- -
2026-10-12 东芯股份(688110.SH) T5=- -
2026-10-12 北京君正(300223.SZ) T5=- -
2026-10-12 普冉股份(688766.SH) T5=- -
信号纵向跟踪报告
============================================================
总计: 243只 | 命中(T+5>2%): 51只 命中率21% | 平均T+5=-2.4%
来源 数量 命中率 平均T+5 平均T+20
--------------------------------------------------
dragon_preselect 113 27% -0.8% —(无T+20)
low_launch 107 13% -4.7% —(无T+20)
pre_launch 19 32% +1.1% +7.3%
launch 3 33% -0.7% +0.3%
breakout 1 0% -4.0% -11.7%
板块 数量 命中率 平均T+5
----------------------------------------
半导体 56 29% -3.6%
未知 23 30% +0.6%
汽车配件 19 11% -2.7%
生物制药 17 12% -4.7%
火力发电 12 8% -4.8%
电器仪表 11 27% +0.2%
元器件 10 20% -4.7%
家用电器 10 20% -1.9%
机械基件 10 20% -4.6%
塑料 9 33% +0.1%
=== 参数反馈 ===
{
"pre_launch": {
"hit_rate": 31.6,
"count": 19,
"avg_t5": 1.09
},
"launch": {
"hit_rate": 33.3,
"count": 3,
"avg_t5": -0.7
},
"breakout": {
"hit_rate": 0.0,
"count": 1,
"avg_t5": -4.04
},
"dragon_preselect": {
"hit_rate": 26.5,
"count": 113,
"avg_t5": -0.81
},
"low_launch": {
"hit_rate": 13.1,
"count": 107,
"avg_t5": -4.66
}
}
📊 信号反馈日报(原23:30 并入本段)
记录13个新信号 | 验证/回填124条历史信号
──────────────────────────────
pre_launch_5日: 21/47 = 45%
pre_launch_10日: 18/35 = 51%
pre_launch_20日: 8/11 = 73%
launch_5日: 8/16 = 50%
launch_10日: 5/10 = 50%
launch_20日: 0/1 = 0%
breakout_5日: 1/9 = 11%
breakout_10日: 0/8 = 0%
breakout_20日: 0/1 = 0%
```
信号纵向跟踪:1) signal_feedback.db 渐进验证(缺T+20的行持续回填,未到T+20不提前落标);2) 更新 signal_track.json 所有信号的 T+1/T+3/T+5/T+10/T+20 快照;3) 输出 signal_feedback.db 类型命中率报告(阈值统一2%);4) 有已完成信号时输出各来源/板块命中率与参数反馈(low_launch/dragon_preselect 来源,数据齐了自然出现,无数据不硬凑)。
## 产出规范(四性·应用性;2026-10-12 老板令「所有 cron 要有关联性/逻辑性/应用性」)
1. **判断落账(必做,除非本次无判断)**:凡产出含方向性判断(看多/看空/回避/中性 + 可核对的触发条件),必须落 judgment_ledger:source=信号纵向跟踪-每日23:15、date、direction、horizon、trigger、falsify(可自动核对,不写「注意风险」这种空话)、judgment、reason([数据源][路径][判断] 三要素齐全,写入端拒收空件)。纯数据播报 → 跳过落账,并在报告里写明「本次无判断落账」。
2. **归档 IMA(强制,写完报告后必做)**:最终报告必须归档到 IMA(与 QQ 投递内容完全一致):
```
cat > /tmp/信号纵向跟踪-每日2315_$(date +%Y%m%d).md << 'REPORT_EOF'
[在此粘贴你的完整报告全文,一字不差]
REPORT_EOF
timeout 60 bash ~/.hermes/scripts/upload_stdin_to_ima.sh "信号纵向跟踪-每日2315_$(date +%Y%m%d)_完整版" < /tmp/信号纵向跟踪-每日2315_$(date +%Y%m%d).md >/dev/null 2>&1
```
归档成功后再输出最终报告(系统自动投递 QQ);归档失败在报告末尾标注「⚠️ 归档失败」。
3. **先数据后判断**:引用上方【数据摘要】的具体数字;数据段标了 [不可用] 就首行声明数据不全,禁止照常下结论。
**Response Characters:** 2118
## Response
# 信号纵向跟踪日报 2026-10-14(23:15 · 窗口校准版)
**数据完整度: 5/5 段可用** — 验证回填 / 更新落盘 / 类型命中率 / 来源板块+参数反馈 / 信号反馈日报全部有真数据;无 `timeout`、无 `❌失败(rc=N)`、无 `[不可用]`、无 westock 降级告警,「更新125条」门检通过(未触发⚠️)。
**口径声明(三套样本范围不同,禁止混算同名指标)**
- ① `signal_feedback.db` 243只 = 累计已有T+5的记录(来源/板块命中率出自这里)
- ② `signal_track` 124条 = 当前在跟踪池(类型T+5命中出自这里,其中T+20齐仅13条)
- ③ 参数反馈 n=19/3/1 = 已完成(done)信号 → pre_launch 31.6% 与 45% 不矛盾,是不同子集
---
## 一、明日校准(3条判断已落账 #2349 / #2350 / #2351,已回读验证,0拒收)
**机会轨(敢用的)**
- ✅ **pre_launch**:唯一正期望且随持有窗口单调变好 — T+5 45%(21/47) → T+10 51%(18/35) → T+20 **73%(8/11)**,T+5均值 +1.5%、T+20均值 **+7.3%**。
→ **落账 #2349 看多,horizon=20**:优先采用 pre_launch,持有窗口从5日拉到20日。置信3(T+20样本仅11条)。
- ⚠️ **launch**:T+5 50%(8/16) 命中不差但均值 **-1.6%** — 赢面够、赚得少(盈亏不对称),T+20仅1条 0/1。**不升级权重,只配平止损**。
**风险轨(回避的)**
- ❌ **low_launch**:n=107、命中 **13%**、T+5均值 **-4.66%** — 全来源垫底且是大样本 → **落账 #2350 看空**,不进可交易池,只留观察。置信4。
- ❌ **breakout**:T+5 1/9=11%、均值 **-5.2%**,T+10 0/8、T+20 0/1(**-11.7%**),逐窗单调恶化 → **落账 #2351 看空**,暂停触发。置信4。
- ⚠️ **dragon_preselect**:n=113 最大样本,27% 命中、-0.8% — 弱但不到必须停,**降权不删除**(n大,保留观察价值)。
**板块失效名单(明日同类信号先过滤)**
- 系统性失效:火力发电 8%(12)、汽车配件 11%(19)、生物制药 12%(17) → 48条样本命中全部<13%
- 量最大却不赚钱:半导体 56条 29%、均值 **-3.6%**(样本第一收益仍负 → 追高型入选在这里亏钱)
- 相对最好:塑料 33%(9)、未知 30%(23),均值仅 +0.1%/+0.6%,**优势不构成开仓理由**
## 二、进化简报要点(上一 job 22:55,窗口14天)
- 回测率 **100%(31/31)**,待决 0,累计落账1603/已决1152 → 闭环数据端健康
- 总命中 **48.4% [32~65%]**(上期19.4%),超额 +0.09pp — **CI宽33pp,点估计不可信只看区间**;看空 41.2% 超额+1.9pp 是唯一勉强正超额方向,看多 n=6、中性 n=8 均 n不足只给区间
- ✗ **hermes_practice n=11 仅 18.2%** — 该来源判断明日一律打折
- 🔴 **4个闭环部件停摆**:判据来源体检(超额制)、超额制全量重算、经验学习闭环、每日判断练习仪 → 来源可信度/超额数处于断链状态,属系统盲区
## 三、数据瑕疵与置信度标注
1. **重复入账**:2026-10-13 君实生物×2、2026-10-12 德明利×2 → 命中率分母轻微膨胀,方向结论不变(均未到T+5)
2. **n不足只给区间**:launch_20日 0/1、breakout_20日 0/1、进化看多 n=6 → 这三处不下定量结论
3. 看空 +1.9pp 超额:**超额制全量重算已停摆**,为上期口径 → 标注「基于停摆上游的间接推理」
## 四、证伪条件(日期透明)
- #2349 推翻:pre_launch 完成T+20达15条时命中率 <55%,或T+20均值 <+3%
- #2350 回补:low_launch 新增满20条T+5后命中率 ≥30%,或均值 ≥0%
- #2351 恢复:breakout 新增满10条T+5后命中率 ≥40%,或均值转正
- 三条均可由 `signal_feedback.get_stats` 自动核对
**本次判断落账: 3条**(#2349 看多pre_launch / #2350 看空low_launch / #2351 看空breakout);**IMA 归档: 成功(RC=0,错误日志无记录)**