Expected value Polymarket arbitrage: how to calculate EV correctly
ポリマーケット(Polymarket)でのアービトラージ取引の期待値を正しく計算するための実践ガイド。テイカーフィー、部分約定確率、清算リスクを含むステップごとのEV式と動作するコード例を示します。
Expected value Polymarket arbitrage: how to calculate EV correctly
このガイドでは、Polymarketでのインラ・マーケット(intra-market)バイナリ/組合せアービトラージの期待値(expected value)をステップごとに計算する方法を示します。テイカーフィー、部分約定確率、清算リスクを含め、名目上の価格差を実運用に使えるEV推定に変換する式を提供します。
重要ポイント
- EV = (支払額 − コスト − 手数料) × 約定確率 − 部分約定と清算タイミングによる下振れ損失。
- テイカーフィーと期待される部分約定率を必ず含めること。Polymarketではメーカーフィーはゼロなので、パッシブ流動性に張り付く場合のみ関係する。
- 部分約定が小規模ならベルヌーイや二項分布の単純モデルを使う。複数価格レベルにまたがる実行はモデルをスケールする。
- 絶対に「リスクフリー」と呼ばないこと — 解決(UMA)リスク、スリッページと部分約定、手数料、スマートコントラクトや時間的リスクを列挙する。
1. EVの基本原理(予測市場アービトラージ)
原理に立ち返る。完全に成功したアービトラージ(完全なアウトカムセットを買う)はコストC(買ったベストアスクの合計とテイカーフィー)を消費し、解決後に1.00ドル/セットで償還される。名目上のエッジは:
Edge = 1.00 − C
手数料と実行リスクを無視した期待値は単純に1セット当たりのEdgeである。実運用では、EV(期待金銭的利得)に変換するために、手数料、表示価格で約定する確率、部分約定の可能性を織り込む必要がある。
EV_basic = Edge × FillProbability − Fees_expected
次節でFillProbabilityとFees_expectedを詳細化する。
2. テイカーフィーと清算フローの組み込み
Polymarketのテイカーフィーは市場カテゴリによって変動し、現在は0%〜1.8%の範囲にある。メーカーフィーはゼロである。アービトラージでは通常、スプレッドを跨ぐ実行レッグに対してテイカーフィーを支払う。
N個のアウトカム(マルチアウトカムでの完全セット、またはバイナリのYESとNO両方)を買うとき、総額コストを次のように計算する:
C_gross = Σ bestAsk_i
テイカーフィーはベーシスポイントかパーセントで表される。fee_rateをテイカーフィー(小数)とすると、概算手数料は:
Fees = fee_rate × C_gross
一部のレッグがメイカーとして約定した場合(タイトなアービトラージでは稀)それらは手数料ゼロとなる。C_grossをメイカー/テイカー部分に分割してモデル化する。
Net cost C_net = C_gross + Fees
完全約定して償還可能な場合の名目利益は:
Profit_full = 1.00 − C_net
ただしProfit_fullはFillProbability_fullでしか実現しないため、EV寄与はProfit_full × FillProbability_fullとなる。
3. 部分約定と非対称実行のモデル化
部分約定は実損の最も一般的な原因である。例:
- YESが完全に約定するがNOが部分的にしか約定しない。保有が片側に偏り、対応するヘッジが不足する。
- 約定が複数の価格レベルにまたがり、実際のC_grossが表示された最良注文の合計より高くなる。
小規模注文のシンプルで有用なモデルは、表示ベストアスクに対するレッグごとのベルヌーイ約定確率である。大口では二項分布や価格レベルごとの確定的スライス和としてモデル化できる。
計算で使う表記:
- q_i = レッグiの意図した数量(アウトカムシェア)
- f_i = 表示ベストアスクでq_iが完全約定する確率
- r_i = レッグiの期待約定比率(0 ≤ r_i ≤ 1)
部分約定が起こり得るときの期待コスト:
E[C_gross] = Σ (bestAsk_i × q_i × r_i)
期待手数料は比例的に従う:
E[Fees] = fee_rate × E[C_gross] (テイカー執行分)
だが部分約定は非対称な残存ポジションを生む。保守的な一般的手法は、未約定の単一アウトカム・ポジションは直ちに不利なミッド/アスクで解消しなければならないと仮定し、その解消による期待損失をEVに含めることである。
例:完全なセットを買うつもりが平均でNOが90%しか約定しないなら、あなたは支払った価格p_yesで10%分のYESを保有し続けることになる。最悪ケースの残存損失はおおむね0.90 × (p_yes − mid_unwind_price)(ティックサイズと手数料を調整)になる。期待残存損失項L_residualをEVに含める。
4. 実装可能なステップ・バイ・ステップEV式
定義:
- n = セット内のアウトカム数(バイナリはn=2)
- ask_i = アウトカムiの最良アスク価格(ドル)
- q = 目標となる完全セット数量(シェア;例: 10セット)
- fee = テイカーフィー率(小数;例 0.006=0.6%)
- r_i = レッグiの期待約定比率(0..1)。完全約定確率はr_i=1.0を使用。
- p_unwind_i = 残存ポジションを閉じるときに想定する価格(保守的には現在の最悪アスクかミッドを使用)
計算手順:
- E[C_gross] = Σ_i ask_i × q × r_i
- E[Fees] = fee × E[C_gross]
- E[C_net] = E[C_gross] + E[Fees]
- 償還時の期待払戻 = q × 1.00 × P_redeem (P_redeemは最終的に償還可能である確率。通常UMAの争議がない場合は1.0だが、争議リスクを下で考慮する)
- 期待残存損失 L_residual = Σ_i max(0, q × (1 − r_i) × (paid_price_i − p_unwind_i))
最終的なEV推定:
EV = q × P_redeem − E[C_net] − L_residual
1セットあたりのEVを求めるならEVをqで割る。
P_redeemについての注意:UMAの争議は償還を一時停止することがある。P_redeem ≤ 1.0と設定して争議リスクを反映せよ。多くの市場ではP_redeem ≈ 1.0と扱えるが、遅延や争議の可能性を明示的に織り込む必要がある。
5. 数値例(バイナリ)— 実装可能かつ保守的
小さなバイナリアービトラージを想定し、YESとNOを各ベストアスクで買って100セットを取得する場合を考える。数値は説明用の例であり、手数料は文書化された範囲内に収める。
- ask_YES = $0.49
- ask_NO = $0.50
- q = 100 セット
- fee = 0.006 (0.6% テイカーフィー)
- r_YES = 1.0, r_NO = 0.95 (NOは第1レベルで部分的に約定する可能性)
- p_unwind_NO = $0.52 (残存NOを売る想定価格)
- P_redeem = 1.0 (最終的に償還可能と仮定)
E[C_gross] = (0.49 + 0.50) × 100 × average_r
より正確には:
E[C_gross] = (0.49 × 100 × 1.0) + (0.50 × 100 × 0.95) = 49.00 + 47.50 = 96.50
E[Fees] = 0.006 × 96.50 = 0.579
E[C_net] = 96.50 + 0.579 = 97.079
払戻 = 100 × 1.00 = 100.00
L_residual: あなたは100 NOを期待していたが95しか得られなかったため、完全セットを持つつもりなら5の不足が発生する。部分約定は反対側(YES)に5の残存を生む。あなたが支払った0.49のYESをp_unwind_YESで解消する必要がある。対称性のため、誤約定したレッグに対する保守的な残存損失の見積は次のようになる:
L_residual = (q × (1 − r_NO)) × (paid_price_NO_unpaired − p_unwind_NO)
未約定側がより高価な場合はその損失を含める。数値を保守的に代入してEVの過大評価を避けよ。
最終EV = 100 − 97.079 − L_residual
L_residualが小さければトレードは正のEVを保つ。L_residualが名目エッジを上回ればトレードは負のEVになる。注文を出す前にこの計算をプログラムで実行せよ。
6. 実用的なJavaScriptスニペット
このスニペットは与えられた入力から1セット当たりのEVを計算する。正しいJavaScriptで、リスク管理フレームワークにそのまま組み込める。
function computeEVPerSet(asks, r, fee, p_unwind, P_redeem = 1.0) {
// asks: array of best asks for each outcome, e.g. [0.49, 0.50]
// r: array of expected fill fractions for each outcome, e.g. [1.0, 0.95]
const n = asks.length;
const q = 1; // per-set basis
const E_C_gross = asks.reduce((s, a, i) => s + a * q * r[i], 0);
const E_Fees = fee * E_C_gross;
const E_C_net = E_C_gross + E_Fees;
// Residual loss: assume unfilled fraction must be closed at p_unwind
const L_residual = asks.reduce((s, a, i) => {
const unfilled = q * (1 - r[i]);
const paid_price = a; // price you paid for filled portion of this outcome
const unwind_price = p_unwind[i];
return s + Math.max(0, unfilled * (paid_price - unwind_price));
}, 0);
const EV = q * P_redeem - E_C_net - L_residual;
return { EV_per_set: EV, E_C_gross, E_Fees, L_residual };
}
// Example
const asks = [0.49, 0.50];
const r = [1.0, 0.95];
const fee = 0.006; // 0.6%
const p_unwind = [0.48, 0.52];
console.log(computeEVPerSet(asks, r, fee, p_unwind));
p_unwindの値は保守的に設定せよ(最悪のアスクかミッドを使用)。rはあなたが取引するサイズに対する履歴的約定率に基づいて設定する。
7. ライブ取引の実務的なコツ
- 銘柄とサイズごとに経験的な約定率を測定せよ。短い頻度での計測ウィンドウを使え。マイクロ構造は市場ごとに変わる。
- 大口は小さなスライスに分けて部分約定リスクを減らし、BuilderやRelayerの制限内に留める。
- ティックサイズの挙動に注意:価格が極端近傍にあるとティックが$0.001に狭まることがあり、アンワインド時のスリッページが変わる。
- UMAの争議と清算タイミングリスクをP_redeemに含める。争議は清算を一時停止し、機会費用に影響する。
- 地理的制限を尊重する:市場はIPでジオブロックされている。VPN回避は決して推奨しない。
取引への影響
注文を送る前に1セット当たりのEVを計算し、資本コスト、ロックされたpUSDの機会費用、争議遅延の潜在コストを既に含む社内の最低許容EVと比較せよ。小規模で頻繁なアービトラージでは、手数料と期待残存損失を差し引いたあとに適度な正のEVがないと運用コストを正当化できない。
主要キーワードで締める:expected value Polymarket arbitrageは常に保守的に計算し、テイカーフィーと部分約定確率を明示的にモデル化すべきである。
よくある質問
大きな注文の部分約定確率はどうモデル化すべきか?
取るべきはトレードするサイズでの経験的約定率から始めること。小さい単位ならスライスごとのベルヌーイ仮定を使い、大きいサイズは価格レベルにまたがる二項和や履歴的オーダーブック深度を使って確定的にスライスする。r_iの推定は保守的に行え。
EV計算にどの手数料を含めるべきか?
実行されたレッグに対するテイカーフィーを含めよ — Polymarketのテイカーフィーはカテゴリにより現在0%〜1.8%の範囲である。メイカーフィーはゼロである。手数料はfee_rate × 実行コストとモデル化し、実行コストをメイカー/テイカー部分に分けて扱う。
UMAの争議をEVに含める必要はあるか?
ある。UMAの争議は清算を一時停止させたりタイミングを変えることがある。争議確率と清算遅延による期待時間価値コストを反映するためにP_redeem ≤ 1.0を含めよ。
後でリバランスするつもりなら残存アンワインド損失を無視してよいか?
否。残存ポジションは市場リスクと方向性リスクを負う。EVモデルには保守的なアンワインド価格(p_unwind)を含めよ。既に文書化され、統計的に正当化された再バランス計画と既知の費用がある場合は別である。
名目上のエッジはEVと同じか?
否。名目エッジ = 1.00 − Σ bestAsk_i。EVはテイカーフィー、部分約定確率、残存アンワインド損失、清算/争議リスクを考慮してそのエッジを調整したものである。意思決定にはEVを使え。
参照用語
関連ガイド
教育目的の情報のみ。金融・法務・税務の助言ではありません。Polymarket はお住まいの地域で利用できない場合があります。