BrainResearchHub
Independent research on prediction markets, perpetual futures, and trading infrastructure

How Do I Pick Markets for a Polymarket Bot? Discovery Filters That Work

Ahmed Trading· sdk · Updated October 2026

Most bot losses trace back to a decision made before any strategy ran: the market choice. A discovery filter — the daily job that scores and ranks tradable markets — is the highest-leverage component in the 8-component architecture because it excludes your worst decisions wholesale. Here’s the scoring dimensions that matter and a reference implementation shape.

How should a bot choose which markets to trade?

Score every market daily on four dimensions and exclude the bottom decile before strategy ever sees it. Liquidity: depth within 2-3 ticks of mid, not just volume (a $500k-volume market with a 200-share top level is untradeable at size — see the depth math). Spread: median spread over the day, not the current snapshot — a market that tightens only during news windows is wide when you’ll actually trade it. Resolution clarity: can the criteria be restated in one sentence? Two-reading markets get penalized hard (see tie and void handling). Event proximity: resolution date and news-cycle density — thin books near events behave differently than the same books a month out.

The scoring dimensions, weighted

A reference weighting for a general-purpose filter: 40% liquidity (depth-at-size is the metric; raw volume lies), 25% spread (median over trailing day), 20% resolution clarity (manual flags decay over time — re-verify markets you intend to size), 15% event profile (time to resolution; correlated-market density for basket awareness — see negative risk). Tune weights to your strategy: market-makers weight spread and volatility hardest; event traders weight resolution clarity and proximity; carry strategies on perps weight funding history stability.

The exclusion list (hard filters before scoring)

Some markets aren’t scored, just excluded: criteria you can’t restate (after reading them twice), sources that don’t exist yet (“official announcement” from an account with no posting history), markets in their final hours with books too thin to exit (see selling before resolution), correlated clusters you’re already saturated in (five positions on one election is one position — see the concentration trap), and any market flagged in the scam-adjacent category (fake “markets” built by phishers do appear on lookalike sites — trade the real venue only).

The reference implementation shape

A daily job (cron — see the deployment checklist) that: pulls all active markets (the API guide lists the endpoint), pulls per-market book snapshots and trailing spreads, scores per the weights, writes a ranked table with an explicit excluded list and reason codes, and hands the top slice to your strategy’s watchlist (which is what the websocket subscriptions follow). Keep the excluded list visible — “why didn’t we trade X” needs an answer with a reason code, not a shrug.

FAQ

How do I filter which Polymarket markets to trade? A daily scoring job: liquidity (depth-at-size), median spread, resolution clarity, event proximity — exclude the bottom decile and hard-exclude markets failing clarity or exit-ability checks. The scoring dimensions and weights are above.

What liquidity metric matters for prediction markets? Depth within 2-3 ticks of mid at your realistic size — raw volume and top-of-book both mislead. A market you can’t exit at size is a lottery ticket, not a position: see the order book guide.

Should bots avoid markets close to resolution? Not automatically — but books thin out and spreads widen in final hours, so the filter should require exit-able depth near resolution. Event-week volatility is where event-trader edges live — see election markets.

How do I avoid correlated position clusters? Track exposure per event (not per market) in the filter: a multi-candidate event’s markets are one bet wearing several tickers — see negative risk mechanics for how the basket structure links them.

How often should market scoring run? Daily for rankings, with intraday refresh on the watchlist slice — liquidity and spread drift fast near events. The job belongs in your bot’s discovery component, not in your head: see the architecture.

Educational content, not financial advice. Not affiliated with Polymarket. Last updated October 2026.