彩票助手 (lottery-helper)
支持的彩种
| 彩种 | 代码 | 规则 |
|---|
| 双色球 | ssq | 33选6 + 16选1(蓝球) |
| 大乐透 | dlt | 35选5(前区) + 12选2(后区) |
| 排列三 | pl3 | 10选3(百十个) |
| 排列五 | pl5 | 10选5(万千百十个) |
| 福彩3D | 3d | 10选3(百十个) |
| 北京快乐8 | kl8 | 80选20 |
| 七乐彩 | qlc | 30选7(基本号) + 1(特别码) |
| 七星彩 | qxc | 10选7(7位) |
⚠️ 彩票为物理独立随机事件,历史结果不影响未来开奖,推荐仅供娱乐。
核心脚本
scripts/query.py - 查询开奖数据(17500.cn)
scripts/export.py - 导出为 txt/md/xlsx/sqlite
scripts/recommend.py - 生成推荐号码(含计算依据)
标准工作流
Step 1:询问查询意图
主动询问:
- 查询哪些彩种(可多选)
- 查询范围:最近一期 / 最近N期 / 指定日期范围
- 导出格式:直接返回 / txt / md / xlsx / sqlite
Step 2:执行查询
import sys
sys.path.insert(0, "<skill目录>/scripts")
import query
res = query.get_latest({"双色球": 10, "大乐透": 5})
for name, records in res.items():
for rec in records:
print(f"[{name}] {rec['formatted']}")
Step 3:导出(如用户需要)
import export
# 注意:get_latest() 返回的 key 是中文名,直接传给 export 函数
export.export_txt(res, "输出路径.txt")
export.export_md(res, "输出路径.md")
export.export_xlsx(res, "输出路径.xlsx")
export.export_sqlite(res, "输出路径.db")
Step 4:询问是否需要推荐
查询结果返回后,必须主动询问:
"要不要给你推荐一组号码?"
等待用户确认后再进入推荐流程。
Step 5:判断推荐范围
第一步:识别最近的连续彩种查询
"连续"指的是:用户发出查询意图后紧跟着执行查询,两者之间没有其他非查询消息。只看实际执行过 query.py 后的彩种,不看推荐意图本身。
第二步:三种情况
| 情况 | 行为 |
|---|
| 刚查过 1 个彩种 | 直接推荐该彩种 |
| 刚查过 2 个及以上彩种 | 这几个都推荐 |
| 无连续查询记录 | 列出全部 8 个彩种,让用户选择 |
第三步:识别失败时的兜底规则
如果 AI 无法确定最近一次查询的彩种(比如是新会话/历史丢失),不得随意默认,必须列出全部 8 个彩种请用户选择:
"请问您想推荐哪种彩票?支持:双色球 / 大乐透 / 排列三 / 排列五 / 福彩3D / 北京快乐8 / 七乐彩 / 七星彩"
第三步:执行推荐
cd <skill目录>/scripts
# ⚠️ PowerShell 注意:--codes 参数必须用引号包裹,否则 3d 会被解析为数字
python recommend.py --codes "<代码>" # 推荐(无回测,约几秒)
| 参数 | 说明 |
|---|
--codes | 彩种代码,逗号分隔,必填(PowerShell 下必须加引号) |
--backtest | 启用回测(约1~2分钟,默认关闭) |
--recent | 回测期数(默认200,仅在 --backtest 时生效) |
PowerShell 陷阱:3d 会被解析为 [decimal]3。务必使用 --codes "ssq,dlt,3d" 而非 --codes ssq,dlt,3d。
Step 6:询问是否需要回测
推荐返回后,主动询问:
"需要我跑一下历史回测吗?会验证这个策略在最近 200 期的命中率,但需要约 12 分钟。"
- 同意:追加
--backtest 重新执行
- 拒绝:结束
算法核心(多因子蒙特卡洛混合策略)
- 频率统计:全量历史 + 近100期,分别统计各号码出现频次
- 热冷温分类:高频35%=热号、中频35%=温号、低频30%=冷号
- 蒙特卡洛采样:每期生成3万组候选组合,按均衡约束过滤
- 均衡约束:奇偶比接近1:1、大小号均衡、和值在合理区间
- 组合打分:综合频率 + 位置合规 + 奇偶平衡 + 和值接近度
- 多样性:输出最优组合 + 2个备选
Step 7:返回结果
- 推荐结果包含号码分析(热/温/冷、历史出现率、备选组合)
- 必须包含免责声明段落
- 提醒:理性购彩,量力而行
数据接口
详见 references/apis.md(数据源:https://data.17500.cn/{code}_{asc|desc}.txt)
中奖率详细数据
详见 references/odds.md
注意事项
- 查询接口每分钟可请求多次,无需额外限速
- 快乐8 每期 20 个号码,xlsx 字段较多
- 推荐算法仅供参考,不代表任何中奖承诺
PowerShell 特殊说明
必须加引号:在 PowerShell 中执行 recommend.py 时,--codes 参数的值必须用双引号包裹:
# ❌ 错误:3d 会被解析为 [decimal]3,变成 "3"
python recommend.py --codes ssq,dlt,3d
# ✅ 正确:完整保留字符串
python recommend.py --codes "ssq,dlt,3d"
原因:PowerShell 的 d 是 decimal 类型后缀,3d = [decimal]3。引号内按字符串原样传递。