策略(仅供娱乐)¶
lotterycn.predict 内置 11 个选号策略与 1 个可组合缩水引擎。它们都不具备任何预测力——开奖是独立随机事件,所有策略的期望收益与 random 基线完全相同。本模块仅用于统计观察与娱乐。
| 策略 | 别名 | 流派 | 思路 |
|---|---|---|---|
random |
— | 基线 | 均匀随机——一切策略的对照 |
frequency |
hot / cold |
走势图 | 滑动窗口(recent_n)频率选号,explore_ratio 控制确定性 |
omission |
chase |
走势图 | 遗漏回补:当前遗漏 / 平均遗漏,"热后转冷"排最前 |
deviation |
chisq |
统计 | 卡方偏离度(实际 − 期望)² / 期望;side='hot' 或 'cold' |
repeat |
— | 社区 | 重号 / 邻号(±1) / 斜连号(上上期±1)三权重打分 |
trend |
— | 股票框架 | 和值均线通道:候选和值落入 MA ± k·σ 才保留 |
tail |
— | 走势图 | 两级选号:先按尾数(号码%10)频率选尾,再尾内取号 |
markov |
— | 序列 | 一阶转移采样 P(本期出现|上期出现/未出现)——独立下退化为频率 |
markov2 |
— | 序列 | 二阶转移(上两期 4 态)——展示高阶状态稀疏后退化均匀 |
filter |
— | 形态 | 可组合缩水:和值 / 奇偶 / 质合 / AC 值 / 连号区间,三区比与 012 路精确匹配,杀号 |
ensemble |
— | 集成 | 多策略投票:成员各出 top-k,按号码得票排序(votes_min 阈值) |
用法¶
from lotterycn import load_predict_numbers
# method='hot' 是 frequency + mode='hot' 的别名
picks = load_predict_numbers("ssq", method="hot", amount=5)
chase = load_predict_numbers("ssq", method="omission", amount=3) # 遗漏回补
dev = load_predict_numbers("ssq", method="deviation", side="cold", explore_ratio=0)
shrink = load_predict_numbers(
"ssq",
method="filter",
amount=3,
sum_range=(90, 120),
prime_range=(2, 3),
zone_ratio=(2, 2, 2),
exclude_numbers={7, 13},
)
votes = load_predict_numbers(
"ssq",
method="ensemble",
amount=1,
members=("frequency", "omission", "repeat"),
)
传 history= 注入 DataFrame 可完全离线;否则工厂拉取历史(支持 if_cached=True)。
Filter 形态指标口径¶
所有 *_range 过滤为闭区间 (lo, hi);zone_ratio 与 mod3_range 为计数三元组的精确匹配。
- AC 值 —— 排序去重后两两差值的不同个数 −(号码个数 − 1)。例:
{01,02,06,13,27,33}两两差值恰有 15 个不同值,AC = 15 −(6 − 1)= 10(6 个号的理论最大值);全连号{01..06}只有 5 个,AC = 0。 - 三区比(精确匹配) —— 红球池三等分,各区计数必须与给定
(一区, 二区, 三区)完全一致。各彩种分界:
| 彩种(红球池) | 一区 | 二区 | 三区 |
|---|---|---|---|
ssq(1-33) |
1-11 | 12-22 | 23-33 |
qlc(1-30) |
1-10 | 11-20 | 21-30 |
kl8(1-80) |
1-27 | 28-54 | 55-80 |
dlt(1-35) |
1-12 | 13-24 | 25-35 |
数字型 3d/pls/plw/qxc(0-9) |
0-3 | 4-6 | 7-9 |
- 012 路
mod3_range(精确匹配) —— 号码除以 3 余 0 / 1 / 2 的计数三元组必须与给定值完全一致。 - 质数 —— {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31}(1 不算质数)。
- 连号对数 —— 排序去重后相邻两数恰差 1 的对数。
与其他策略一致:过滤只改变选号的分布形态,不改变任何一注的中奖概率。
回测——亲自验证"无预测力"¶
from lotterycn import backtest, backtest_summary
results = backtest(
methods=("random", "hot", "omission", "ensemble"),
lottery_name="ssq",
window=100,
)
print(backtest_summary(results))
每个策略由前 window 期历史驱动出票,与下一期真实开奖比对红/蓝命中数。每次复现的结论都一样:所有策略与 random 表现相当。社区机器学习尝试(LSTM/XGBoost 预测号码序列)结论一致:排列三量级(1/1000)空间上 LSTM 准确率 ≈ 4.2‰,即基线水平。任何"显著优于随机"的观察都应视为过拟合或噪声。
关于股票分析类比¶
部分策略刻意沿用了股票分析框架(动量 ≈ 追热、均值回归 ≈ 遗漏回补、均线通道 ≈ trend、量 ≈ draws.py 的销售/奖池特征)。类比是教学性的:在有效市场和彩票里,框架都不创造优势——但它们让随机性变得可度量。