Polymarket Bot Tutorial · Chapter 24 of 32
Polymarket perpetual futures (perps) bot: native 2-25x leverage, funding rate carry, liquidation distance math, ATR-based sizing, vs Binance/Bybit perps. Production-grade rules and code skeleton.
What this chapter covers
Polymarket Perps are a newer instrument with native 2-25x leverage and funding rates. They behave differently from binary markets — liquidation is real, sizing math is different, and the edge sources are not the same as on the prediction-market side. This chapter covers the perps-specific bot patterns.
This is chapter 24 of our 32-part series on building a Polymarket trading bot. We cover the topic in depth across the sections below. Body content for each section is being written and rolled out chapter-by-chapter; FAQ answers and references are already complete and reflect production experience from running our own trader.
- What perps are and why they are different
- Native leverage on Polymarket (2-25x)
- Funding rate mechanics
- Liquidation distance math
- ATR-based position sizing
- Comparison: Polymarket perps vs Binance/Bybit
- Risk: liquidation cascade scenarios
- Code: place a leveraged perp order with stop
What perps are and why they are different
Polymarket Perpetual Futures (launched late 2025) are a different instrument from binary prediction markets. Perps are continuous price exposure to an underlying — BTC, ETH, or others — with native leverage and a funding rate.
Differences from binaries:
- Continuous: no expiration date, no resolution.
- Leveraged: 2x-25x available natively, no proxy contract gymnastics.
- Funded: positive funding pays shorts; negative pays longs. Funding accrues continuously.
- Liquidatable: if margin is exhausted, the exchange force-closes your position. Real loss.
Strategy-wise, perps are CFD trading, not prediction market trading. The edge sources are entirely different — technicals, funding-arb, basis trades, none of which apply to binaries.
Native leverage on Polymarket (2-25x)
Polymarket Perps offer 2x to 25x leverage. The higher the leverage, the smaller the price move that liquidates you.
At 10x leverage, a 10% adverse price move wipes the position. BTC moves 10% within a week with regular frequency, so 10x+ positions held for days have non-trivial liquidation odds.
Practical guidance: 2-5x leverage for swing trades held days-to-weeks; 5-10x for day trades; 10x+ only for sub-hour trades with tight stops. Beyond 10x is gambling for retail; the funding cost + liquidation tail eats expected return.
Funding rate mechanics
Funding is the per-hour payment longs pay shorts (or vice versa) to keep the perp price tethered to the spot price. The rate is computed from the price gap: positive gap → longs pay; negative gap → shorts pay.
Typical magnitudes: 0.01-0.05% per 8-hour period in normal conditions; up to 0.5% per period in extreme moves. Annualized, that's 1-50% — substantial for a strategy that holds positions for days.
Funding can be the entire edge in a strategy: enter the side that gets paid, hedge the price exposure with a spot or another perp. The classic basis-trade arb.
Liquidation distance math
The liquidation price for a long is: entry × (1 - 1/leverage). At 10x, a long entered at $50,000 BTC liquidates at $45,000 (10% adverse).
For a short: entry × (1 + 1/leverage). At 10x short at $50k, liquidation at $55k.
The math is simplified by ignoring the maintenance margin buffer (typically 0.5-1% off the theoretical liquidation price, in your favor). Use the simple math for sanity; check the exchange's actual maintenance margin for the precise number.
Practical: position size + leverage should produce a liquidation distance > 2x the daily volatility of the underlying. For BTC's ~3% daily volatility, that's leverage ≤ 16x for a no-stop position.
ATR-based position sizing
Average True Range (ATR) is a volatility measure: the average daily price range over the last N days. Position sizing on ATR ties risk to current market conditions.
Pattern: risk a fixed dollar amount (e.g. $50) per trade. Position size = risk / (ATR × leverage). If BTC's daily ATR is $1,500 (3% of $50k), and you're 10x leveraged, position size is $50 / (1500 × 0.1) = ~$3,300 notional.
This automatically shrinks positions in high-vol regimes and expands them in low-vol regimes. The key benefit: a single bad day moves your equity by a bounded amount regardless of market regime.
Comparison: Polymarket perps vs Binance/Bybit
Polymarket Perps vs the major CEX perp venues, May 2026.
| Polymarket Perps | Binance Perps | Bybit Perps | |
|---|---|---|---|
| Max leverage | 25x | 125x | 100x |
| Settlement | pUSD on Polygon | USDT on BSC/internal | USDT |
| KYC required | varies by region | yes (most regions) | yes |
| API maturity | new, growing | mature, deep | mature |
| Liquidity (BTC) | moderate | extremely deep | deep |
Polymarket Perps are the right choice when you're already on Polymarket and the operational simplicity of one venue matters. For sole-perp strategies at scale, the CEXes win on liquidity. Most builders we know use Polymarket Perps for the basis-arb with their own binary positions, not as the standalone perp venue.
Risk: liquidation cascade scenarios
The catastrophic perp failure: a single adverse move large enough to liquidate, where the liquidation itself forces book pressure that liquidates more positions.
In 2024-25 CEX history, BTC has had multiple 10-20% intraday moves where 10x+ longs got cascaded out within hours. Polymarket Perps are not immune; the liquidity is thinner and a similar move would liquidate even faster.
Defenses:
- Manual stop above liquidation price: place a hard limit 30-50% inside your liquidation, so you exit before the auto-liquidator does (which costs the liquidation fee).
- Position size limits: never risk more than 10% of equity on a single perp position.
- Halt on regime change: if 24h volatility exceeds 2x baseline, reduce position sizes or pause new entries.
Code: place a leveraged perp order with stop
Reference: the order-placement skeleton for a Polymarket Perp position with a hard stop.
def open_long_with_stop(symbol, entry_px, leverage, risk_usd):
# Compute position size from risk budget
liquidation_px = entry_px * (1 - 1/leverage)
stop_px = entry_px * (1 - 0.7/leverage) # 70% to liquidation
risk_per_share = entry_px - stop_px
shares = risk_usd / risk_per_share
# Place long entry
long_order = perp_api.place_order(
symbol=symbol, side="long", size=shares, leverage=leverage,
order_type="market"
)
if long_order.status != "filled": return None
# Place hard stop just below entry
stop_order = perp_api.place_order(
symbol=symbol, side="close", size=shares, stop_price=stop_px,
order_type="stop_market", reduce_only=True
)
return {"long": long_order, "stop": stop_order}
The reduce-only stop ensures it can only close the existing position, not flip you short. Production additions: trailing stop on profit, funding-cost monitor, position-size halt.





