trading: 日内T/长桥/六合彩文档与脚本 + quant-factor-mining 新目录

This commit is contained in:
2026-09-25 01:25:38 +08:00
parent 734b168082
commit 3f17a4eb1f
23 changed files with 1821 additions and 376 deletions
@@ -0,0 +1,97 @@
# 2026-08-30 v1.5.0 hot-data cron 加"上期开奖回顾"段
**用户原话**: "这个每次推送前把上期开奖结果推一下。"
## 改动
`lottery_特码_cron.sh` (11:30 北京 hot-data 推送) 在分析前加 3 段输出:
1. 上期 Qi 期开奖结果 (平码 + 特码)
2. 预测 Top 5 (从历史 .md 锚定 `🥇🥈🥉` 行提取)
3. **特码命中判定** ✅/❌ (只看特码, 不判平码)
**为什么 hot-data 11:30 能拿到 Qi 期数据**:
- 开彩是周二/四/六 21:30 北京
- hot-data 跑 11:30 北京 = **开彩前 10h**, 但上期开彩已在 14h 前完成
- v_xg.json 每次请求都返 Qi = 最新已开期号, 11:30 跑时 Qi = 上一开彩期
- **6 次 cron 跑里, 3 次能拿到上期回顾** (周二/四/六 11:30 跑) - 剩下 3 次 (周一/三/五 跑) Qi 仍是上一开彩期, 同样有数据, 所以**实际上每次都能拿到**
## 实现细节
### 1. 从 `lottery.db` 的 `draws` 表读 Qi 期真开彩
```bash
ROW=$(sqlite3 "$DB" "SELECT n1||'|'||n2||'|'||n3||'|'||n4||'|'||n5||'|'||n6||'|'||special FROM draws WHERE period='$Qi';")
```
**fallback**: draws 表无数据 (用户没手填且 verify_lottery.sh 没跑过) → 直接从 v_xg.json `Data.1-7` 拿
### 2. Top 5 提取 (锚定 emoji 行, 避免抓年份/日期)
**错** (没锚定, 抓到时间戳):
```bash
TOP=$(grep -oE '\*\*[0-9]+\*\*' *.md | head -5)
# → "5,1,60,77,2026" (2026 是日期年份)
```
**对** (锚定 `🥇🥈🥉` 行):
```bash
TOP=$(grep -hE '^\| [🥇🥈🥉] \| \*\*[0-9]+\*\*' *.md \
| grep -oE '\*\*[0-9]+\*\*' | head -5 | grep -oE '[0-9]+')
```
### 3. 只判特码命中 (用户硬偏好)
```bash
if echo ",$TOP," | grep -q ",$SP,"; then
echo "命中: ✅ 特码 $SP 中奖!"
else
echo "命中: ❌ 特码 $SP 未中"
fi
```
**不要**:
- ❌ 平码命中判断 (用户原话: "只要特码命中的")
- ❌ 多余"平码命中 26" 这种列
**verify_lottery.sh** (22:30 核验脚本) **仍可输出平码命中**, 那是核验报告, 不是 hot-data 推送, 性质不同。
## 实跑验证 (2026-08-30, 095 期)
```
🎯 分析期号: 096 (v_xg.json Nq 未开下期)
━━━ 上期开奖回顾 ━━━
**095 期**
| 位置 | 号码 |
|:---|:---|
| 平码 | 30 · 4 · 11 · 26 · 8 · 7 |
| 特码 | **42** |
预测 Top 5: 33,25,26,22,22
命中: ❌ 特码 42 未中
==============================================================
096 期特码分析...
```
## 时间轴覆盖 (确保每次 cron 跑 Qi 都有数据)
| cron 跑时间 | Qi 期 (上一开彩) | Nq 期 (下期开彩) |
|---|---|---|
| 周二 11:30 北京 | 周六 095 (4 天前) | 周二 096 (今晚) |
| 周四 11:30 北京 | 周二 096 (2 天前, **今天 21:30 后 Qi 变 096**) | 周四 097 (后两天) |
| 周六 11:30 北京 | 周四 097 (2 天前) | 周六 098 (后两天) |
**注意**: cron schedule 是 `0,2,4` (周日/周二/四/六, 注意是 UTC day-of-week 还是 北京时间 day-of-week)
- cron 表达式用 UTC, 北京时间 = UTC + 8h
- `30 11 * * 0,2,4` UTC = 周日/二/四 11:30 UTC = **北京 周日/二/四 19:30 北京**, 不是 11:30 北京!
⚠️ **实际 cron schedule 应该用 `30 3 * * 0,2,4` UTC (北京 11:30)** 或 确认 hermes cron 后端是按 UTC 还是本地时间计算。
详见 v4.5.66 reference 的 cron schedule 修复记录。
## 教训
1. **grep Top 5 一定要锚定 emoji 行** - 裸 grep `\*\*[0-9]+\*\*` 会抓到日期里的 `**2026**`
2. **用户偏好简化判定维度** - 删平码命中是显式偏好 (用户原话 "只要特码命中的"), 不是建议
3. **fallback 链很重要** - draws 表空 → v_xg.json fallback, 双重保险
4. **复用 verify_lottery.sh 的逻辑** - 同一个 wrapper 写了两次 (hot-data + verify), 抽公用函数可避免重复