FIFA WORLD CUP 2026 · PREDICTION MARKET SYSTEM

Polymarket
WorldCup Trader

基于贝叶斯概率模型与 Elo 评分的全自动预测市场做市与套利系统。 实时融合体育数据、博彩赔率与 Twitter 突发新闻,通过 Polygon 链上 CLOB API 自动执行错价狙击与宽价差做市策略。

web3.py + Polygon EIP-712 签名 Polymarket CLOB Kelly Criterion Bayesian Fusion WebSocket 实时流
← 返回总览
实时订单簿 🇨🇦 Canada Win Group
价格 数量(USDC) 累计
MID · 市场隐含概率
0.4280 ▲ +0.0031
价差: 0.0240 (5.6%) · 做市机会: ✓ 优质
我方公允值: 0.4520 边缘: +0.0240 --:--:--
监控市场数
47
世界杯活跃预测市场
策略信号数
12
今日触发(狙击+做市)
平均边缘优势
+4.7%
vs 市场隐含概率
日内 PnL
+$38.40
USDC · 模拟账户
Kelly 仓位
1/4
保守凯利系数 × 0.25
系统架构
四层模块设计,数据→概率→策略→执行,全流程自动化
01
⛓️
Web3 基础设施
Polygon 链上交互 + CLOB API 深度集成
Polygon RPC 专用节点 EIP-712 链上订单签名 USDC 余额 + Approve 管理 WebSocket 订单簿实时流 L1/L2 双层 API 鉴权
02
📡
多源数据预言机
体育实时数据 + 舆情监控 Alpha 来源
API-Football 实时比分/红牌 博彩公司去vig真实赔率 Twitter 突发新闻过滤流 Elo 评级动态更新 比赛内事件触发引擎
03
🧮
概率定价 + 策略库
贝叶斯融合 + 双策略并行执行
贝叶斯多源概率融合 事件驱动错价狙击 宽价差被动做市 比赛内动态概率调整 30秒自动报价刷新
04
🛡️
仓位管理 + 风控
1/4 凯利 + 多层安全保护
凯利公式动态仓位 单场最大敞口 30% 日亏损止损 5% 动态 Gas 费优化 紧急一键清仓
执行流程
从数据摄入到链上成交的完整自动化管道
⚽ API-Football
实时比分/红牌
+
🐦 Twitter 流
突发新闻警报
+
📊 博彩赔率
去vig真实概率
🧮 贝叶斯概率引擎
Elo×0.25 + 赔率×0.45 + 实时×0.30
🎯 错价狙击策略
Edge > 6¢ → FOK Taker单
||
📋 宽价差做市策略
Spread > 4¢ → 双边Maker单
🛡️ 凯利公式 + 风控层
1/4 Kelly · 单注≤15% · 日损≤5%
⛓️ EIP-712 签名 → Polygon 链上成交
动态Gas · 紧急3× · 自动确认追踪
核心策略
两种互补策略并行运行,覆盖不同市场状态
🎯 策略 A
事件驱动错价狙击
≥6¢
最小边缘触发

监控 Twitter 和体育 API 的突发事件(红牌/伤停/换阵)。 当关键事件发生而市场价格还未反应(3-10 秒延迟窗口)时, 以 FOK 市价单抢先入场,吃掉信息不对称的价差利润。

红牌/伤停 重算概率 Edge≥6¢? 凯利仓位 FOK买入
最小触发边缘
≥ 6¢
单次上限
100 USDC
滑点容忍
3%
去重窗口
30 秒
📋 策略 B
宽价差被动做市
≥4¢
做市启动价差

针对流动性差的冷门子市场(冷门球队/进球者市场), 以博彩赔率算出公允价值,在其两侧同时挂限价 Maker 单, 每 30 秒刷新一次,吃双向价差稳定收益。

扫描低流动 算公允价 双边挂单 30s刷新 成交对冲
最小市场价差
≥ 4¢
单边报价金额
20 USDC
报价半价差
50% 市场
刷新间隔
30 秒
概率引擎 + 凯利计算器
贝叶斯多源融合概率 × 1/4 凯利保守仓位
贝叶斯概率融合公式
# 多源加权融合 P_final = 0.25 × P_elo + 0.45 × P_bookmaker + 0.30 × P_inplay # 博彩赔率去抽水 P_raw = 1 / decimal_odds P_real = P_raw / sum(P_raw) # Vig removed # 红牌实时惩罚 (-12% per card) P_adj = P_base - 0.12 × red_cards
博彩赔率
45%
实时比赛
30%
Elo 评分
25%
置信度评分: 有博彩赔率 +0.30 · 有实时数据 +0.20 · 比赛>60分钟 +0.10
凯利公式仓位计算器
净赔率 (b)
1.22
边缘优势
+7.0¢
建议仓位
$28.5
f* = (b×p - q) / b × Kelly系数 · 上限: 资金×15%
世界杯球队 Elo + 市场对比
Elo 评分 vs Polymarket 隐含概率,识别系统性错价
🏆 夺冠热门 ELO / POLY / EDGE
1
🇦🇷 Argentina 2040
22.1% 20.8% +1.3
2
🇧🇷 Brazil 2050
19.8% 22.1% -2.3
3
🇫🇷 France 2000
14.5% 13.2% +1.3
4
🏴󠁧󠁢󠁥󠁮󠁧󠁿 England 1980
12.3% 11.5% +0.8
🌎 北美东道主 ELO / POLY / EDGE
1
🇲🇽 Mexico 1780
3.2% 2.4% +0.8
2
🇺🇸 USA 1800
4.1% 5.2% -1.1
3
🇨🇦 Canada 1720
1.8% 1.2% +0.6 ★
4
🇲🇦 Morocco 1800
3.8% 2.9% +0.9
核心代码
关键实现片段,点击标签切换查看
# data_feed/polymarket_clob.py — L2 HMAC 鉴权 import hmac, hashlib, base64, time def _build_l2_headers(method: str, path: str, body: str = "") -> Dict: """构造 Polymarket L2 鉴权 Headers (HMAC-SHA256)""" timestamp = str(int(time.time())) msg = timestamp + method.upper() + path + body # HMAC-SHA256 签名 raw = hmac.new( base64.b64decode(api_secret), msg.encode("utf-8"), hashlib.sha256 ).digest() sig = base64.b64encode(raw).decode("utf-8") return { "POLY-API-KEY": api_key, "POLY-SIGNATURE": sig, "POLY-TIMESTAMP": timestamp, "POLY-PASSPHRASE": api_passphrase, "Content-Type": "application/json", }
# data_feed/polymarket_clob.py — 订单簿 + WebSocket async def get_orderbook(self, token_id: str) -> Dict: """获取 YES/NO token 的完整限价订单簿""" async with session.get( f"https://clob.polymarket.com/book", params={"token_id": token_id}, ) as resp: book = await resp.json() return book # {bids:[{price,size}], asks:[...]} # WebSocket 增量推流订阅 sub_msg = { "auth": {}, "markets": [token_id_1, token_id_2], "type": "Market", } await ws.send(json.dumps(sub_msg)) # 增量 BBO 更新处理 async for raw in ws: msg = json.loads(raw) if msg["event_type"] == "price_change": for change in msg["changes"]: bbo[change["market"]] = { "bid": change["price"], # 触发策略评估 }
# execution/order_executor.py — EIP-712 链上签名下单 def sign_order(self, order: CLOBOrder) -> Dict: """EIP-712 结构化数据签名 → 提交到 Polymarket CLOB""" # buy: makerAmount=USDC, takerAmount=shares maker_amount = int(order.size_usdc * 10**6) taker_amount = int(order.size_usdc / order.price * 10**6) # EIP-712 typed data signed = self.account.sign_typed_data( domain_data = { "name": "Polymarket CTF Exchange", "version": "1", "chainId": 137, # ★ Polygon Mainnet "verifyingContract": CTF_EXCHANGE, }, message_types = {"Order": ORDER_TYPE_FIELDS}, message_data = { "salt": order.salt, "maker": self.account.address, "tokenId": int(order.token_id, 16), "makerAmount": maker_amount, "takerAmount": taker_amount, "side": 0, # 0=BUY, 1=SELL } ) return {"signature": signed.signature.hex(), ...}
# risk/kelly_criterion.py — 1/4 凯利公式仓位 def calculate(self, prob: float, market_price: float, capital: float): """ Polymarket 凯利公式: 买 YES @ price p → 若赢: 收益 (1-p)/p 倍 b = (1 - price) / price # 净赔率 f* = (b×p - q) / b = p - q/b """ q = 1 - prob b = (1.0 - market_price) / market_price # 净赔率 edge = prob - market_price if edge < 0.03: return 0.0 # 边缘 < 3¢ 不下注 kelly_full = (b * prob - q) / b # 完整凯利 kelly_frac = kelly_full * 0.25 # 1/4 保守系数 kelly_frac = min(kelly_frac, 0.15) # 单注上限 15% return kelly_frac * capital # USDC 金额
# strategy/probability_engine.py — 贝叶斯多源融合 def compute(self, home_team, away_team, bookmaker_odds, live_match): # 1. Elo 基础概率 (w=0.25) elo_h, elo_d, elo_a = self.elo.win_draw_loss_probs(home_team, away_team) p_home = elo_h * 0.25 # 2. 博彩赔率去vig融合 (w=0.45) if bookmaker_odds: p_home += bookmaker_odds.home_win_prob * 0.45 # 3. 比赛内动态更新 (w=0.30) if live_match and live_match.status in ("1H", "2H"): ip_h, _, _ = self.elo.in_play_adjustment( base_home_win = elo_h, home_score = live_match.home_score, minute = live_match.minute, home_red_cards = live_match.home_red_cards, ) p_home += ip_h * 0.30 # 归一化 + 计算边缘 Edge = P_我方 - P_市场 edge = p_home / (p_home + p_draw + p_away) - market_price return ProbabilityEstimate(home_win=p_home, edge_home=edge, ...)
风控参数面板
多层保护,严防极端损失
单注最大仓位
15%
资金的 15% = 1000 USDC 账户 → ≤150 USDC/单
单场最大敞口
30%
同一场比赛所有相关仓位合计 ≤300 USDC
日亏损止损
5%
日内亏损触达 50 USDC → 系统暂停交易
最大持仓数量
10
同时最多 10 个未平仓位,超限拒绝新开
最小边缘要求
3%
Edge < 3¢ → 凯利公式自动返回 0,不下注
紧急 Gas 倍数
紧急平仓单 Gas = 当前基础 × 3,上限 500 Gwei
快速部署指南
五步完成生产环境配置
1
安装依赖
需要 Python 3.10+,推荐使用独立虚拟环境
# 克隆并安装 cd /root/worldcup_trader && pip install -r requirements.txt
2
配置环境变量
复制模板,填入 Polygon RPC、私钥和 API Keys
# 配置文件位于 /root/worldcup_trader/.env.example cp .env.example .env && nano .env

POLYGON_RPC_URL=https://polygon-mainnet.g.alchemy.com/v2/YOUR_KEY
POLYMARKET_PRIVATE_KEY=0x你的私钥(极度机密)
API_FOOTBALL_KEY=你的RapidAPI密钥
3
派生 L2 API 凭证(仅首次)
用私钥在链上签名,换取 Polymarket CLOB 的 API Key
# 将输出的 key/secret/passphrase 写入 .env python main.py --derive-key
4
授权 USDC(仅首次)
允许 Polymarket CTF Exchange 合约花费你的 USDC
# Polygon 链上 approve 交易,需少量 MATIC 作 Gas python main.py --approve
5
启动系统
先用 dry-run 验证流程,确认无误后实盘启动
# 模拟运行(推荐先跑 24 小时验证) python main.py --dry-run

# 实盘启动(确认无误后) python main.py