Why 90% of My Polymarket Bot Trades Happen in the Last 3 Minutes

 I did not plan this. I noticed it in the data.

When I started logging every trade my bot made I expected the activity to be spread out across the full market window. Buy a little here, sell a little there, collect the spread all day. That was the theory. The reality looked completely different. Almost everything was happening right at the end.

At first I thought something was wrong with the bot. Maybe it was slow to start. Maybe the early market conditions were too wide to trade profitably. I dug into the logs and what I found actually made sense once I thought about it.

Early in a market the probability is uncertain. On a BTC 5 minute market nobody really knows where price is going in the next 300 seconds. The spread is wide because nobody wants to commit. The order book is thin. My bot would post orders and nothing would fill because everyone else was doing the same thing - waiting.

As the market gets closer to resolution something changes. The probability starts to collapse. If BTC has been flat for 4 minutes and the market is asking whether it will be above a certain level in 60 seconds, the answer is becoming clearer. Traders start taking positions. Volume picks up. The order book fills in. Suddenly there are real counterparties on both sides.

That is when my bot gets its fills.

The last 3 minutes of a 5 minute market is where the liquidity actually lives. The spread tightens. The volume spikes. The probability is moving fast enough that there is real edge in being on the right side of the book at the right moment. My bot is built to sit and wait for exactly this window and then move quickly when it opens.

This taught me something that changed how I think about market making on prediction markets generally. You are not just competing on price. You are competing on timing. Posting orders at the wrong time means sitting in a dead book waiting for fills that never come. Posting at the right time means catching a wave of volume that moves through fast and fills both sides cleanly.

The bot does not trade any less in slow periods. It just does not get filled. The trades that actually execute are concentrated in that final window almost every time.

I now build every new strategy around this observation. When does liquidity actually appear in this market. That question matters more than what price to post at.

If you are building on Polymarket and your fill rate feels low, check when your fills are happening. The timing pattern in the data will tell you more than the price logic ever will.

All my code is open source at github.com/casatrick

Comments

Popular posts from this blog

How a Polymarket Arbitrage Bot Actually Works: 5 Strategies Explained

Why Every Polymarket Trading Bot Needs to Adapt to TWAP

Building a Polymarket Trading Bot: Order Book Monitoring, Slippage Handling, and Position Sizing