快速解答
Odds-API.io 两者都帮你算好:/arbitrage-bets 回传跨博彩公司的套利、利润率与金额分配,/value-bets 回传高于精明盘公平线的价格与其期望值 [1] [2]。本教学取得两者、验算数学并列出限制。
你需要准备
你需要准备: 用 Python 取得实时赔率中的 get() 函数,以及至少选定两家博彩公司的密钥 [3]。
获取密钥: Odds-API.io 合作链接
代码测试状态: 本教学的 Python 代码是以 Odds-API.io 文档中公布的范例回应运行测试(2026 年 11 月 3 日查核),并未使用真实 API 密钥。实际回应可能有更多字段;程序只读取文档中列出的字段。
1. 取得套利机会
bookmakers 为必填;minProfit 以百分比表示;includeEventDetails=true 会加上队名。有交易所或预测市场手续费时,利润率以 netOdds 计算 [1]。程序会从各注重新计算利润率作为检查。
# reuses get() from the Python tutorial
arbs = get("/arbitrage-bets", bookmakers="Bet365,SingBet,Betano",
minProfit=1, includeEventDetails="true", limit=50)
for a in arbs:
# re-check the margin ourselves from the legs (netOdds where fees apply)
s = sum(1 / float(l.get("netOdds") or l["odds"]) for l in a["legs"])
mine = (1 - s) / s * 100
ev = a.get("event", {})
print(f'{ev.get("home")} v {ev.get("away")} | {a["market"]["name"]} {a["market"].get("hdp", "")}'
f' | API {a["profitMargin"]:.2f}% vs recomputed {mine:.2f}%')以文档范例(Betfair Exchange 大 2.102 净赔率、Bet365 小 2.05)验算,结果为 3.78%,API 为 3.79%,差异来自四舍五入。
2. 缩放金额分配
optimalStakes 以 totalStake(缺省 1,000)计算;每一注乘上相同倍数,并维持在各注的 maxStake 以下 [1]。可用套利计算机交叉验证。
def scale_stakes(arb, bankroll):
"""Scale optimalStakes to a bankroll, keeping every leg under its maxStake."""
factor = bankroll / arb["totalStake"]
for st in arb["optimalStakes"]:
leg = next(l for l in arb["legs"]
if l["bookmaker"] == st["bookmaker"] and l["side"] == st["side"])
if leg.get("maxStake"):
factor = min(factor, leg["maxStake"] / st["stake"])
return [{**st, "stake": round(st["stake"] * factor, 2),
"potentialReturn": round(st["potentialReturn"] * factor, 2)}
for st in arb["optimalStakes"]]
3. 取得价值投注(+EV)
/value-bets 需要一个 bookmaker;公平赔率来自精明盘组合,EV = 公平機率 × 賠率 − 1 [2]。由于 expectedValue 是小数,可以反推公平概率。任一列都可以用期望值(+EV)计算机与凯利公式计算机验算。
vbs = get("/value-bets", bookmaker="Bet365", sport="football",
includeEventDetails="true")
for vb in sorted(vbs, key=lambda v: v["expectedValue"], reverse=True)[:10]:
side = vb["betSide"]
odds = float(vb["bookmakerOdds"][side])
fair_p = (vb["expectedValue"] + 1) / odds # from EV = p x odds - 1
ev = vb.get("event", {})
print(f'{ev.get("home")} v {ev.get("away")} | {vb["market"]["name"]} {side} @ {odds}'
f' | EV {vb["expectedValue"]:.2%} | implied fair p {fair_p:.1%}')
4. 了解限制
套利结果只限赛前,价格一变就会移除 [1];博彩公司可能限制做套利的帐户 [4]。价值是相对于精明盘共识的估计;请追踪收盘线价值看它是否站得住 [5]。
常见问题
机会多久更新一次?
价值投注每 5 秒、套利每几秒重新计算一次,但请依方案允许的频率轮询。
为什么我验算的利润率略有不同?
四舍五入:API 的 netOdds 是四舍五入后的字符串,差个百分之零点零几是正常的。
+EV 价格一定赚钱吗?
不一定。EV 是长期平均,取决于公平概率的估计,个别结果会有起伏。
关于本指南
Pred-Data 发布关于预测市场及相关 AI 工具的独立解说,所有事实陈述都附上一手或可信的二手来源链接,并于上方日期查核。我们不经营交易平台、不接受投注,也不提供个人化建议。
作者:Ken Lin · 更正:如发现错误,我们会审核并标注修正日期。
联盟行销揭露
本站部分链接(标示“合作链接”)可能是联盟行销链接:若你通过这些链接注册,我们可能获得佣金,你无须支付额外费用。合作链接使用 rel="sponsored nofollow",且不会影响我们的评估。比较表中的平台链接均为官方网站的一般链接,并非联盟链接。
数据源
- Arbitrage Bets guide (formula, response format, limitations) — Odds-API.io docs, 2026 年 11 月 2 日访问
- Value Bets guide (EV formula, response format, limitations) — Odds-API.io docs, 2026 年 11 月 2 日访问
- Quickstart (get a key, first calls, example responses) — Odds-API.io docs, 2026 年 11 月 2 日访问
- What Is Arbitrage Betting? Definition & Example — Odds-API.io glossary, 2026 年 11 月 2 日访问
- Value Bets API: Track Closing Line Value in Python — Odds-API.io blog, 2026 年 11 月 2 日访问