---
name: sports-betting-analysis
description: 体育赛事分析与预测市场投注策略。核心方法：数据驱动分析 + 心理状态评估 + 赔率套利识别。适用于世界杯、欧洲杯等大赛的 Polymarket 投注。触发条件：用户提到足彩、投注、赔率、Polymarket、预测市场、世界杯分析。
---

# 体育赛事分析与预测市场投注

## 核心理念

**数据 + 心理 = 胜率**

不要靠感觉投注。每场比赛的分析必须包含：
1. 客观数据（排名、历史战绩、近期状态）
2. 心理因素（连胜轻敌、连败反弹、主客场压力）
3. 赔率对比（市场定价 vs 真实概率）

## 心理分析框架（张哥模型）

### 连胜必骄
- 球队首场大胜（如5-1/7-1） → 次场容易**松懈/轻敌**
- 尤其大胜的是弱队时，心理膨胀更严重
- 遇到实力更强的对手时，松懈的后防容易被抓反击
- **操作提示**：首场大胜后遇强队，考虑反买或单边大球（对手进球）
- **历史规律**：世界杯首场大胜的球队次场往往表现下降（西班牙7-0哥斯达黎加→1-1平德国，德国4-0葡萄牙→2-2平加纳）

### 连败必胜（反弹效应）
- 球队连败 2-3 场后 → 变得谨慎小心 → 不再猛攻 → 反而容易拿分
- 强队连败后尤其危险，会被市场低估
- **但注意**：连败的强队打弱队会赢，但**不会大胜**（因为谨慎保守）
- **操作提示**：强队连败后遇到弱队，考虑赢球输盘（让球负）

### 破釜沉舟（必须赢的心理状态）
- 球队首场没赢（平局/输球），第二场必须赢
- **影响**：教练和球员会更谨慎，怕丢球 > 想进球
- 先稳守，后进攻 — 上半场可能保守
- 对手如果轻敌松懈，正是破釜沉舟方的好机会
- **操作提示**：破釜沉舟的强队 vs 松懈的弱队 → 强队单边大球有机会
- **风险**：过度谨慎反而可能进攻不力，被对手反击偷一个

### 大赛心理
- 世界杯/欧洲杯舞台：紧张 vs 兴奋
- 东道主压力：主场作战反而容易失常
- 卫冕冠军包袱：上届冠军容易被针对

### 教练风格对大小球的影响（张哥上海上港案例）

**关键判断指标：教练的战术风格直接影响球队的进球模式**

| 教练风格 | 特征 | 大小球影响 |
|:--------|:----|:-----------|
| **激进进攻型** | 不管强弱都打攻势足球 | 大球概率70%+ |
| **防守稳健型** | 重视防守，1-0主义 | 小球概率高 |
| **传控型** | 控球率高但进球转化低 | 小球偏多 |

**张哥实例（上海上港）：**
- 以前教练激进，打法开放 → 闭眼买大球，10中7-8
- 今年球队弱了，教练开始谨慎 → 大球概率下降
- **规律**：球队强弱变化 + 教练风格调整 → 进球模式随之改变

**操作提示：**
1. 了解教练风格（可从赛前发布会/媒体分析获取）
2. 观察球队本赛季/大赛的进球数据
3. 球队实力变化（核心球员离队/老化）会影响教练风格

### 关键球员对位分析框架（张哥2026-06-20指定）

分析比赛时必须包含**球员级别**的对位分析，不能只看球队整体。

#### 分析步骤
1. **确认双方核心球员**（查阵容确认）
2. **关键对位**：
   - 攻击方核心 vs 防守方对应位置
   - 速度型前锋 vs 速度型后卫
   - 力量型前锋 vs 身体型后卫
   - 技术型中场 vs 防守型中场
3. **对位结论**：
   - 攻击方明显强于防守方 → 该队进球概率大
   - 攻防均衡或防守占优 → 该队进球难
4. **综合判断进球来源**

#### 对位分析模板
```
**🔫 [A队]进攻 vs [B队]防守**
| [A队攻击手] — [特点] | 🆚 | [B队防守者] — [特点/弱点] |
| 结论：[A队]能进X球

**🛡️ [B队]进攻 vs [A队]防守**
| [B队攻击手] — [特点] | 🆚 | [A队防守者] — [特点/弱点] |
| 结论：[B队]能进Y球

→ 最可能比分：[A队X]-[B队Y]
→ ≥2.0推荐：[推荐投注方式]
```

### 世界排名作为基础参考（张哥2026-06-20强调）

世界排名是基础实力判断的起点，必须查：
1. 查两队当前FIFA排名（Yahoo Japan搜索或已知数据）
2. 排名差决定实力差
3. 排名差>20位 → 强队明显占优（让球盘可考虑）
4. 排名差<10位 → 实力接近（平局或单边大球更合适）
5. 排名差结合状态分析 → 综合判断

### 历史规律总结法（张哥2026-06-20新增）

分析比赛时，搜索类似情况的**历史案例**：
- "首场大胜的球队次场表现如何？"
- "实力强但首场没赢的球队次场反弹还是继续低迷？"
- 从世界杯/大赛历史中找3-5个类似案例
- 案例是否有明显规律？70%以上一致则可信度高

## 数据获取

### FIFA 排名数据
```python
import urllib.request, json
url = "https://api.fifa.com/api/v1/ranking?limit=50"
req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
with urllib.request.urlopen(req, timeout=15) as resp:
    data = json.loads(resp.read())
```

### Polymarket 赔率数据
```python
# Polymarket Gamma API
url = "https://gamma-api.polymarket.com/markets?limit=100&active=true"
# 搜索特定比赛
url = "https://gamma-api.polymarket.com/markets?search=World+Cup"
```

### 实时比赛数据

For live scores, match schedules, and odds data sources, use the **`web-research-extraction`** skill which covers lynx/curl data extraction from:
- **FlashScore** — lynx-readable live match list
- **Goal.com** — curl+bs4 JSON match data (future matches only)
- **NowGoal** — lynx-readable completed match scores + odds tables
- **LiveScore** — JSON API accessible
- **Wikipedia** — team history, FIFA rankings
- **500.com** — Chinese football data (gb2312 encoding)
- **ESPN API** ✅ — **推荐首选（JSON，无Cloudflare封锁）**
  - 每日赛程+比分: `https://site.api.espn.com/apis/site/v2/sports/soccer/fifa.world/scoreboard?dates=YYYYMMDD`
  - 返回: 每场比赛的球队、比分、状态(Scheduled/In Progress/Full Time)、场地、时间(UTC)
  - 无需header/代理，curl或Python requests直接可拿
  - 遍历多dates参数即可获取多日数据

See `web-research-extraction` skill → "Sports & Prediction Markets Data Sources" section and `references/sports-data-sources.md`.

### 赔率数据
- 服务器端无法直接获取实时赔率（Bet365/威廉希尔等全是JS渲染）
- Polymarket友谊赛通常没有市场
- **绝对不要编造赔率数字** — 拿不到就说拿不到
- 备选：NowGoal赔率页（lynx可读），但部分match显示"--"表示未开盘

## 分析工作流（5步法）

### Step 0: 数据采集 — ESPN API（推荐）
```python
# 跨日期采集所有比赛数据
import subprocess, json
all_matches = []
for d in ['YYYYMMDD', 'YYYYMMDD+1', ...]:
    r = subprocess.run(['curl', '-sL', f'https://site.api.espn.com/apis/site/v2/sports/soccer/fifa.world/scoreboard?dates={d}'],
                       capture_output=True, text=True, timeout=10)
    d2 = json.loads(r.stdout)
    all_matches.extend(d2.get('events', []))

# 提取每队战绩、进球、失球
for e in all_matches:
    status = e.get('status',{}).get('type',{}).get('description','')
    if status != 'Full Time': continue
    comps = e.get('competitions',[{}])[0]
    competitors = comps.get('competitors',[])
    for c in competitors:
        t = c.get('team',{}).get('displayName','')
        s = int(c.get('score',0))
        # 累加 wins/draws/losses, goals_for, goals_against
```

### Step 1: 基础情报
- FIFA 排名、历史交锋、本赛事近期战绩
- **本赛事首轮表现对比**（进球数、失球数、对手强弱）
- 教练风格（激进/保守）
- 伤停信息（如能查到）

### Step 2: 心理状态分析
- 连胜/大胜 → 找松懈迹象
- 连败/平局 → 找反弹或破釜沉舟迹象
- 对手关系（宿敌？首次交手？）
- 参考历史类似案例

### Step 3: 关键球员对位分析
- 攻击方核心 vs 防守方对应位置
- 重点对位决定比赛走势
- 详见"关键球员对位分析框架"

### Step 4: 综合分析 → 最可能比分
- 实力 + 状态 + 心理 + 对位 = 最可能比分
- 从最可能比分出发找≥2.0的投注方式
- 参考历史规律验证

## 小组赛分析格式（多场对比）

当用户要求分析多场比赛时，先整理所有球队的**首轮/已有战绩对比表**：

```
| 球队 | 战绩 | 进球 | 失球 | 表现 |
|------|:----:|:----:|:----:|:----:|
| 🇸🇪 Sweden | 1胜0平0负 | 5 | 1 | 火力猛 |
| 🇳🇱 Netherlands | 0胜1平0负 | 2 | 2 | 攻强守弱 |
```

然后逐场分析并标注赔率门槛（≥2.0）的选项。

### 逐场分析格式（真金白银模式）

```
**① [球队A] vs [球队B]** 🇦🇦🇧🇧 [时间]
世界排名：[A队#XX] vs [B队#XX]
首场：[A队结果] vs [对手]，[B队结果] vs [对手]

**心理分析：**
- [A队]首场[大胜/平局/失利] → [松懈/必须赢/...]
- [B队]首场[大胜/平局/失利] → [松懈/必须赢/...]

**关键对位：**
- [A队攻击手] vs [B队防守者] → [结论]
- [B队攻击手] vs [A队防守者] → [结论]

**最可能走势：** [比赛推演]
**最可能比分：** [A队X]-[B队Y]

**≥2.0推荐：**
1. 🥇 [推荐1] — [理由]
2. 🥇 [推荐2] — [理由]
3. 🥈 [推荐3] — [理由]
```

## 核心原则：准确率第一（张哥2026-06-20新增）

**这是投注的最高指导原则，高于一切其他规则。**

### 赔率门槛的正确使用方式（纠正错误理解）

❌ **错误做法**：因为赔率<2.0，就硬选相反结果（如认为荷兰胜赔率低，就硬选平局或瑞典胜）
✅ **正确做法**：
1. 先分析出**最可能的结果**（基于实力+状态+心理+对位）
2. 然后从最可能的结果出发，找**该结果下的≥2.0投注方式**
3. 如果最可能的结果本身赔率≥2.0，直接推荐
4. 如果最可能的结果赔率<2.0，就找：
   - **让球盘**（如荷兰-1让球平/让球胜）
   - **单边进球大球**（如荷兰单边大1.5/大0.5）
   - **大小球**（总进球数）
   - **双方都进球（BTTS）**
   - **角球大小**
   - **进球数区间**（如2-3球）
5. 如果所有≥2.0的选项都不靠谱，**放弃这场**，不硬推

**❌ 常见错误：因为某个投注项赔率<2.0，就硬选相反的结果**
- 例如：荷兰胜赔率1.57（太低），于是一拍脑袋选了"平局"或"瑞典胜"
- 正确做法：从最可能结果（荷兰胜）出发，找该结果下的≥2.0选项
- 如荷兰-1让球胜、荷兰单边大1.5、总进球2-3球等

**张哥原话：** "准确率是第一位。你不能因为赔率低就选平局，选平局打不出来咋办？"

### 投注维度（从最可能的结果出发）

| 维度 | 适合场景 | 赔率水准 |
|:----|:---------|:---------|
| **胜负平** | 冷门/平局 | 2.0-8.0 |
| **让球（-1/-1.5）** | 强队小胜/大胜 | 1.8-4.0 |
| **单边大球（单队进球）** | 攻击强/防守弱 | 1.5-3.0 |
| **双方都进球（BTTS）** | 两队都有攻击力 | 1.8-2.5 |
| **总进球数（大小球）** | 风格开放/保守 | 1.6-3.0 |
| **单边进球让球盘**（如瑞典进球让1球） | 某队进攻能力强/对手防守弱 | 1.8-4.0 |
| **进球数区间（2-3球）** | 实力接近/谨慎 | 2.0-3.5 |
| **角球大小** | 压制/反击 | 1.8-2.2 |

### 串子原则

### 单边进球让球盘（亚洲特有市场）

这是主流平台（如Bet365、Dafabet）提供的特色投注项：
- **瑞典进球让1球（赔率2.04）**：瑞典进0球输，进1球走盘，进2球+赢
- **荷兰单边大1.5（赔率1.91）**：荷兰进2球+赢，进0-1球输
- **日本单边大0.5**：日本进1球+赢

这个市场适合：
- 某队攻击力明显强于对手防守的情况
- 强队让球太深（不确定能不能穿盘），但攻击力肯定能进球
- 弱队也有攻击力，遇到强队防守不稳时

> 注意：这个市场在野鸡平台可能没有，主流平台（Bet365/Pinnacle/Dafabet）才有

### 时间管理
- **晚上 8-10 点**：分析 + 投注完毕
- **第二天早上**：看球、享受比赛
- **半夜 3 点的比赛**：不看，前一天已投注

## 已安装的相关 Skill
- `prediction-market-pro-trader` — 通用预测市场分析框架（ClawHub 安装）
- `polymarket-worldcup-group-repricer` — 世界杯小组赛套利（ClawHub 安装）
- `stock-alert` — 数据监控
- `twitter-posts` — X/Twitter 发帖搜索（查足球资讯）
- `reddit-communities` — Reddit 论坛（查足球讨论）
- `discord-communities` — Discord 社区
- `facebook-pages` — Facebook 页面
- `google-analytics-reporting` — 数据分析
- `clickhouse-analytics` — 数据库分析
- `datadog-monitoring` — 数据监控
- `amplitude-analytics` — 产品分析
- `airtable-records` — 数据表记录管理

## 2026世界杯赛程（已确认）

详细赛程见 zhangge-working-style/references/world-cup-2026-schedule.md

### 小组赛阶段（6/11-6/26）
- 每天 3-4 场比赛
- 北京时间：凌晨3点、早上6-7点、上午11点 三档
- 张哥能看的：上午9-11点的比赛
- 投注策略：晚上8-10点分析+投注，第二天早上看球

### 淘汰赛阶段（6/27-7/19）
- 每天 1-2 场比赛
- 单场或 2串1

## 注意事项
- **绝不追注**：输了不翻倍
- **记录每场结果**：用于校准后续分析
- **NFA**：所有分析仅供参考，不构成投资建议
- **心理分析很重要**：连胜必骄、连败必胜是张哥的核心判断框架

---

## 核心规则（从 sports-betting-rules 合并）

> 这些规则影响所有足球博彩分析的输出格式和行为约束。

### ⚠️ 赔率硬性门槛
- **赔率必须≥2.0才能推荐投注**
- 如果推断赔率<2.0，直接说明"赔率不够，建议放弃"
- 不要选赔率低于2.0的比赛来分析

### "建议放弃"的使用规则
- **不是默认选项** — 只有实在没把握、风险极大时才用
- 如果选择放弃，必须给出具体原因
- **用户明确说"你可以建议放弃"时才能用**，不要主动放弃

### 分析选择权
- **用户指定哪场就分析哪场**，不要自作主张选比赛
- 如果用户没指定，主动推荐几场赔率≥2.0的比赛供选择

### 输出风格（重要！）
- **只说结果，不说过程** — 不要输出"让我查一下""我去试试"等废话
- **不要重复已知信息**（联赛名称、比赛性质等）
- **不要冗长的球员名单** — 只提核心球员
- **上下文要压缩** — 不要重复之前说过的内容
- 直接给结论→理由→赔率→投注建议
- **拿了结果就走，不要反复尝试同一个失败的方法**

### ⚠️ 真金白银模式（2026-06-20新增 — 用户说"认真分析"/"真金白银"时触发）

当用户说"认真分析"、"真金白银"、"多看点网页"、"好好分析"时，**必须切换为详细分析模式**：

**切换信号：** 用户强调"认真"、"真金白银"、"上次猜错了"、"多查资料"

**详细分析必须包含：**
1. ✅ **两队首轮/已有战绩对比表**（胜平负、进球、失球、对手）
2. ✅ **世界排名对比**
3. ✅ **心理状态分析**（连胜松懈？破釜沉舟？）
4. ✅ **关键球员对位**（攻防核心对位）
5. ✅ **历史规律参考**（类似情况的历史案例）
6. ✅ **比赛走势推演**（先进球/被进球场景分析）
7. ✅ **≥2.0投注推荐**（从最可能结果出发，多种投注维度）

**正常模式 vs 真金白银模式的区别：**

| 维度 | 正常模式 | 真金白银模式 |
|:----|:---------|:-------------|
| 输出长度 | 极短（3-5行） | 中等（每个比赛一段） |
| 数据表 | 无 | 有（战绩对比表） |
| 球员分析 | 无 | 有（核心球员对位） |
| 心理分析 | 一句话 | 详细推演 |
| 历史案例 | 无 | 有（3-5个案例） |
| 推演场景 | 无 | 有（各种比分走势） |

**注意：** 即使真金白银模式，也不能发搜索/分析过程。只发最终分析结果。

### 比赛时间选择规则
- **绝对不要选22:00以后开球的比赛**
- 选21:00前开球的比赛

### 常见错误（避免！）
1. ❌ 输出一堆过程叙述
2. ❌ 反复尝试同一个失败的方法
3. ❌ 编造赔率数字
4. ❌ 每场都建议放弃
5. ❌ 选22:00后开球的比赛
6. ❌ 重复已知信息
7. ❌ 假装能看图片/网页截图（当前模型纯文字）

---

## 数据源参考

Sports data extraction methods (lynx/curl/Goal.com JSON/bracket-depth counting/500.com access/server network notes) have been consolidated into the **`web-research-extraction`** skill for single-source-of-truth:

- **SKILL.md → "Sports & Prediction Markets Data Sources"** — Quick-reference tables and extraction patterns
- **`references/sports-data-sources.md`** — Full reference: all lynx-verified sites, Goal.com JSON extraction code, NowGoal odds page reading, 500.com access patterns, all server network limitations and pitfalls

> Reference file was moved from this skill to `web-research-extraction/references/sports-data-sources.md`.

### 球员阵容数据获取

当需要球员级分析时（真金白银模式必须包含）：

1. **Yahoo Japan搜索阵容**：搜 "オランダ 代表 2026 W杯 メンバー" 获取双方球员名单
2. **结合已知球员知识**：各队核心球员（五大联赛效力的）可以通过搜索确认
3. **关键对位分析**：攻击方核心 vs 防守方对应位置的优劣势
4. **阵容查询格式**：
   ```
   curl -sL "https://search.yahoo.co.jp/search?p=<チーム名>+代表+2026+W杯+メンバー&ei=UTF-8"
   ```

### 博彩平台参考

中国用户可用的国际博彩平台信息已收录到`references/betting-platforms-for-chinese-users.md`：
- Dafabet（菲律宾，支持支付宝，推荐）
- 1xBet（俄罗斯，张哥不接受）
- Pinnacle（赔率最高，但对华限制）
- Bet365（已停止亚洲服务）

### Quick Reminder for Betting Analysis

- ✅ Wikipedia, Polymarket, arXiv, Goal.com, 500.com 首页, **ESPN API** (`/v2/sports/soccer/fifa.world/scoreboard?dates=`)
- ❌ Google, Reddit, Bilibili, YouTube, Transfermarkt, Sofascore API
- ⚠️ Yahoo Search — 有时能返回纯文本搜索结果
- **绝对不要编造赔率数字** — 拿不到就说拿不到
