HackerLangs
TopNewTrendsCommentsPastAskShowJobs

kachoio

no profile record

Submissions

Adverse selection eating away my Polymarket bot's arbitrage profits

kacho.io
1 points·by kachoio·il y a 11 jours·0 comments

Show HN: A free dataset, Polymarket's 5-minute crypto markets, second-by-second

kacho.io
2 points·by kachoio·il y a 23 jours·1 comments

I ran an arbitrage bot on Polymarket. Here are the real numbers

kacho.io
11 points·by kachoio·le mois dernier·5 comments

comments

kachoio
·il y a 11 jours·discuss
[flagged]
kachoio
·il y a 23 jours·discuss
Polymarket runs a market every five minutes on whether a coin closes higher or lower - 24/7, for seven coins - but there's no such publicly available historical data, at least one I could find. I wanted to backtest a bot against these markets, so I spent a few weeks just recording ther order book: every market, once per second, for BTC/ETH/SOL/XRP/DOGE/HYPE/BNB.

It's ~89k markets / ~26.8M per-second top-of-book samples, Mar–May 2026, and I'm releasing it into the public domain under CC0.

The data will is not good enough to backtest again what real live trading would look like, but it's something to start with if you have nothing. Coverage is 99.8%+ with no duplicates; the only real holes are ~4 short outages on my end (~1.5h total over 7.5 weeks) from my VM dying several times.

Links: - https://huggingface.co/datasets/kachoio/polymarket-5-minute-... - https://www.kaggle.com/datasets/kachoio/polymarket-5-minute-...

Hopefully some of you may find it useful. It wasn't greatly useful for me, as I gave up after losing several hundred bucks. Either way, I think it's generally hard to be profitable with the fees that are in place now and the vicious competition buit it was good fun to give it a try anyway.
kachoio
·le mois dernier·discuss
Yes, that's what happens when you code with AI and overlook things. I remember this specific bug vividly and that's why included it in the article. The bot was matching the implied probs from the odds for a game without matching the teams first. Sometimes bookmakers had Team A vs Team B, where Polymarket had Team B vs Team A for whatever reason and the code was not checking for this scenario. Not my proudest bug, to be fair..
kachoio
·le mois dernier·discuss
When you place limit orders for such markets (high spread and mediocre volume at best) they don’t get filled quickly. You just bid at best_bid + 1c and wait. I think the average fill time is ~25 minutes if I remember correctly. For this specific strategy, there’s no workaround for avoiding the directional bets. Every arb is a directional bet that eventually got arbed.
kachoio
·le mois dernier·discuss
I ran this bot Jan-late March 2026: 3,858 bets, ~$5k net. It never predicted a winner - it scraped sportsbook odds, de-vigged them to a fair price, and posted limit orders on Polymarket esports markets where the spread was wide enough (often 20–30¢) to lock an arb across both sides.

The part I found most interesting to write up - the split by bet type where the guaranteed arbs made +$8.3k, but the directional lost -$3.2k. Those legs were placed with the same ≥7% edge as the arbs, so a bet like that should make money. Mine didn’t, and pulling apart why (stale quotes getting picked off by faster bots, a sign-flip bug, a devig method that ran hot on favourites) is covered in the post but not in full detail as that’s a long topic that deserves its own write up.

The whole track record is in public (polymarket.com/@b00k13) if you want to pick it apart - including the months the win rate slid and the edge decayed, which is why I eventually switched it off. Coded almost entirely with AI. Happy to answer anything.
kachoio
·le mois dernier·discuss
Help Trump launch another meme coin and he’s out
kachoio
·le mois dernier·discuss
Bbut.. Elon said we are all going to be billionaires
kachoio
·le mois dernier·discuss
I create scrapers on my own when I need one, but this is a cool idea. Best of luck with it.
kachoio
·le mois dernier·discuss
pretty decent, may even use some of the components eventually. star given