Web Lukes
📄

📚 Polymarketクオンツ研究まとめ|学術論文が見つけた『取れるエッジ』と自分で検証してみた結果

公開日: 2026/4/11更新日: 2026/4/11

「Polymarketで安定的に勝ってる人は何を見てるんだろう?」

答えの一部は学術論文の中にあります。2024年から2026年にかけて、Polymarketの**実データ(ブロックチェーン上の全取引)**を使った大規模な研究論文が複数公表されていて、どこに統計的なエッジがあり、どこに無いのかがかなり具体的に分かってきています。

この記事では:

  1. 読むべき学術論文3本を初心者向けに要約
  2. そのうち最も基本的な「favorite-longshot bias」を自分のマシンで実測してみた結果
  3. 学術発見を一般ユーザーがどう使えるかの現実的な指針

学術ソースと私の実測コード・実測データを全部載せます。

読むべき論文 3本

論文① Anatomy of Polymarket(2026年3月、arXiv)

arXiv:2603.03136 "The Anatomy of Polymarket: Evidence from the 2024 Presidential Election"

2024年米大統領選挙市場(数十億ドル規模)の全on-chain取引データを分解した研究。主な発見:

  • 出来高が増えるほど裁定余地が縮小した(市場は効率化した)
  • Kyle's λ(流動性への影響力の指標)が10分の1以下に減少
  • クロスマーケット参加者(複数市場をまたぐ裁定プレイヤー)が急増

含意: 大きく流動性のある市場はすでにかなり効率的。小口の素人が「市場の歪みを見つけて大儲け」できる余地はほとんど残っていない。

論文② Unravelling the Probabilistic Forest(2025年8月、arXiv)

arXiv:2508.03474 "Unravelling the Probabilistic Forest: Arbitrage in Prediction Markets"

2つのタイプの裁定機会を実データで計測した研究:

  1. Market Rebalancing Arbitrage: 単一マーケット内で、YES + NOの合計価格が$1から乖離している瞬間
  2. Combinatorial Arbitrage: 関連する複数マーケット(例:選挙のトップN候補)を組み合わせて作る合成裁定

発見:

  • 実現済み裁定利益: 約 $40,000,000(これまでに抽出された総額)
  • NegRisk市場(multi-condition)は8.6%の機会しかないのに、利益の73%を生む
  • 資本効率で言うと29倍の差(NegRisk集中戦略の有利さ)

含意: 裁定で稼ぎたいなら、単純な2値市場ではなくNegRisk市場を狙う。ただしハイスピード bot の独壇場なので、手動では遅すぎる。

論文③ Who Wins and Who Loses(2026年3月、SSRN)

SSRN:6443103 "Who Wins and Who Loses In Prediction Markets? Evidence from Polymarket"

124+ 百万トレードの巨大データセットでユーザーごとの損益を分析した研究。

発見:

  • トップ1%のユーザーが総利益の84%を独占
  • 利益は「市場予想を上回る精度で将来を当てられた少数派」にほぼ全て流れる
  • 92.4%のウォレットは損失で終わる

含意: 「みんなが少しずつ勝つ」市場ではなく、ごく少数が多数から搾取する構造。以前の記事で書いた「生存者バイアス」の裏付けとしても使えます。

古典的な統計バイアス:Favorite-Longshot Bias (FLB)

もう1つ、学術界で50年以上研究されている古典バイアスがあります。

FLBの定義: 低確率の「一発逆転」市場(longshot)は実現確率より割高で取引され、高確率の本命市場(favorite)は実現確率より割安で取引される傾向。

つまり:

  • 10¢以下で買うYESは、実際には4%以下しか勝たない(10%の実現確率を下回る)
  • 90¢以上で買うYESは、実際には93%以上勝つ(90%の実現確率を上回る)

予測市場研究の代表的まとめ論文では、競馬・スポーツブック・株式オプション・予測市場で一貫してFLBが観測されると報告されています。

💡 なぜFLBが起きるのか: 行動経済学では「人は一発逆転に幻想を抱く(longshotの過剰評価)」「リスク回避層が本命に流入して価格を押し上げる前に売り抜ける(favoriteの売られすぎ)」などが候補とされています。

自分のマシンで実測してみた

論文は読めますが、本当に今のPolymarketでFLBが観測できるかは自分で試したくなります。Polymarketは全取引が公開されているので、数分のコードで検証できます。

測定手順

  1. gamma-apiでclosed(決着済み)市場を1,000件取得
  2. スポーツ以外・2値市場・出来高5万ドル以上にフィルタ → 136件が検証対象
  3. 各市場の勝った側のトークンの価格履歴をclob.polymarket.com/prices-historyから取得
  4. 決着24時間前の価格を読む(これが市場の「最終予想確率」)
  5. 価格レベル(10%刻みのバケット)ごとに「勝った実績」を集計

勝者トークンは確率 pw で pre-resolution なら:

  • 勝者のバケット bucket(pw) → wins += 1, total += 1
  • 敗者(同じ市場の反対側)のバケット bucket(1 - pw) → wins += 0, total += 1

テストコード(完全再現可能)

Python
# 07_flb_test.py
import requests, ast, time
from collections import defaultdict
from datetime import datetime, timezone
SPORT_KEYWORDS = ['nba','nfl','mlb','nhl','epl','vs ','vs.','counter-strike','cs2']
def is_sport(q):
return any(k in q.lower() for k in SPORT_KEYWORDS)
# 1. closed marketsを大量取得
markets = []
offset = 0
while len(markets) < 1000:
r = requests.get(
'https://gamma-api.polymarket.com/markets',
params={'closed':'true','limit':100,'offset':offset,'order':'volume','ascending':'false'},
timeout=20,
)
batch = r.json()
if not batch: break
markets.extend(batch)
offset += 100
if len(batch) < 100: break
time.sleep(0.2)
# 2. 非スポーツ・2値・ボリューム5万以上でフィルタ
parsed = []
for m in markets:
q = m.get('question','') or ''
if is_sport(q): continue
try:
outcomes = ast.literal_eval(m.get('outcomes','[]'))
prices = ast.literal_eval(m.get('outcomePrices','[]'))
tids = ast.literal_eval(m.get('clobTokenIds','[]'))
except: continue
if len(outcomes)!=2 or len(prices)!=2 or len(tids)!=2: continue
fp = [float(p) for p in prices]
if sorted(fp)!=[0.0,1.0]: continue
if float(m.get('volumeNum',0) or 0) < 50000: continue
winner_token = tids[fp.index(1.0)]
end_ts = int(datetime.fromisoformat(m['endDate'].replace('Z','+00:00')).timestamp())
parsed.append({'winner_token':winner_token,'end_ts':end_ts})
# 3. 各市場の勝者トークン価格履歴を取得して24h前の価格を集計
buckets = defaultdict(lambda: [0, 0])
for m in parsed[:300]:
for params in [{'interval':'1m','fidelity':60},
{'interval':'1w','fidelity':360},
{'interval':'max','fidelity':360}]:
r = requests.get('https://clob.polymarket.com/prices-history',
params={'market':m['winner_token'], **params}, timeout=10)
h = r.json().get('history', [])
if len(h) < 3: continue
target_t = m['end_ts'] - 86400
best = next((pt for pt in reversed(h) if pt['t'] <= target_t), h[0])
pw = float(best['p'])
if 0.02 < pw < 0.98:
break
else:
continue
bw, bl = min(int(pw*10),9), min(int((1-pw)*10),9)
buckets[bw][0] += 1
buckets[bw][1] += 1
buckets[bl][1] += 1
time.sleep(0.08)
# 4. レポート
for b in range(10):
w, t = buckets.get(b, [0,0])
if t==0: continue
implied = (b+0.5)/10
actual = w/t
print(f'[{b*10}-{(b+1)*10}%] implied={implied:.2f} actual={actual:.2f} diff={actual-implied:+.2f} n={t}')

実測結果

私のWindows機での実行結果(136市場中30市場で有効な価格履歴が取得できて、60件の観測を得ました):

価格バケット市場の予想確率実際の勝率差分N
[0-10%]0.0500.000-0.0502
[10-20%]0.1500.000-0.1501
[40-50%]0.4500.684+0.23419
[50-60%]0.5500.400-0.15035
[80-90%]0.8501.000+0.1501
[90-100%]0.9501.000+0.0502

読み方

  • 極端な両端では古典的 FLB が実データで確認できました
    • 低確率バケット(0-20%): 実績0% → longshotは割高で負けている
    • 高確率バケット(80-100%): 実績100% → favoriteは割安で勝っている
  • 中間バケット(40-60%)は騒がしい: N=19/35 と観測数は多いが、40-50% が異常に高く、50-60% が低い。これはサンプル偏り(一部の市場が過剰に反映されている)と見るべき
  • 全60観測なので、厳密な学術テストには遠く及ばない — が、方向性は論文と一致

重要な留保:

  • N=60 は統計的にはごく小規模
  • closedマーケットの多くはprices-historyが十分に返らず(136→30件に激減)
  • PolymarketのIMDEA研究論文は86百万ベットで同じバイアスをもっと厳密に測定している。「正確な数字が知りたければ論文を読め、手触りが知りたければ自分で叩け」という立ち位置の記事です

素人が学術発見をどう使えるか

上記の研究と実測から、初心者が現実的に取れる指針を整理します。

✅ 取れる教訓

  1. $0.95以上の本命をNOで売る戦略は期待値が危険に近い(FLBが逆方向)
  2. $0.05以下のlongshotをYESで買う戦略は長期的に負ける(FLBの直接適用)
  3. 裁定で稼ぎたいならNegRisk市場に集中(8.6%の機会で73%の利益)
  4. 高出来高の主要市場は効率的すぎる — 歪みを探すなら地味なローカル市場のほうが残っている可能性が高い
  5. 自分が top 1% に入る前提を疑う — 92.4%は負けるので、最初の1,000時間は学習・紙トレで十分

❌ 取れない戦略

  1. 「$0.92で買って$0.97で売る」などの短期マイルストーンスカルプ(別記事で手数料式で数学的に崩した通り)
  2. BTCやWTIの価格マイルストーン市場を予測として使う(これらはスポットの非線形再表示にすぎない)
  3. 有料Telegram botのコピートレード(盗難事件が実在)

まとめ

  • Polymarketの学術研究は2024-2026年で急速に蓄積中。大規模な on-chain データで市場効率と歪みが定量化されている
  • FLB(favorite-longshot bias) は50年以上の歴史を持つ古典バイアスで、私の小規模テストでも極端バケットで確認できた
  • 裁定は NegRisk 市場で 73% の利益が生まれている(ただし bot 勢の独壇場)
  • トップ1%が84%の利益を取る構造なので、自分が "普通の人"の側にいる前提を疑うこと
  • gamma-api + clob.polymarket.com/prices-history で数十行のコードから誰でもバイアスを実測可能

「予測市場は誰でも勝てる」という甘い話は論文が一貫して否定しています。でも逆に、「どこで負けやすいか」を知れば、負けない戦略は組める。そこが学術研究を読む価値です🔥

参考リンク

🎁おすすめツール・サービス

FX自動売買VPSなら50%OFF

キャンペーンで月1,790円〜。MT4/MT5プリインストール済み、自動復旧機能付き。14日間無料お試し。

シンクラウドデスクトップ for FX
ゴトー日EAを探しているならソースコード付

4年で資金4.7倍のバックテスト実績。ソースコード付きで自由にカスタマイズ可能。

ゴトー日EA Ultimate版(3,980円)

※上記リンクにはプロモーション(広告)が含まれています

🔮
MEMBERSHIP

量子相場謀略|ホソノP

ブログでは書けない本音のトレード戦略とEA開発の裏側を公開。 データに基づいた検証で、再現性のある手法だけをお届けします。

✓EAソースコード公開
✓バックテスト生データ共有
✓リアルタイム相場分析
✓メンバー限定記事
メンバーシップに参加する※ noteアカウントで簡単登録

📚あわせて読みたい

📄

💰 Polymarketで『実際に機能する』戦略はどれか|本命逆張り戦略のバックテストで+13.9%/取引を実測

Polymarket予測市場で本当に勝てる戦略を実データでバックテスト。本命への逆張り(favorite-longshot biasの活用)、Fed予測市場の情報価値、地域ニッチ市場の可能性を、公開APIと実際の決着済み市場で検証。小規模ながら学術文献と一致する結果を得たのでコード・データ・結論を全公開。

予測市場2026/4/11
📄

🏦 fredapi × Polymarket で Bloomberg Terminal($2,000/月)を置き換える|Fed過去データ+市場の未来予想を1記事で

fredapiでFRB公開マクロデータを取得し、Polymarketで次回FOMC会合の市場予想確率を取得して重ねるワークフロー。無料APIキーの取り方、実コード、2026年4月Fed会合の実データを使った初心者向けチュートリアル。Bloomberg Terminal代替スタックの決定版。

予測市場2026/4/11
📄

📈 lightweight-chartsでPolymarket価格履歴を可視化|TradingView Proの代替を45KBで作る

TradingView公式のlightweight-charts(45KB)で、Polymarketから取得した価格履歴を自分のブラウザで可視化するハンズオン。CSV/JSON変換、0.5五分五分ラインの描画、ダークテーマ設定まで。実ファイル付きで動作確認済み。

予測市場2026/4/11
📄

📊『5分BTC市場で1日$100稼ぐ』3戦略を手数料の数式で全部検証してみた|Polymarketスカルプ・リバーサル・MM

SNSで回ってくる『Polymarket 5分BTC Up/Down市場で1日$100稼ぐ3戦略』を数式で検証。Polymarket公式の手数料公式 C×feeRate×p×(1-p) を使って、スカルプ/リバーサル/マーケットメイクそれぞれの本当の期待値を計算。初心者向け。

予測市場2026/4/11
📄

🎯 Polymarket 初心者入門|予測市場・CLOB・公式Python SDKを無料で触ってみる

予測市場Polymarketの仕組みを初心者向けに解説し、公式Python SDK py-clob-clientで実際に市場一覧と板情報を取得する実コード付きチュートリアル。認証不要、秘密鍵不要、Python 3.9以上だけあればOK。

予測市場2026/4/11
📄

🚨 Polymarket『AIで爆益』バズ投稿の見分け方|本物のデータと作り話を切り分ける6つのテスト

X(旧Twitter)で繰り返し流れてくる『Claudeに$20渡したら寝てる間に+$102』『$600を1週間で$20,400に』系の投稿を、Polymarket公式APIの実データと数学で検証する方法。初心者が騙されないための6つのチェックリスト、Telegram bot $230K盗難事件、GitHubマルウェアハニーポット対策まで解説。

予測市場2026/4/11