PolyEdge
Browse documentation

Reverting Bot

On every BTC up/down window one side eventually trades cheap. The Reverting Bot buys that cheap side — but only when it is cheap for the right reason. A side under 20¢ is either a transient dip in a market that is still a coin-flip, or a market that has already decided and is correctly pricing a loser. The first reverts; the second does not. Telling them apart is the entire strategy.

Why the underlying move separates them

Backtesting 562 resolved BTC windows showed the split cleanly. The discriminator is how far the underlying has moved from the price at the window's open (the “strike”) at the moment you would enter:

Underlying move vs strike at entryOutcome
Under 5 bps (spot ≈ strike)~22% win rate, +22% ROI — a revertible dip from transient book pressure
10–20 bps (a decisive trend)~7% win rate, −60% ROI — cheap for a reason

Buying anything at or under 20¢ indiscriminately returns roughly +7% and is fragile — cheap longshots are, if anything, slightly overpriced. The edge lives entirely in fresh, at-the-strike dips inside a window that is still moving.

The four gates

Every gate must pass on the same 1-second tick before the bot commits. You tune all four.

  • Price in band — the side's ask sits inside your entry band (the “20¢ rule”)
  • Reversion — the underlying is still within your bps tolerance of the window-open strike, read off the TWAP stream the market resolves on
  • Time — enough seconds remain in the window for a fill to land and revert
  • Volatility — trailing realized volatility is above your floor, because reversion needs movement

There is an optional fifth: a bounce gate that waits until the cheap side is already recovering, so you buy a reversion in progress rather than a falling knife. It is off by default.

Which price the gate reads — TWAP, not spot

On 7 August 2026 Polymarket changed how these markets settle. They no longer compare a snapshot of the Chainlink price at the window's close; they compare a time-weighted average price (TWAP) published as its own Chainlink stream. Each market names the stream it resolves against in its own rules text — 30-second TWAP for 5-minute windows, 60-second for 15-minute ones — and the bot reads that text per market rather than assuming a date, so a staggered rollout or a changed averaging window follows automatically.

Both ends of the reversion gate are read off that same stream: the window-open strike and the live comparison price. That is measured, not assumed. Replaying 2,487 resolved windows, taking both endpoints from the market's own TWAP stream reproduced the actual winner 100.000% of the time, while taking the opening strike from the spot stream scored 95.6% — wrong on 109 windows.

Note
Reading the gate off the wrong feed flips the decision on exactly the trades that carry the edge. The reversion gate is a settlement comparison at a 5 bps tolerance, and the spot and TWAP streams differ by that same order of magnitude — as does an exchange feed such as Binance BTC/USDT, which ran roughly 4 bps off Chainlink on precisely the near-tie windows this bot targets. The gate panel names the stream it is reading, so you can always see which price your strike came from.

One gate deliberately still reads spot: trailing volatility. That gate asks whether the underlying is moving, and a 30-second average smooths away most of the movement it exists to detect. Settlement comparisons follow the settlement source; a movement detector does not.

Holding to resolution

Once filled, the position is held until the market resolves. There is no take-profit and no stop-loss on the position itself, and that is deliberate: the payoff is the $1 tail on a ~17¢ entry — roughly 5×. Selling the bounce caps that tail while keeping every loser, which tested negative-EV. Risk is managed by position sizing and the daily stop instead, not by exiting.

Every subscriber runs their own parameters

This bot does not ship a single shared configuration. Each account is seeded its own starting values, spread deterministically around the researched baseline, and the bot will not start until you have reviewed and saved them.

The reason is mechanical. The strategy fires into a thin, short-lived sub-20¢ book. If every subscriber ran identical thresholds, they would all arm on the same tick, for the same side of the same window, and compete for the same few contracts — each fill making the next one worse. Staggered thresholds spread out who arms when. When you save, the dashboard tells you whether any other subscriber currently shares your exact entry gates.

Settings

SettingDefaultWhat it does
Max entry price20¢Only buy a side at or below this ask. The edge was measured on the sub-20¢ band.
Min entry price0Floor on the ask, to skip deep-longshot dust. 0 disables it.
Reversion gate5 bpsMaximum adverse move of the underlying from the window-open strike, measured on the Chainlink TWAP stream the market resolves against. The core filter.
Min time left45sSeconds that must remain in the window, so the fill has room to land and revert.
Min trailing volatility5 bpsRealized volatility floor. Dead-calm windows leave a small lead standing and the cheap side loses.
Volatility lookback30sHistory the volatility measurement covers. Shorter reacts faster and is noisier.
Bounce gateoffOptionally require the cheap side to already be rising before entering.
Stake per trade$5Fixed notional per entry. Shares bought = stake ÷ fill price.
Marketable-limit buffer20¢Ceiling above the decision ask. A higher ceiling fills through a latency-driven uptick instead of missing.
Simulated fill latency500msPaper only: the modelled signal→fill gap. The book is re-read after the delay and filled at the then-current ask.
Daily loss stop$20Realized loss for the UTC day that pauses new entries. Applies in paper mode too.
Max open exposure$15Cap on capital in unsettled positions. Applies in paper mode too.

Paper mode is honest about slippage

In paper mode a signal does not fill instantly. The bot commits, waits your configured latency, re-reads the book, and fills at the then-current ask — so a fill can slip worse, or miss entirely if the cheap ask escaped above your limit ceiling. On a 17¢ entry that gap is material, so modelling it keeps paper P&L comparable to live.

Note
Sample-size caveat: the published result (~230 trades, 21.6% win at ~17¢, +25.7% ROI) comes from 2.6 days of 1 Hz recordings. Treat it as promising rather than proven, and let your own paper ledger accumulate before going live. See Paper vs Live Mode.