Install
openclaw skills install yy-world-cupUse when predicting World Cup match results and generating China Sports Lottery betting strategies, including injury factor analysis, weather impact assessment, and dual strategy recommendations.
openclaw skills install yy-world-cup基于双模式评分模型和Elo评级系统的增强型世界杯赛事预测工具,在原有预测能力基础上新增球员伤病状态、上场概率、近期竞技状态、比赛日天气影响、战术克制关系、小组排名激励等核心因子,输出精准比赛预测结果和符合中国体育彩票规则的双模式购票策略(胜率最高策略/激进策略)。
v2.0 改进要点:
When NOT to use
world-cup-predictor-enhanced/
├── SKILL.md # 本文件
├── predictor/
│ ├── __init__.py # 包入口
│ ├── core.py # 双模式预测引擎
│ ├── factors.py # 10类预测因子计算
│ ├── data/ # 数据接入层
│ │ ├── models.py # 数据模型定义
│ │ ├── api_client.py # balldontlie FIFA API客户端
│ │ └── cache.py # 文件缓存机制
│ ├── strategy/ # 策略引擎
│ │ ├── lottery.py # 体彩5种玩法
│ │ ├── conservative.py # 胜率最高策略
│ │ └── aggressive.py # 激进策略
│ └── validator/ # 验证模块
│ └── backtest.py # 2022历史回测
├── tests/
│ └── test_factors.py # 单元测试
└── data/ # 运行时数据
└── cache/ # API响应缓存
球队实力分差 ≥ 15分 → 爆冷模式(爆冷因子+客胜加权提升)
球队实力分差 < 15分 → 平衡模式(泊松模型+动态平局概率)
| 因子类别 | 权重占比 | 说明 |
|---|---|---|
| 基础球队实力(Elo) | 35% | 映射到1600-1950 Elo区间 |
| 球员伤病与上场概率 | 15% | 主力+位置差异化权重,0.80-1.20系数 |
| 近期比赛状态 | 12% | 近5场加权评分,0.90-1.10系数 |
| 比赛日天气影响 | 8% | 温度/降水/风力对不同战术的影响 |
| 小组排名与奖金激励 | 7% | 出线形势对球队战意的影响,0.95-1.05 |
| 平均进球/失球数 | 7% | 攻防数据综合差值,0.92-1.08 |
| 主场优势 | 5% | 真实主场70 Elo / 中立球场25 Elo |
| 实时赛事平局率 | 5% | 同阶段赛事平局率加权校正 |
| 平局偏差校正 | 4% | 历史对战平局偏差校正 |
| 战术克制关系 | 2% | 战术风格相克关系,0.97-1.03 |
{
"match_info": {...},
"weather_info": {...},
"injury_report": {...},
"analysis": {
"home_elo": 1920, "away_elo": 1720,
"home_total_factor": 1.05, "away_total_factor": 0.95,
"elo_diff": 200, "predict_mode": "爆冷模式"
},
"prediction": {
"home_win_prob": "55.0%", "draw_prob": "25.0%", "away_win_prob": "20.0%",
"predicted_scores": [...],
"total_goals_prob": [...]
},
"strategies": [
{
"strategy_name": "胜率最高策略",
"play_types": [...],
"expected_win_rate": 0.65,
"expected_odds": 1.85,
"expected_value": 0.20
},
{
"strategy_name": "激进策略",
"play_types": [...],
"expected_win_rate": 0.25,
"expected_odds": 6.50,
"expected_value": 0.63
}
]
}
胜率最高策略
激进策略
# 运行回测验证
python3 -c "from predictor.validator import BacktestValidator; BacktestValidator().print_report(BacktestValidator().validate_2022_worldcup())"
# 运行单元测试
python3 -m unittest tests.test_factors -v
from predictor import (
BalldontlieFIFAClient, WorldCupPredictor, ConservativeStrategy, AggressiveStrategy,
Team, Stadium, MatchInfo, InjuryInfo, WeatherInfo, RecentMatch,
TeamStyle, Position, WeatherCondition
)
# 1. 通过API获取球队
client = BalldontlieFIFAClient(api_key="your_key")
teams = client.get_teams()
# 2. 构造比赛
home = Team(id=37, name="Argentina", abbreviation="ARG",
country_code="ARG", confederation="CONMEBOL",
elo=1910, style=TeamStyle.TECHNICAL)
away = Team(id=53, name="Saudi Arabia", abbreviation="KSA",
country_code="KSA", confederation="AFC",
elo=1630, style=TeamStyle.DEFENSIVE)
match = MatchInfo(
match_id=None, home_team=home, away_team=away,
match_time="2022-11-22", stadium=Stadium(1, "Lusail", "Doha", "Qatar", 80000),
stage="group", is_neutral=True
)
# 3. 预测
predictor = WorldCupPredictor()
prediction = predictor.predict(match)
# 4. 生成策略
conservative = ConservativeStrategy().generate(prediction)
aggressive = AggressiveStrategy().generate(prediction)
基于2022世界杯8场小组赛样本: