快速解答
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 日查閱