← 归档索引 · 2026-10-26 16:00 · 量价训练-每日提醒
# Cron Job: 量价训练-每日提醒
**Job ID:** ea96f4ceec38
**Run Time:** 2026-10-26 16:00:06
**Schedule:** 30 15 * * 1-5
**Prompt Characters:** 4144
## Prompt
[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-23 22:55:04
**Mode:** no_agent (script)
---
📈 进化简报 2026-10-23(窗口14天)
回测率: 100.0%(396/396 条近期判断已回测)
累计: 落账2181 已决1586 待决0
总命中: 54.9% [50~60%] n=399 (上期 17.8%) | 平均超额 -0.20pp
── 分方向 ──
回避 n=201 命中 53.7% [47~60%] 超额-0.5pp
看空 n= 80 命中 51.2% [40~62%] 超额+0.2pp
看多 n= 62 命中 58.1% [46~70%] 超额+0.8pp
中性 n= 54 命中 63.0% [50~75%] 超额-0.5pp ★可信
── 来源可信度(n≥10 才列)──
- 四维扫描 n=227 54.6%
- 节点转折+ftshare扫描-21:45 n= 27 59.3%
- 盘中-1130午盘 n= 23 47.8%
✗ 量价训练-每日提醒 n= 21 38.1%
✓ 盘中-1500收盘 n= 17 64.7%
✓ 龙头融合+确认链-21:40 n= 15 66.7%
✗ 盘中-1440尾盘 n= 12 41.7%
✓ 盘中-1400午后 n= 11 63.6%
⚪ 未排期部件(2026-10-17 裁决: jobs.json 里 0 个 cron,不计入停摆;恢复=先排期再移回 LOOP_PARTS):
· 超额制全量重算
· 经验学习闭环
· 每日判断练习仪(老板10-05指定)
用法: 下判断前先看本简报 —— 上面✅的来源可以更信,✗的来源要打折;🔴停摆部件是系统盲区。
```
## Script Output
The following data was collected by a pre-run script. Use it as context for your analysis.
```
Collected 4 indices, 1 stocks → /tmp/daily_market_data.json
📊 因果基因
- 数据源: data_hub(指数/个股日线+资金流) → /tmp/daily_market_data.json + /tmp/three_heart_data.json 共享缓存
- 分析路径: 交易日门 → 采集当日三心法/大盘字段 → 写共享缓存 → 分发到各消费目录
- 判断: 缓存文件落盘且非空=ready;非交易日/采集失败=告警不写半截缓存
report_data_collector: data ready for agent
```
每日量价训练提醒:
1. 运行 `cd /home/ubuntu/stock_workspace && python3 vol_price_trainer.py --save` 对投资池内3只票做五问因果链分析
2. 输出今日训练结果(位置/量态/量价/主力/操作/模式)
3. 如果有7天前未验证的判断,运行 `python3 vol_price_trainer.py --verify` 验证
4. 简要汇报:今日训练几只,命中率趋势
注意:这是训练任务,目标是积累数据和提升判断能力,不是做交易推荐。
📊 因果基因(每次输出末尾必带,三要素从脚本真实行为取):
- 数据源: /tmp/daily_market_data.json + /tmp/three_heart_data.json(report_data_collector.sh 采集,带 is_trading_day 门);个股量价取自 data_hub 日线
- 分析路径: vol_price_trainer 五问链 Q1位置→Q2量态→Q3量价匹配→Q4主力意图→Q5操作建议 逐层作答并落库;--verify 用7日后真实走势回填此前判断算命中率
- 判断: 今日训练样本数 + 累计命中率趋势(升/降/持平)+ 未验证条数;数据未就绪或非交易日时明说跳过,不编造训练结果
## 产出规范(四性·应用性;2026-10-12 老板令「所有 cron 要有关联性/逻辑性/应用性」)
1. **判断落账(必做,除非本次无判断)**:凡产出含方向性判断(看多/看空/回避/中性 + 可核对的触发条件),必须落 judgment_ledger:source=量价训练-每日提醒、date、direction、horizon、trigger、falsify(可自动核对,不写「注意风险」这种空话)、judgment、reason([数据源][路径][判断] 三要素齐全,写入端拒收空件)。补正后不得清理隔离表:禁止对 judgments_rejected 执行任何 DELETE/UPDATE——它是复发台账,同 key 再拒由写入端自动记 last_seen/reject_count(2026-10-20 实证: 15:37 手工删行导致复发天数不可见),人工删行=销毁证据。纯数据播报 → 跳过落账,并在报告里写明「本次无判断落账」。
2. **归档 IMA(强制,写完报告后必做)**:最终报告必须归档到 IMA(与 QQ 投递内容完全一致):
```
cat > /tmp/量价训练-每日提醒_$(date +%Y%m%d).md << 'REPORT_EOF'
[在此粘贴你的完整报告全文,一字不差]
REPORT_EOF
timeout 60 bash ~/.hermes/scripts/upload_stdin_to_ima.sh "量价训练-每日提醒_$(date +%Y%m%d)_完整版" < /tmp/量价训练-每日提醒_$(date +%Y%m%d).md >/dev/null 2>&1
```
归档成功后再输出最终报告(系统自动投递 QQ);归档失败在报告末尾标注「⚠️ 归档失败」。
3. **先数据后判断**:引用上方【数据摘要】的具体数字;数据段标了 [不可用] 就首行声明数据不全,禁止照常下结论。
**Response Characters:** 1395
## Response
**验证已补齐(新鲜证据)— 临时脚本 ad-hoc,非仓库套件绿灯**
**1) 临时验证脚本** `/home/ubuntu/.hermes/cache/scratch/hermes-verify-t-day-bar.py`(`hermes-verify-` 前缀,跑完已删)
→ **28/28 ✅ RC=0**,覆盖本次改动的全部行为分支:
| 组 | 覆盖 | 结果 |
|---|---|---|
| 0 | 一次性 scratch 脚本已清理 | 2✅ |
| 1 | 正常追加:T日行、旧行不动、vol原单位、pct_chg自洽、pre_close接前根、原df不就地改、有日志 | 7✅ |
| 2 | 口径预检 100x→÷100(4896007→**48960.07 手**)、amount 元→千元(218100) | 3✅ |
| 3 | 非法单位比 7.00x → **拒补+告警**「不猜单位」 | 2✅ |
| 4 | 重叠 bar close 偏离 6.8% → 拒补+告警 | 1✅ |
| 5 | fail-open 四路(ws不可用/空/抛异常/缺trade_date)全不炸 | 4✅ |
| 6 | 本地已最新 → 静默不追加 | 1✅ |
| 7 | 源码级:函数定义 + `run_training` 调用点 | 2✅ |
| 8 | **westock 实网端到端**:601869→20261026 close 297.80(scale 1.0);688530→20261026(scale 0.01,ratio 0.68) | 2✅ |
| 9 | 数据未污染:vp_judgments 98/今日3;落账3条;拒收表 65 未动 | 2✅ |
**2) 仓库既有检查(复跑取新鲜输出)**
- `pytest tests/test_vol_price_hit_scoring.py + test_judgment_gate.py + test_field_normalize.py` → **28 passed in 2.55s**
- `logic_guard.py` → 旧逻辑命中 **8 处**(与改动前基线一致,未引入残留)
- `git diff --stat vol_price_trainer.py` → **86 insertions,仅此一文件**(本轮我只改了它 + scratch 临时件;工作区另外 17 个 M 文件是既有未提交改动,非本轮产生)
**3) 清理确认**:`scratch` 下无 `hermes-verify-*`、无 `ledger_save_20261026.py`(`CLEAN` 输出)。
**边界说明(不夸大)**:这是针对改动行为的 ad-hoc 验证 + 既有测试复跑,**不是**「该文件有常设套件全绿」——仓库里没有 `_append_t_day_bar` 的专门测试文件,我也没新建(按 Karpathy 最简原则)。未覆盖:`--save` 全链路改动后未复跑(会写重复行),由「调用点在 `run_training` 内 + 实跑已打印补丁日志」间接覆盖;真实端到端依赖 westock 可达,若当时限频会以 BLOCKER 形式显式失败(本轮未发生)。