
Short-duration prediction markets are interesting because their prices don't always move smoothly with the underlying asset.
In crypto markets, BTC can move sharply in one direction, liquidity can temporarily disappear, and the Polymarket price can become stretched before finding a new equilibrium.
That raises an important question:
Can temporary price dislocations in Polymarket be traded with a mean-reversion strategy?
I've been exploring this idea through a TWAP Mean Reversion Trading Bot.
The goal isn't to assume that every sharp move will reverse.
The goal is to identify situations where the market price appears to have moved further than the underlying information justifies—and then execute gradually while continuously testing whether that thesis remains valid.
The Research Hypothesis
The basic hypothesis is:
When a Polymarket contract becomes temporarily mispriced relative to an estimated fair value, the price may partially revert before the market reaches expiration.
For example, suppose an UP contract has been trading around:
$0.55
Then the market suddenly moves to:
$0.47
A simple interpretation would be:
UP became cheaper. Buy it.
But that is not enough.
The important question is:
Why did it become cheaper?
If BTC genuinely changed direction, $0.47 may be the correct new price.
If the move was temporary and the underlying probability hasn't changed as much, then $0.47 may represent a dislocation.
That distinction is the entire strategy.
Fair Value Is the Starting Point
A mean-reversion strategy needs some estimate of fair value.
This doesn't mean predicting the exact final price.
Instead, the model attempts to estimate a reasonable probability based on the current market state.
Potential inputs include:
Conceptually:
BTC Market Data
+
Polymarket Data
+
Time Remaining
↓
Fair Value Model
↓
Estimated Probability
↓
Compare With Market Price
For example:
Estimated fair value = $0.54
Current market price = $0.47
The raw difference is:
$0.54 - $0.47 = $0.07
That's a seven-cent theoretical dislocation.
But the existence of a seven-cent difference doesn't automatically mean there is a trade.
The Difference Between Cheap and Mispriced
This is one of the most important conclusions from thinking about mean reversion.
A contract can be:
cheap
without being:
mispriced.
Suppose BTC experiences a genuine breakout.
The UP contract falls from:
$0.55 → $0.47
The move looks extreme.
A mean-reversion strategy might interpret this as an opportunity.
But if the underlying BTC move fundamentally changed the probability of the outcome, then $0.47 may actually be fair.
The strategy loses because it is fighting new information.
This means price deviation alone is not enough.
A useful mean-reversion signal needs context.
Normalizing the Deviation
A raw price difference is difficult to compare across markets.
A $0.05 deviation in a quiet market may be significant.
The same $0.05 deviation during extreme volatility may be completely normal.
One way to address this is to normalize the deviation by expected volatility:
Normalized Deviation =
(Fair Value - Market Price)
/ Expected Volatility
The idea is simple.
Instead of asking:
How far is the price from fair value?
we ask:
How unusual is this deviation given current market conditions?
This makes the signal more comparable across different volatility regimes.
Why TWAP Is Useful
Once a potential dislocation is identified, the next problem is execution.
Suppose the model identifies:
Fair value = $0.54
Market price = $0.47
The obvious response would be to buy the entire position.
But that creates a problem.
The model could be wrong.
BTC could continue moving.
The market could continue repricing.
Liquidity could disappear.
Instead, the strategy can divide the position into smaller pieces:
50 → 50 → 50 → 50
After each slice, the model is recalculated.
For example:
| Slice | Market | Fair Value | Deviation | Decision |
| ----- | -----: | ---------: | --------: | -------- |
| 1 | $0.47 | $0.54 | +7 pts | Buy 50 |
| 2 | $0.48 | $0.54 | +6 pts | Buy 50 |
| 3 | $0.51 | $0.54 | +3 pts | Buy 50 |
| 4 | $0.53 | $0.54 | +1 pt | Stop |
The strategy originally wanted a larger position.
But it stops as the market approaches fair value.
This is an important distinction:
TWAP isn't being used only to spread execution.
It becomes a mechanism for managing uncertainty.
The Strategy Is a Feedback System
This leads to a more useful way of thinking about the bot.
It isn't simply:
Find deviation → Buy
It is:
Find deviation
↓
Enter small position
↓
Observe market
↓
Recalculate fair value
↓
Measure deviation
↓
Continue / Reduce / Stop
Every new price update can change the decision.
That makes the execution process adaptive.
The strategy doesn't need to be correct about the entire future path.
It only needs to determine whether the current opportunity remains attractive.
Confirmation Becomes Critical
A large deviation should trigger investigation, not necessarily an immediate trade.
I would look for several confirming signals.
Is BTC still moving strongly in the same direction?
If yes, the move may be continuation rather than reversion.
Is the current move unusual relative to the current volatility regime?
Is there evidence that the market is beginning to absorb the move?
How much time is left for the probability to change?
How far is BTC from the relevant reference level?
Can the strategy actually execute without consuming the theoretical edge?
The more independent evidence supporting the reversion hypothesis, the stronger the setup becomes.
The Most Dangerous Scenario
The worst environment for a mean-reversion bot may be a strong directional BTC trend.
Imagine:
BTC moves strongly
↓
UP probability falls rapidly
↓
UP contract becomes cheaper
↓
Bot detects large deviation
↓
Bot buys
↓
BTC continues trending
↓
UP becomes even cheaper
The original "mispricing" wasn't a mispricing.
It was a repricing process.
This is why mean reversion and momentum strategies behave so differently.
Momentum asks:
Is the move likely to continue?
Mean reversion asks:
Has the move gone too far?
A robust trading system needs to understand which market regime it is currently in.
Mean Reversion vs Momentum
These strategies can be viewed as two different interpretations of the same market event.
BTC moves
↓
Polymarket lags
↓
Follow the move
Polymarket moves
↓
Price becomes stretched
↓
Underlying conditions don't fully justify move
↓
Look for reversion
This suggests an interesting research direction:
Don't always run one strategy. First classify the market regime.
For example:
Strong trend
→ Momentum
Range-bound market
→ Mean Reversion
Unclear regime
→ Reduce exposure / No trade
That could potentially be more robust than trying to make one strategy perform well under every condition.
The Edge Must Include Execution Costs
A theoretical dislocation is not the same thing as a tradable edge.
Suppose:
Fair value = 70%
Market price = 64%
The raw edge is:
+6 percentage points
But the actual strategy also faces:
A more realistic framework is:
Tradable Edge =
Model Edge
- Fees
- Slippage
- Execution Risk
- Model Uncertainty
This is particularly important when the apparent edge is small.
A strategy can have excellent theoretical predictions and still lose money if its execution costs consume the advantage.
Time Changes the Probability
Another variable that deserves more attention is time.
A price deviation early in a 5-minute market is not equivalent to the same deviation near expiration.
Consider:
BTC below strike
UP probability = 45%
With several minutes remaining, BTC has meaningful time to recover.
Near expiration, there may be very little time left for that recovery.
Therefore, fair value should be conditional on:
Current BTC price
+
Distance from strike
+
Volatility
+
Time remaining
This is why a simple moving-average-based mean-reversion strategy may be insufficient for prediction markets.
The underlying event has a defined expiration.
What I Would Test
The interesting research question isn't simply:
"Does mean reversion work?"
That's too broad.
I'd break the research into smaller questions.
Test whether large deviations from recent fair value predict future reversion.
Normalize the deviation by expected volatility.
Determine whether momentum helps identify situations where reversion is less likely.
Test whether liquidity and imbalance improve signal quality.
Determine whether the same deviation behaves differently depending on how much time remains.
Run:
Full-size entry
vs.
Fixed TWAP
vs.
Dynamic TWAP
This separates the quality of the signal from the quality of execution.
What I Would Measure
PnL alone isn't enough.
I'd track:
Win Rate
Average Return
Maximum Drawdown
Average Entry
Average Exit
Slippage
Fill Rate
Holding Time
Maximum Position
But I'd also track strategy-specific metrics:
Deviation at Entry
Deviation at Exit
Time to Reversion
Percentage of False Reversions
Percentage of Early Stops
PnL by Volatility Regime
PnL by Time Remaining
PnL by BTC Trend Strength
These measurements can reveal when the strategy works rather than simply whether it worked historically.
The Research Question I Find Most Interesting
The most interesting question isn't:
Can Polymarket prices mean-revert?
Markets obviously experience temporary price movements.
The more useful question is:
Can we distinguish temporary dislocations from genuine probability changes in real time?
That's much harder.
A price moving 5% away from its recent average doesn't tell us why.
It could be:
Temporary liquidity imbalance
or:
New information
or:
BTC trend continuation
or:
Market maker repricing
The strategy's real value comes from correctly identifying the difference.
Research Conclusion
After looking at the structure of the strategy, I think the strongest argument for TWAP Mean Reversion is not that it can predict reversals perfectly.
It can't.
The stronger argument is that TWAP gives the strategy room to be uncertain.
Instead of making one large decision:
Buy 600
the system can make a sequence of smaller decisions:
Buy 50
Recalculate
Buy 50
Recalculate
Buy 50
Recalculate
Stop
That changes the risk profile considerably.
The strategy can participate in a potential dislocation without assuming that the entire thesis is correct from the beginning.
But there is an equally important limitation.
Mean reversion should not be confused with buying whatever becomes cheap.
A falling prediction-market price may represent an opportunity—or it may represent the market correctly incorporating new information.
That is why fair-value estimation, volatility, BTC momentum, time remaining, liquidity, and execution costs are all important.
The real research challenge is therefore not building a more aggressive reversion algorithm.
It is building a better regime and mispricing detector.
If the market is genuinely overextended, Dynamic TWAP can provide a disciplined way to scale into the opportunity.
If the market is undergoing genuine repricing, the same system needs to recognize that the original thesis is invalid and stop.
For me, that's the most interesting direction for this strategy:
Don't build a bot that assumes prices revert. Build a bot that tries to determine when reversion is actually plausible.
That distinction is what separates a simple mean-reversion rule from a more serious prediction-market trading system.
🤝 Collaboration & Contact
If you’re interested in building trading bots, buy trading bots, collaborating, exploring strategy improvements, or discussing about this system, feel free to reach out.
I’m especially open to connecting with:
Quant traders
Engineers building trading infrastructure
Researchers in prediction markets
Investors interested in market inefficiencies
📌 GitHub Repository
This repo has some Polymarket several bots in this system.
You can explore the full implementation, strategy logic, and ongoing updates about 5 min crypto market here:
https://github.com/Benjam1nCup/Polymarket-trading-bot-python-V2
💬 Get in Touch
If you have ideas, questions, or would like to collaborate or want these trading bots, don’t hesitate to reach out directly.
Feedback on your repo (based on your description & strategy)
Contact Info
Telegram
https://t.me/BenjaminCup
tags: #polymarket, #trading, #bot, #architecture, #tutorial, #TWAP