Resolution-Aware Perpetual Futures (PIRAP) on Binary Prediction Markets
Authors: Maksym Nechepurenko (2026) Source: arXiv:2605.10400 (preprint, công bố 11/05/2026) Tag:
moi:2026-05-16#perpetual-futures#prediction-markets#polymarket#derivatives-design#preprint
Ý tưởng cốt lõi
Nechepurenko (2026) đề xuất PIRAP — Polymarket Index Resolution-Aware Perpetual — một framework thiết kế hợp đồng perpetual futures cho binary prediction markets (ví dụ: "Sẽ có suy thoái 2026?", "Đảng nào thắng bầu cử?"). Vấn đề cốt lõi: prediction market underlying có cấu trúc bounded-event (giá trị resolve về 0 hoặc 1 tại moment cụ thể), khác hoàn toàn với crypto perpetuals truyền thống mà underlying là continuous price (BTC, ETH). Việc dùng nguyên xi cấu trúc perpetual cũ (basis funding + static vol-margin) sẽ gây thảm họa khi event resolve.
PIRAP gồm 6 thành phần cốt lõi:
- Index estimator: kết hợp mid-price, depth-weighted mid, và time-decayed VWAP — ổn định hơn raw mid trong order book mỏng.
- Jump-aware tiered margin: margin tính theo terminal-collapse magnitude bị bounded — không scale theo continuous vol như BTC perp.
- Leverage compression schedule: leverage tối đa giảm dần khi gần resolution — chống cascade liquidation tại moment-of-truth.
- Resolution-aware funding rule: funding có "boundary-aware correction" — khi giá gần 0 hoặc 1, funding chuyển sang dạng asymmetric để tránh manipulation.
- Multi-stage halt protocol: tạm dừng giao dịch theo từng giai đoạn khi có dấu hiệu pump/dump bất thường (giống circuit breaker NYSE nhưng calibrated cho prediction market).
- Eligibility framework: chỉ market có depth/volume tối thiểu được phép listing perpetual.
Hai mệnh đề non-portability propositions chứng minh: standard basis-only funding + continuous-vol static margin không thể safely áp dụng cho underlying là bounded-event.
Empirical evaluation: PMXT v2 archive Polymarket cho period 21/04/2026 - 27/04/2026, sample 13.298 markets pass adequacy gates (từ 61.087 ingested), 13.115 resolved trong empirical window.
Ý nghĩa: đây là một trong những bài đầu tiên thiết kế derivatives layer trên prediction markets — đây sẽ là mảnh đất alpha mới khi Polymarket, Kalshi, và các venue prediction khác mở rộng dần.
Ứng dụng giao dịch chính
Hai phân khúc:
Maker/market designer: nếu bạn build platform offering perpetuals on prediction markets, dùng PIRAP framework để (a) tránh tail risk catastrophic, (b) attract liquidity provider, (c) compliance-friendly với regulator.
Taker/trader: hiểu mechanics PIRAP để arbitrage và position properly:
- Funding arbitrage: khi funding rate "đè" mạnh xa rồi resolution, có thể short perp + long spot (or vice versa) để extract carry mà không bị tail risk.
- Leverage compression front-running: leverage cap giảm dần khi gần resolution → traders bị forced de-lever → cascade selling/buying — pattern có thể dự đoán.
- Resolution boundary play: khi giá perpetual lệch xa "fair" implied probability từ underlying market (e.g. perpetual price 0.85 vs Polymarket spot 0.78), arb opportunity.
Áp dụng đa thị trường
Crypto perpetual futures (BTC/ETH perp traditional)
- BTC/ETH perp KHÔNG cùng cấu trúc bounded-event → toàn bộ framework PIRAP không apply trực tiếp.
- Tuy nhiên, một số insight có thể port:
- Index estimator combining depth-weighted mid + VWAP: nhiều exchange đang dùng — paper formalize cách combine.
- Multi-stage halt protocol: Binance/Bybit đã có "auto-deleveraging" nhưng thiếu tiered halt — đây là lesson để cải thiện.
Crypto spot
- Không trực tiếp áp dụng.
- Indirect: khi event-linked perpetual phát triển, sẽ tạo signal cho crypto spot — ví dụ "BTC giá > $200K cuối 2026" perp giá thay đổi → có thông tin về sentiment macro liquid mà spot không có.
Polymarket / Kalshi / Augur (prediction markets)
- Đây là sản phẩm chính của paper. Trader trên Polymarket có thể dùng PIRAP framework để:
- Đánh giá fair value của perpetual price khi market launch perpetual layer (Polymarket đang test).
- Identify mispricing giữa spot prediction market và perpetual layer.
- Position theo "boundary effect" gần resolution date.
US equity futures (ES, NQ, RTY)
- Một số derivatives trên equity index có cấu trúc gần giống bounded-event: binary options, knock-out options, weekly options gần expiry với strike rất ATM.
- Framework PIRAP có thể inspire risk management cho 0DTE option market making — vốn cũng có "terminal collapse" tại expiry.
VN30F (Hợp đồng tương lai chỉ số)
- Không áp dụng trực tiếp vì VN30F là continuous-underlying.
- Indirect lesson: cấu trúc margin tiered theo time-to-expiry (đặc biệt cuối phiên đáo hạn) có thể được institutionalize theo PIRAP design.
Cân nhắc cross-market chung
- Bounded vs continuous underlying là phân biệt fundamental khi thiết kế derivatives — không thể "one-size-fits-all".
- Lý thuyết của Nechepurenko mở ra subfield mới: event-linked derivatives sẽ là một lớp tài sản riêng trong 2-3 năm tới.
Minh họa Python
import numpy as np
import pandas as pd
def index_estimator_pirap(orderbook: dict,
recent_trades: pd.DataFrame,
decay_halflife_sec: float = 30) -> float:
"""
Index estimator PIRAP: kết hợp mid-price, depth-weighted mid, time-decayed VWAP.
orderbook: {'bid': [(price, size), ...], 'ask': [(price, size), ...]}
recent_trades: DataFrame [ts, price, size], index trades gần nhất.
"""
# 1. Mid price (best bid + best ask) / 2
best_bid = orderbook['bid'][0][0]
best_ask = orderbook['ask'][0][0]
mid = (best_bid + best_ask) / 2
# 2. Depth-weighted mid (5 levels mỗi bên)
bid_levels = orderbook['bid'][:5]
ask_levels = orderbook['ask'][:5]
total_bid_size = sum(s for _, s in bid_levels)
total_ask_size = sum(s for _, s in ask_levels)
weighted_bid = sum(p * s for p, s in bid_levels) / total_bid_size if total_bid_size > 0 else best_bid
weighted_ask = sum(p * s for p, s in ask_levels) / total_ask_size if total_ask_size > 0 else best_ask
dw_mid = (weighted_bid * total_ask_size + weighted_ask * total_bid_size) / (total_bid_size + total_ask_size)
# 3. Time-decayed VWAP
now = recent_trades.index.max()
dt = (now - recent_trades.index).total_seconds()
weights = np.exp(-dt * np.log(2) / decay_halflife_sec)
vwap = (recent_trades['price'] * recent_trades['size'] * weights).sum() / (recent_trades['size'] * weights).sum()
# 4. Combine — equal weight 3 estimators
return (mid + dw_mid + vwap) / 3
def leverage_compression_schedule(current_time: pd.Timestamp,
resolution_time: pd.Timestamp,
initial_max_leverage: float = 10.0) -> float:
"""
Leverage cap giảm dần theo distance-to-resolution.
Inspired by PIRAP — full leverage khi xa, compress khi gần.
"""
hours_to_resolution = (resolution_time - current_time).total_seconds() / 3600
if hours_to_resolution <= 0:
return 1.0
if hours_to_resolution >= 24 * 7: # > 1 tuần
return initial_max_leverage
if hours_to_resolution >= 24: # 1-7 ngày
return initial_max_leverage * 0.5
if hours_to_resolution >= 4: # 4h-1d
return initial_max_leverage * 0.2
return initial_max_leverage * 0.05 # < 4h: very conservative
def funding_boundary_correction(perp_price: float,
spot_implied_prob: float,
base_funding_rate: float = 0.0001) -> float:
"""
Boundary-aware funding: khi gần 0 hoặc 1, funding asymmetric để chống manipulation.
"""
# Distance to nearest boundary
distance = min(spot_implied_prob, 1 - spot_implied_prob)
boundary_multiplier = 1.0 if distance > 0.20 else (distance / 0.20) ** 2
basis = perp_price - spot_implied_prob
return base_funding_rate * np.sign(basis) * abs(basis) * boundary_multiplier