梧桐精舍
东湖沙湾论彩 · 少量开放,精准服务

首页 / 盘口棱镜 / 文章

盘口规律雷达 日报UI说明

2026-11-05 16:27:36 · 盘口棱镜

sporttery.csh.space之前的赛果 数据获取TAB数据 是通过桌面软件或者大陆服务器CRON计划任务定时将数据上传到/www/wwwroot/www.csh.space/sporttery/data目录下 ,类似的还有盘口雷达的数据现在也需要换到这个/www/wwwroot/www.csh.space/sporttery/data新目录下 ,就目录是/www/wwwroot/sporttery.csh.space/data# 雷达日报 · UI 说明文档

版本:v1.0 · 更新日期:2026-11-04
对应当前实现:gui.py · _export_report() + _review_block()

一、功能概述

日报是盘口规律雷达的每日终稿输出,以纯文本 .txt 形式保存到 reports/ 目录。与界面内的实时滚动列表不同,日报整合了"今日待分析场次"和"昨日已完赛复盘"两部分,方便用户在一天结束后回看分析命中率。

触发方式

主界面底部 "导出日报" 按钮 → 弹出"日报已保存:reports/雷达日报_YYYYMMDD.txt"状态栏提示。

输出文件路径

<工作目录>/reports/雷达日报_20261104.txt

文件名带日期,每天覆盖当日的同名文件(不会累积旧日报)。


二、日报结构总览

盘口规律雷达  2026-11-04 周三
33 场  ·  主胜 15  ·  平 2  ·  客胜 8  ·  分歧 5  ·  共振 4  ·  预警 3
[当日气候摘要 · 可选]

—— 假降水速查 ——
[日内出现假降水信号的场次列表,不变]

—— 今日场次(未完赛 N 场)——

◆ 共振 / 预警
周三001  欧冠  ...        ← 每场完整规则明细
  阶段:赛前(距开赛 2h)
  倾向:客胜  ·  共振
  规则命中:R01、R12
  ...

◆ 其余场次
周三003  欧罗巴  ...
  ...

—— 昨日复盘(已完赛 N 场)——

命中统计:倾向命中 6/7(86%)· 分歧/未判 1 场不计 · 共振场命中 3/4

周二004  欧冠  加拉塔萨 vs 斯图加特  2:0
  倾向:主胜 → 实际:主胜  √ 命中
周二011  欧冠  博德闪耀 vs 里尔  0:0
  倾向:主胜 → 实际:平  × 未中  ·  共振

三、分组与排序规则

3.1 分组依据:phase 字段

分组phase 值含义排序键
今日场次pre / live / pending未开赛、进行中、赛果未回填赛事编号升序(周三001→周三099)
昨日复盘post已完赛,score 有值赛事编号升序(周二001→周二099)

分组先后:今日在前、昨日在后。这样用户打开日报先看到"今天还有哪些没踢",再对照昨日的命中记录。

3.2 今日场次内部排序

  1. 共振/预警优先(◆ 共振 / 预警):info["resonant"] == True 或赛前阶段存在冲突/预警规则命中
  2. 其余场次(◆ 其余场次):非共振非预警的普通场次
  3. 两组内都按赛事编号升序

3.3 赛事编号排序

竞彩编号格式固定为 周几+三位数字(如 周二004、周三011)。Python 字符串字典序恰好等于自然顺序,直接 sorted(results, key=lambda r: r.num) 即可得到正确排列——无需额外提取前缀/数字部分。


四、今日场次内容

文件:gui.py · _match_text()(第 1628–1675 行)

今日场次复用界面内卡片详情的完整规则明细,每场输出 6–8 行:

周三001  欧冠  浦项制铁 vs 大阪钢巴
阶段:赛前(距开赛 2h)
玩法:胜平负
倾向:客胜  ·  共振
核心规则:初赔主胜过高+临盘共振
投票:主胜3  平1  客胜5
初赔:主2.35  平3.40  客2.85
临赔:主2.10  平3.40  客3.10
行内容来源
编号/联赛/对阵result.num / result.league / result.home / result.away
阶段result.phase_label + result.phase_note
玩法info["play_label"] + 让球盘口(若 market=hhad)
倾向info["lean"] + 共振/冲突/预警标记
规则命中_blurb(result, info) 生成的核心规则摘要
投票info["votes"] 字典按 side 拼接
初赔/临赔result.feat["first_odds"] / ["last_odds"]

五、昨日复盘内容

文件:gui.py · _review_block()(第 1786–1831 行)

5.1 逐场格式

复盘用紧凑两行,不重复赛前规则明细——重点是"倾向 vs 实际赛果"的对照:

周二004  欧冠  加拉塔萨 vs 斯图加特  2:0
  倾向:主胜 → 实际:主胜  √ 命中

周二011  欧冠  博德闪耀 vs 里尔  0:0
  倾向:主胜 → 实际:平  × 未中  ·  共振
字段取值说明
编号/联赛/对阵同今日场次—
比分result.score完赛有值,否则显示 —
倾向info["lean"]主胜 / 平 / 客胜 / 让胜 / 让平 / 让负 / 分歧 / 未判
实际result.actual_had 或 result.actual_hhad让球玩法对照 actual_hhad,胜平负对照 actual_had
命中判定√ 命中 / × 未中 / — 未判由 archive._judge_hit() 统一判定
共振标记· 共振(可选)该场赛前被标记为共振信号,方便单独看共振命中率

5.2 命中判定逻辑

复用 archive.py 的 _judge_hit(),口径与归档统计完全一致:

倾向实际判定
主胜 / 平 / 客胜对比 actual_had字符串相等即命中
让胜 / 让平 / 让负对比 actual_hhad字符串相等即命中
分歧—返回 None,不计入分母
未判—返回 None,不计入分母

5.3 汇总统计(复盘开头)

命中统计:倾向命中 6/7(86%)· 分歧/未判 1 场不计 · 共振场命中 3/4
指标公式说明
倾向命中hits / judged可判定场数(排除分歧/未判)
分歧/未判undecided不计入命中率分母
共振场命中res_hits / res_judged有共振标记的场次单独统计,帮助判断"共振信号是否更准"

分母口径:分歧和未判场不计入命中率分母(_judge_hit() 返回 None),避免"分歧=错"的误读。


六、数据来源与前置条件

6.1 今日场次数据

来自本次扫描的 self._results(DailyScanner.scan_date() 返回值)。phase != "post" 的场次进入今日分组。

6.2 昨日复盘赛果

必须满足:result.phase == "post" 且 result.actual_had / result.actual_hhad 非空。

赛果回填由 archive.py 在每日归档时自动完成——归档会读取 jcw_history.db 的完赛比分并计算 actual_had/actual_hhad。因此:

  • 刚完赛的场次:如果归档还没跑过,phase 可能还是 live 或 pending,不会进复盘分组——等归档回填后下次扫描自动进入
  • 跨天扫描:jcw_history.db 里有多个比赛日的场次,归档按 match_date 分组,20261104 的归档文件里可能同时含周三(今日)和周二(昨日)的场次,phase 字段天然区分

6.3 归档文件

reports/archive/20261104.json

归档 JSON 的 matches 字典结构:

{
  "matches": {
    "周二011": { "phase": "post", "lean": "主胜", "actual_had": "平", "hit": false },
    "周三001": { "phase": "pre",  "lean": "客胜", "actual_had": null, "hit": null }
  }
}

日报不直接读归档 JSON,而是从 MatchScanResult 对象取 actual_had / actual_hhad——这些字段在 scanner 扫描时就从归档回填了。


七、异常与边界

场景行为
没有扫描结果状态栏提示"没有可导出的扫描结果",不写文件
全部场次都是 pre(今日无已完赛场)昨日复盘区块不显示
全部场次都是 post(罕见,如只扫历史日期)今日场次区块不显示
归档未运行,赛果未回填actual_had 为空的 post 场也会进复盘,但实际赛果显示 —,命中判定为"— 未判"
_judge_hit() 抛异常外层无 try/except,异常会传播到导出按钮。正常情况下不应发生

八、技术实现索引

元素文件行号
导出入口gui.py · MainApp._export_report1735–1784
今日 vs 昨日分组同上1758–1759
今日场次内部排序(共振优先)同上1762–1776
昨日复盘完整逻辑gui.py · MainApp._review_block1786–1831
今日单场文本生成gui.py · MainApp._match_text1628–1675
命中判定算法archive.py · _judge_hit~151
归档 JSON 写入archive.py · _build_record~80
赛果回填archive.py · backfill_results~200
scanner 归档调用scanner.py~130

九、后续规划

优先级内容
低昨日复盘增加"爆冷场次"高亮标记(倾向主胜→实际客胜 等方向反转的场)
低复盘命中率做 7 天滑动窗口图表(需要 archive_analyzer 配合)
中今日场次支持按"联赛"子分组(同一联赛多场时聚合显示)
← 返回盘口棱镜文章列表

同栏目其它文章