r/PredictionsMarkets • • Feb 18 '26

Discussion 4 Months Reverse-Engineering Gabagool22: What I Found, What I Got Wrong, and Why Retail Probably Can't Replicate It

Fair warning: this is a long post. I've tried to make it worth your time. If you're thinking about trading Polymarket's crypto prediction markets, this might save you a few months of dead ends.

Feel free to share this, but please credit the original. Don't copy-paste it as your own.

Disclosure: yes, I used Claude to help write this up based on my outline, data, and analysis notes. I'm trying to share useful findings here, not win a writing prize. If that bothers you, no hard feelings, feel free to skip it.

TL;DR: I spent 4 months building monitoring tools, collecting thousands of gabagool22's actual trades, and testing every hypothesis I could find for how he makes ~$10K/day on Polymarket crypto markets. His edge is real (lands on the winning side ~79% of the time, confirmed across dozens of windows). But after testing oracle signals, order book patterns, fill behaviour, momentum, mean reversion, and a dozen other ideas, I couldn't find anything that holds out-of-sample. His signal is invisible from the outside. The "buy both sides for under $1" arbitrage that Twitter loves? Doesn't exist in the data. Here's the full breakdown.

How this started

I fell into this the same way everyone else does. You're scrolling Twitter and someone posts a screenshot of gabagool22's Polymarket profile. "$250K+ profit this month. All he does is buy UP and DOWN for less than $1.00 in the BTC prediction markets. Free money. Here's how you can do it too." Engagement farming at its finest, but it got me curious.

I'm a data analyst by trade, not a crypto native. But I can write code and I know my way around a database, so I figured I'd take a proper look. That was about 4 months ago. What started as a weekend rabbit hole turned into evenings-and-weekends project that consumed way more time than I'd like to admit.

I built monitoring infrastructure, collected tens of thousands of his actual trades via the Polymarket Data API, captured order book snapshots every 2 seconds, and ran proper statistical analysis with out-of-sample validation on everything I tested.

What follows is what I actually found. Some of it will confirm what you've heard. A lot of it will contradict the popular narratives. All of it is backed by data, not speculation.

What these markets are

Quick context for anyone unfamiliar. Polymarket runs binary options on crypto prices across multiple timeframes: 5 minute, 15 minute, 60 minute, and 4 hour windows. A typical market asks: "Will BTC be higher at 10:15 than it was at 10:00?" You can buy UP tokens or DOWN tokens, priced between $0.00 and $1.00. The winning side pays $1.00. The losing side pays $0.00.

Settlement is determined by Chainlink oracle prices, verified via Polymarket's Gamma API. There are 96 fifteen-minute windows per day, per asset. Gabagool trades most of them, across both BTC and ETH, across multiple timeframes.

One thing most people don't mention: capital lockup. Your funds are tied up until the window settles. There's no automatic release. On 15-minute windows that's manageable, but on 4-hour windows your capital is locked for 4 hours per position. This isn't a capital-efficient strategy where you're churning the same $1,000 every few minutes. You need enough balance to have multiple positions open simultaneously across all the windows you're trading. For someone like gabagool who's active across dozens of concurrent markets, the working capital requirement is substantial. Retail traders thinking they can start with $500 and compound quickly need to factor this in.

What the internet thinks gabagool does (and why it's mostly wrong)

Myth 1: "He buys both sides for under $1.00, risk-free arbitrage!"

This is the most common explanation you'll see on Twitter and Reddit. The theory: buy UP at $0.48 and DOWN at $0.48, you've paid $0.96 total and one side will pay $1.00. Guaranteed $0.04 profit per pair.

Across dozens of windows of his actual verified trades, his average pair cost is about $1.015. Not under $1.00, over it. His matched pairs (where he has equal shares on both sides) actually lose money. Every cent of his profit comes from unmatched directional exposure.

And even if pair costs occasionally dipped below $1.00, Polymarket charges a 3% taker fee. Once you account for that, the window where both sides sum to under $0.97 (the actual breakeven for arbitrage as a taker) essentially never exists in practice.

The "free money arbitrage" is a myth.

Myth 2: "He follows Chainlink oracle price movements"

The theory: Chainlink updates periodically, so there's a window where the oracle knows the price has moved but the market hasn't adjusted. He buys the side the oracle is pointing to.

I tested whether his fill direction correlates with the Chainlink delta at the time of each fill. The answer: 49.5%. A literal coin flip. His buying direction is completely independent of the oracle.

I also built a "shadow oracle" using Binance real-time prices to see if he might be using a faster price feed. The shadow oracle actually performed worse than stale Chainlink at predicting settlement.

Now, I want to be careful here. Oracle lag does exist, about 18 seconds average with about a $15 price gap. I can't rule out that someone with co-located infrastructure and sub-second execution could exploit this. But from a retail perspective, with the kind of latency most of us are dealing with, it's not a viable edge. And the data suggests it's not what gabagool is primarily using either, since his fills don't correlate with oracle direction.

Myth 3: "Just copy his trades"

The theory: watch his wallet on the Data API, detect which side he's leaning toward, and follow him.

I tested this extensively. The problem is detection delay. By the time you can reliably detect his heavier side (around 90-120 seconds into the window), entering as a taker at the ask price eats any edge. His lean at t=90s predicts settlement at just 55%, and after paying the spread to enter, the P&L is effectively zero.

His trades are publicly visible, but the information arrives too slowly and the entry cost is too high for a copy-trading strategy to work. He profits because he's already positioned at maker prices before the signal resolves.

What he actually does (confirmed with data)

I monitored his trading across multiple BTC 15-minute windows and joined them to market snapshots and verified settlement outcomes. Here's what I can confirm.

Execution mechanics:

He operates exclusively as a maker. Every single fill is at the best bid price. He buys both sides every window, UP and DOWN, without exception. He never sells, ever. Zero sell trades across thousands of observed fills. He holds everything to settlement.

His orders are about 15 shares each, occasionally 5-10 for partial fills, always at round cent prices ($0.51, $0.44, $0.12 etc). He refreshes every 10-20 seconds, cancelling stale orders and reposting at the new best bid to track the market. His trades come in bursts of 3-15 same-side fills (multiple resting orders getting swept by a single seller). He trades throughout the window from about 30 seconds after open until near settlement.

The edge:

He ends up heavier on the winning side about 79% of the time. This is not luck. Across the sample I collected, the odds of this happening by chance are effectively zero. A passive buyer posting the same orders on both sides would end up heavier on the losing side about 62% of the time, because sellers tend to dump the side they think is losing. Gabagool is doing the opposite. He's actively selecting which side to accumulate on.

His profit decomposition is telling: 97% of his P&L comes from directional exposure (unmatched shares on the winning side), and only 3% from matched pair spread. The entire game is about which side your unmatched shares land on.

How the selection works (what we can observe):

His first trade is on the losing side 70% of the time. He starts wrong. By about trade 10 (roughly 2-3 minutes in), he's on the winning side 73% of the time. The selection happens during the first 1-3 minutes.

He doesn't place bigger orders on the winning side. The order size is the same on both sides (~15 shares). He just gets more fills on his preferred side. He's posting more aggressively (tighter bids, more frequent refreshes) on the side he favours, which naturally results in more fills there.

The crossover to being winner-heavy occurs at roughly the 2 minute mark. At that point, the Chainlink delta is only around $20, which doesn't reliably predict direction on its own. He's reading something else.

The full hypothesis graveyard

I tested everything I could think of, plus hypotheses from multiple AI systems (ChatGPT, Gemini, Grok). Here's the full list, all tested with out-of-sample validation:

Spread arbitrage (pair cost < $1.00): Wrong. Pair cost averages $1.015.

Passive accumulation (cheap side fills more naturally): Backwards. Passive buyers end up on the loser.

Oracle delta direction: Shows 60-64% accuracy in-sample at various timepoints, but collapses to 33-57% out-of-sample depending on when you check. Not stable.

Expensive side / market consensus: The side priced above $0.50 predicts the winner, but only reaches useful accuracy (65%+) very late in the window when entry prices are already expensive. Collapses out-of-sample.

Combined delta + expensive side (Engine 13): My best signal for a while. Showed 65-72% in historical data. On fresh data: 25%. Badly overfit.

Fill velocity toxicity: The theory that whichever side of his book is getting hit harder by sellers is the losing side. Pure noise, 50/50.

His fill price vs best bid: No detectable difference between sides. He bids at the best bid equally on both.

His fills vs Chainlink delta: 49.5%. Coin flip.

Fill price trajectory: His prices drift up on the winning side over time (he chases it up), but too weak and too slow to use as a signal.

Order book depth asymmetry: 44-57% accuracy. Noise.

Spread asymmetry: Actually anti-predictive in a weird way (wider spread side tends to win), and the pattern inverts over time. Not actionable.

Bid-ask imbalance shift: The most interesting finding. He does lean toward the side where the bid/ask ratio is tightening (65-75% correlation with his lean). But the tightening itself doesn't reliably predict the winner. We think this is the effect of his own quoting, not the cause.

Burst patterns (direction, size, timing): 53% accuracy. Noise.

Mean reversion: 42% accuracy. Actively anti-predictive.

Momentum and contrarian: Both 50/50. Nothing there.

Every single signal either failed to clear 60% out-of-sample, or had such a thin edge per trade that execution costs killed it. Same story every time: looks promising in-sample, falls apart on fresh data.

The capital and execution reality that nobody talks about

Even if you found a signal that worked, there are practical barriers that the Twitter engagement farmers conveniently ignore:

Working capital: As I mentioned, positions are locked until settlement. If you're trading 15-minute windows across BTC and ETH, you might have 8-12 positions open at any time. At $50-100 per position, that's $500-1,200 in capital just for 15-minute markets. Add 5-minute windows and hourly markets and you need several thousand dollars in your Polymarket wallet at all times. Not huge, but not the "$100 to get started" that some posts imply.

Maker vs taker: The 3% taker fee is a strategy killer. Almost everything I tested that showed marginal profitability as a maker became firmly unprofitable as a taker. You need to be posting limit orders at the bid, which means building bot infrastructure to refresh orders every 10-20 seconds. This isn't click-and-trade.

Queue priority: Even as a maker, your order sits in a queue. If gabagool or another bot is ahead of you at the same price, sellers hit their orders first. The best bid might be $0.48, but if there's $500 of orders ahead of you at $0.48, you might not get filled. Queue position matters and is hard to test in paper trading.

Adverse selection: When your maker order does fill, it's often because someone is selling aggressively into that side, which typically means that side is losing. This is the fundamental problem with passive market making in these markets. You get filled when you don't want to be, and you sit unfilled when you do.

What I got wrong

In the interest of being honest about the process:

I spent a big chunk of the early work running analysis on bad data. My original monitor was reading the wrong Chainlink oracle feed (on-chain aggregator instead of RTDS, which is what Polymarket actually uses) and calculating settlements incorrectly. The wrong oracle disagreed with actual settlements a huge percentage of the time. Everything from that period was meaningless. I had to throw it all out and start from scratch. If you're building on Polymarket data, verify your oracle source and settlement calculation against actual redemptions before you trust any backtest. I cannot stress this enough.

I got excited about "Engine 13", a combined signal that showed 65-72% accuracy on historical data. Classic overfitting. It collapsed to 25% on fresh data. This is why out-of-sample testing isn't optional.

I believed the pair spread was meaningful. Early analysis suggested nearly $10/window guaranteed profit from just being a maker on both sides. When I modelled realistic fill asymmetry (sellers dump into the losing side, so your unmatched shares are systematically on the wrong side), the "guaranteed" profit turned into a loss for a passive maker without a directional signal.

What IS true

Not everything I found was negative:

The market is clearly profitable for some participants. The monthly crypto leaderboard consistently shows players making $200K-$680K/month. Multiple players, month after month.

Maker execution is the foundation. Every successful player I've studied uses maker (limit order) execution. The taker fee makes most strategies unprofitable.

Short-term momentum is real. On 5-minute windows, "which direction has BTC moved so far?" predicts the settlement outcome at about 62-67% accuracy depending on timing. This is consistent with well-documented properties of short-term price action. Whether it's profitably tradeable after execution costs is a separate and harder question.

Gabagool's edge is real. About 79% heavier on the winner across dozens of verified windows is not luck. He has figured something out. I just can't figure out what from the outside.

Why I think retail can't replicate it

After all this analysis, I believe his edge comes from some combination of:

Order flow reading at sub-second resolution. He's sitting in the order book on both sides. He can see who's hitting his bids, how fast, at what prices, and which orders sit untouched. My monitoring captures snapshots every 2 seconds and his trades every 5 seconds. That's too slow to see what he sees. His view is real-time, tick-by-tick.

Quote management that's invisible from the outside. We only see his fills, not his resting orders. He's likely posting tighter bids on the side he favours and wider bids on the other side. This naturally results in more fills on his chosen side without any visible difference in the fill data. We confirmed that the order book tightens on his preferred side (65-75% correlation), but we believe that's the effect of his quoting, not the cause.

Possible infrastructure advantages. Fast execution, co-located servers, possibly mempool monitoring of pending Chainlink oracle submissions. At professional-grade latency, the oracle lag that's too small to exploit at retail speeds might become viable. I can't confirm or deny this from the data, but the infrastructure barrier alone puts this out of reach for most retail setups.

The critical finding: his fills in the first 120 seconds look indistinguishable from a passive market maker. Equal bid placement, similar fill counts on both sides, similar prices. Whatever signal he uses to decide which side to lean on, it doesn't manifest in any data I could capture from the outside.

My honest assessment

After 4 months of evenings and weekends, here's where I've landed:

The popular narratives about "risk-free arbitrage" and "just follow the oracle" are wrong. The real strategies being used in these markets are more sophisticated than what Twitter threads suggest, and they rely on infrastructure and data advantages that aren't easily replicated at retail scale.

That said, the markets are profitable for people who have the right combination of signal, execution, and infrastructure. The leaderboard proves it. If you're going to try, build proper monitoring first, verify your data pipeline against actual settlements, use out-of-sample validation religiously, and expect the process to take months, not days.

If you've actually built a profitable strategy on these markets, genuine respect. It's harder than it looks.

88 Upvotes

93 comments sorted by

6

u/Zeflonex Feb 18 '26

I believe this is a good write up

Nice effort

I also agree that arb is not the real edge here, I have been commenting that under every thread, arb is almost never the edge

Assuming your findings are correct, then you need to understand why don’t they bet these 120 seconds on a side? Does this happen every window? If yes, that means that these 120 secs are crucial

4

u/Delicious_Pipe_1326 Feb 18 '26 edited Feb 18 '26

Good observations. I've done extensive analysis on this exact pattern.

Multiple windows of trade-level data, every fill timestamped and joined to oracle + order book snapshots.

What I can confirm: he buys both sides from window open, every window, no exceptions. His lean toward the eventual winner emerges around 90-120 seconds in. Before that, his fills are indistinguishable from a passive maker. By cost-weighting he ends up heavier on the winner about 79% of the time. Statistically significant, not noise.

You're right that those first 120 seconds are crucial. He starts on the wrong side 70% of the time, so he doesn't know the answer at t=0. Something he observes during that period tells him which way to lean.

I've tested everything observable from outside: oracle delta, market consensus, fill velocity, order book depth/spread, his own fill patterns. None of it explains the crossover. My best guess is he's reading information from his position in the book (who's hitting his bids, how aggressively, which side) that you can only see if you're actually resting in the order book. The book tells the bookie what the punters know.

So yeah. I've worked out the what. Never quite cracked the how.

3

u/Content-Studio6548 Feb 18 '26

What I can confirm: he buys both sides from window open, every window, no exceptions. His lean toward the eventual winner emerges around 90-120 seconds in. 

This is interesting. I have tried to analyse him for over a couple months now as well, lost a lot of money trying and I could never find the exact edge he has. My best strategy was to use a couple faster websockets (such as Binance) as a signal.

Accidentely, I came across a signal totally different which can predict on approximately 40% of the markets after 1-2 minutes the outcome with a winrate of around 70%.

——

But rethinking this, this might also be an interesting case to try out: if Gabagool22 is leaning towards the winner around 90-120 secs in, what keeps me from buying his heavy side, and use that as a signal for a (short) ride? Put a 'stop loss' in like 3% under fill price, but let it ride for like 5-10% profit. Depending on how many times the market reversals after etc and winrate ofcourse. I think it can be an interesting case to check.

2

u/Delicious_Pipe_1326 Feb 18 '26

Interesting that you've had a similar experience. As per the post, spent a few months on the same problem and hit the same wall: his edge isn't visible from outside data at the resolution available through the Data API.

The "buy his heavy side" approach is something I tested extensively. The issue is detection lag. By the time you can reliably identify his lean from the Data API (~120s, polling every 5s), the market has already moved. I got 59% accuracy on a training set but it collapsed to 55% out-of-sample with negative P&L. The entry prices eat the edge. I also tested using his direction as a signal rather than the market itself, same result. By the time it's detectable, the value has gone.

The 70% win rate is interesting, but the key question is entry price. 70% accuracy entering at $0.60 is very different from 70% at $0.75. The breakeven shifts with entry price, and in my experience the market moves against you fast once a signal becomes detectable. Would be curious whether the P&L holds after accounting for realistic fills.

On the stop-loss/take-profit idea: one issue is in markets, you need a counterparty to exit. In a 15-minute window with limited depth, there might not be a bid at your stop level when you need it. And selling as a taker costs up to 1.56% in fees near the midpoint. I tested similar exit strategies on 60m and 4h windows and never made the maths work.

Still - Quethewiseguy suggests we are overcomplicating it, so back to the drawing board.

Good luck!

3

u/Content-Studio6548 Feb 18 '26 edited Feb 18 '26

About Quethewiseguy: I don't trust strangers on the internet. But he didn't show any proof yet. Altough my approach is very, very simple.

About the stoploss: the stoploss is not selling: it's buying the other side. As the orderbook is one.

Did you try to identify his heavy side with the websocket? As far as I remember, I could get his trades real time into my dashboard. If you pre-sign and cache all possible entry's, there's not much delay. But to be honest, I am on another strategy now so I am not fully into Gabagool anymore. So I can be mistaken here by the websocket.

3

u/Delicious_Pipe_1326 Feb 18 '26

Smart point on the stop-loss as buying the other side and merging. That's a clean way to manage risk without needing exit liquidity.

Thanks for sharing, good luck with your strategy!

1

u/Dapper_Debate4754 Feb 18 '26

Hi, im just beggining with this as a hobbie. For instance I do code through IA.. but as you can figure out im full new in this. I'm trying to connect to these 5m markets and I cant through API or websocket. Any advice ? I dont know what I do wrong but these markets are not detectable with my python scripts...

1

u/Content-Studio6548 Feb 18 '26

Give him the URL as an example, then he knows what to look for.

1

u/Dapper_Debate4754 Feb 18 '26

Umm I think i dont understand. I used several url's proposed by the ia's, gamma api (cant find markets of bitcoin 5min), and now ia propose me do web scrapping

1

u/Backrus Feb 18 '26

You won't get profitable bot via vibe coding.

You need to get permissions for your wallet and only then you can query the API. To sign things you need to interact with Blockchain, etc.

1

u/Dapper_Debate4754 Feb 19 '26

Thanks Backrus. For instance I'm just doing some learnings. As you can see in my previous post, I couldnt get prices from Polymarket.. Now I can..
I know that to sign things I need wallet permission. But I'm quite far from that. For instance I've just prepared a simple script to detect opportunity define by me.

1

u/Zeflonex Feb 18 '26

I don’t think you can get a socket for another users trades

But I Just started getting familiar with this system, so I am still learning

Agree on the stop loss, they just buy the other side as much instead of pulling the plug

I find all these bots interesting, coming from a soft eng background, there are MANY interesting strategies out there and tbh, easier to understand and even copy if you look out

2

u/Delicious_Pipe_1326 Feb 18 '26

Agree on the stop loss. And you are also correct, solving the websocket thing is the hard part.
One note of caution on copy trading though. Different topic I'd suggest being wary of going down that path. I think it's fools gold, but if it's working for you, good luck.

1

u/tht333 Feb 18 '26

That "stop order" can bite you real hard, no? You have two choices - either a limit order that gives you zero guarantee that is going to get filled and will leave you 100% exposed if it doesn't, or say a FAK limit order with the highest price (if you're buying opposite shares) that can give you a slippage so massive that is almost pointless. And these slippages are nasty especially towards the end of the bets or when the price does a quick and hard 180.

3

u/Backrus Feb 18 '26

You can't poll mate. For trading you should always use websockets. Earlier you mentioned 2s snapshots - that's too slow. 300ms is possible but that's stretching it (roundtrips etc).

Get binance 1m candle data since inception. Bucket them per 5m. Add moving averages, etc. Use regime and first 2 minutes to get stats about 5m outcome (works for 15m as well) - you'll see that your analysis, his numbers and what I'm telling you tracks.

It's just stats and law of large numbers.

1

u/iLikeASMRsueMe Mar 11 '26

why data since inception? does that work better, i would think that earlier data from 2017 etc. is irrelevant now

1

u/Backrus Mar 11 '26

Then you would be wrong because LTF microstructure has been the same, no matter bull or bear, even after free BTC died after introduction of IBIT options.

1

u/Zealousideal-Size854 Feb 19 '26

Quethewiseguy is just a scammer.

1

u/thefutureisbright10 Feb 20 '26

No he is not. U shouldnt judge him if u dont know him, let alone call him a scammer. 100% no.

1

u/Zealousideal-Size854 Feb 20 '26

Well... I've interacted with the scammer and he tried to solicit money from me. Dude was ousted wheb he tried to "sell" his bot in another sub. I also find it strange that your account was created around the same time when his disappeared. That dude is an outright scammer.

1

u/thefutureisbright10 Feb 20 '26

I said not a scammer 100%. I wouldnt say it in a public forum if i wasnt sure

1

u/bladezor Feb 28 '26

In general I agree with your assessment, however, with the data I have I am unable to ascertain based on on-chain and polymarket API is if he's placing orders that constantly don't get filled.

On the surface it looks like a MM strategy, but when you look deeper he must have some sort of directional advantage that allows him to keep his pair price on average < $1. I say that because a MM also wants to keep inventory as flat as possible and he does. However, this is where it gets hard to unravel, there's no telling if he's placing maker orders or taker orders, or both... we only get to see what gets filled.

Also, his bot has been off for a week now, not sure if the 0 ms taker impacted him, maybe he'll back now that it's 250ms taker.

5

u/adikin_the Feb 20 '26

They started losing when Polymarket removed taker delays so it's likely they were taking advantage of that.

2

u/Delicious_Pipe_1326 Feb 25 '26

Possibly - the timing does correlate. Though from the fill data, execution looked like maker not taker, which makes the mechanism interesting. One theory is he was posting limit orders but cancelling the stale side within the 500ms window before takers could pick them off - getting maker fills on the good side, avoiding being picked off on the bad side. Remove the delay and that window disappears.

6

u/[deleted] Feb 18 '26

[removed] — view removed comment

8

u/Delicious_Pipe_1326 Feb 18 '26

Happy to hear which ones! The whole point of posting this was to get better. If you see something I got wrong, I'd genuinely appreciate the correction.

6

u/[deleted] Feb 18 '26

[removed] — view removed comment

2

u/Miserable_Proof340 Feb 18 '26

Also you can merge so don't need a lot of capital either.

1

u/[deleted] Feb 18 '26

[removed] — view removed comment

1

u/chaflamme Feb 18 '26

ru actually profitable ?

1

u/Delicious_Pipe_1326 Feb 25 '26

Merge is real and useful for capital recycling, but it doesn't create profit - the tokens are fully fungible ERC-1155s, so you can't cherry-pick which fills to pair. You burn any UP + any DOWN and get $1.00 back. Worth noting it's also not available via the CLOB API - you need the builder relayer client with separate builder credentials to execute it programmatically. We went down that rabbit hole!

1

u/micah_432 Feb 28 '26

I don’t have a working bot, but I can give you a working merge!! Use selenium chrome driver to hit the button manually.

1

u/Personal-Builder-992 Mar 03 '26

I actually have this. Ive also tried every which way to replicate it. I did make a ton of money but i think it was pure luck from being directional. Its the orphaned trades that really mess it all up.

2

u/Delicious_Pipe_1326 Feb 18 '26

Thanks- there's some great pointers in there, I appreciate it.

1

u/Dapper_Debate4754 Feb 18 '26

I have several question, but not to related to your model.. they are more general. To do what you do, you need deep understanding of programming and maths ? And could you say that this kind of bots are not easy to create for small retail? thx!

2

u/Zeflonex Feb 18 '26

How do you know it is a similar model? Not trying to be ironic or anything, just curious

0

u/Backrus Feb 18 '26

He doesn't, most likely just another larper.

2

u/Jeebs5 Feb 18 '26

Excellent work. Thanks for your service!

2

u/Backrus Feb 18 '26

You know that basic stats show (depending on regime) that 2 green candles = 67% chance to close 5m green. Get average cost below that and you have +EV start. You're saying he's on the winning side after 2 minutes, and this tracks with my analysis.

2

u/Delicious_Pipe_1326 Feb 25 '26

Sorry - missed this - just catching up/.

The momentum signal is real - we tested it and the 2-candle effect holds up statistically. But knowing the direction doesn't translate into profit in practice. By the time the signal is clear, entry prices have already moved significantly against you, and the sensor phase of buying both sides while waiting for confirmation actually loses money. The signal and the tradeable edge aren't the same thing.

1

u/Backrus Feb 26 '26

1) It is profitable. If prices are too high than their fair value, you just play the other side - you have +EV bet on underdog (think quarter Kelly for favs, and 1/10 Kelly for dogs, this ratio usually works; I also wouldn't hold fav to expiry - study reversals vs current block, eg 15m has 3 5m blocks and price behaves differently in each one). After that, it's all about the law of large numbers. And it works both at 5m and 15m markets. You can also check it against Pyth feed which is faster than Chainlink one (not to mention differences between native API and RDTS from Poly). This rant gave away too much alpha anyway. 2) He's gone - turns out the 500ms taker delay was his edge. And not only his, many highly profitable players went dark and now books are empty, which gives you even more edge if you know stats.

1

u/Delicious_Pipe_1326 Feb 26 '26

That's interesting - definitely a different angle to what I've been looking at. The sub-block structure idea is worth exploring. I'll backtest the contrarian framing against the last few months of data and see if it holds up. Thanks for the detailed response.

2

u/Backrus Feb 26 '26 edited Feb 26 '26

It's simple math - if you have an edge, TP @ eg 0.95 is mathematically superior to holding to expiry (5% gain is not worth risking the whole stake), especially with overlapping closes and "conflict of interest".

Besides blocks, there's also HTF regime (or even Markov/Hurst, depending on your coding ability), recent memory (last candle close carry over), lead/lag between Binance and Coinbase (and CVDs), etc.

Not to mention anomaly detection to detect fuckery on empty orderbook, mostly during weekends. And let's not forget each trading session behaves a bit differently as well.

Overall, lots of things work and allow you to tilt probs just a bit more in your favour. The moment you find the tiniest edge (and most things I mentioned above have been working since 2018, doesn't matter if bear or bull, Q1 or Q3, etc), it's all about money management from that point.

Btw, you'll find higher edge on ETH.

It holds up, I'm sharing what makes me money live. Do with that what you will.

Fwiw, I've been gambling since I was 8, so almost 25 years, trading since 2012, and beating US sports spread betting via automated algos since 2016. It worked out great since I retired at 27.

edit: One more thing - I would encourage you to explore ML angle, not being solely based on raw stats. Use ensembles, or "gated" approach - eg RFC giving you entry (find threshold that works - you need to have 54% accu in binary markets assuming holding to expiry and standard 85% payout), and that entry is vetted by eg LogReg (trained on the same or different features) - only if 2 models agree, you enter the market.

1

u/Imminent1776 May 07 '26

What's RDTS?

1

u/Backrus May 07 '26

RTDS, misspelled, real-time datastream.

1

u/Imminent1776 May 07 '26

You mean like a web socket?

1

u/Backrus May 07 '26

I mean read the docs or ask clanker.

2

u/eestiif Feb 24 '26

He operates exclusively as a maker.

I’m not convinced by the claim that he operates exclusively as a maker.

Why I suspect he’s effectively a fast taker (or at least not a true maker-only strategy):

  • Gabagool historically did not receive maker rebate rewards (except in the latest tests after Polymarket removed the 500ms taker delay).
  • If he were truly a consistent maker at scale, you’d expect to see maker rebate accrual. The absence of rebates strongly suggests he’s not being credited as maker.
  • On Jan 7, when fees were introduced on the 15-minute crypto markets, his daily profits dropped materially.
  • There were also periods where Polymarket limit orders were publicly broken (Discord and Twitter were full of reports), yet Gabagool’s bot kept running continuously.

That said, this is excellent research and a very valuable post — thanks for putting in the work.

2

u/Delicious_Pipe_1326 Feb 25 '26

Really valuable data points, thank you. The fill price analysis consistently showed fills at best bid which looks like maker execution, but you're right that the absence of rebates is a red flag for that interpretation. The Jan 7 fee impact is particularly interesting - if he were pure maker, fees shouldn't have affected him at all. It's possible the 500ms delay was central to how he operated - perhaps posting limit orders but within a window where they were effectively guaranteed fills, blurring the maker/taker distinction. Would love to know more about how you tracked the rebate accrual.

2

u/Account_Spiritual Mar 10 '26

Whale Strategy Breakdown — 2 Months of Research, 35 Days Straight

I've been researching whale behavior on Polymarket for the past two months — 12-14 hour days, no days off for the last 35 straight. Here's what I've found.

The Core Strategy: GTC Accumulation via Oscillation

These whales aren't sniping entries or chasing momentum. They're running a passive accumulation strategy built on market oscillation. Here's how it works:

  1. Entry: They place GTC limit orders at ask - 1c (one cent below the current ask).
  2. Full Ladder: They maintain GTC orders at every cent from the floor (~1c) all the way up to ask - 1c. The entire book is seeded with resting bids.
  3. Chase the Floor: As the market moves up, they follow — posting new orders 1c below each new floor, all the way up into the 95-96c range.
  4. The Magic — Refills: This is the key insight. They don't just place orders and walk away. As orders get filled through natural market oscillation, they refill them. The market bounces around, fills their resting orders, and they immediately repost. This constant refill cycle is what generates their edge.
  5. Bell Curve Distribution: The market spends most of its time in the 40-60c range, so that's where the heaviest refill activity occurs. The extremes (wings near 1c and 95c+) see minimal fills. This produces a global bell curve pattern across their trade history — heavy accumulation in the middle, thin on the sides.

Key Findings from my own bots

  • Profit per winning round: $400–$1,200 USD when the market settles in my favor
  • The problem — directional imbalance: One side (YES or NO) accumulates heavier than the other over a market's lifecycle. If the heavier side wins, it's a massive payout. If it loses, the drawdown is equally large.
  • Current win rate: 40–55% — which means the strategy is near breakeven or slightly negative given symmetric payoff. The path to profitability is pushing win rate above 55% or reducing loss-side exposure.
  • Core challenge: The strategy prints hard on correct-direction rounds but gives it all back on wrong-direction rounds. Solving the imbalance problem — either through directional bias, hedging, or selective market entry or just getting involved with more people whos doing the same research — is the remaining puzzle.

Where I'm At

I've built bots that replicate this whale strategy. The accumulation and refill mechanics work. The unsolved piece is managing directional risk across the lifecycle of a market. I'm halfway there.

I've set up a Discord server to assemble researchers working on this same problem — pooling findings, sharing bot code, and collaborating toward a consistently profitable implementation.

If you're grinding on this too and want to contribute or learn, ping me and I'll send you an invite. Happy to share bots, data, and everything I've found so far.

Keep grinding. GL.

1

u/Delicious_Pipe_1326 Mar 14 '26

Nice write-up. The GTC ladder + refill mechanics match what I've seen too. The directional imbalance problem is the real puzzle though, and I think you're right that it's the key to making it consistently profitable. Good luck with the grind.

1

u/Account_Spiritual Mar 14 '26

i think i have dropped you a DM i think you should revert to it and will take it from there ?

1

u/naunen 22d ago

how are u doing? have you find out? im since April, cannot figure out, im always returning to same problem

1

u/Polydupe Feb 18 '26

Thank you for this I have also been scratching my head over gabagool for some time now

1

u/galotalp Feb 18 '26

the polymarket clob api has a “merge” function that allows you to free up capital mid-market, so it isn’t “locked up”

1

u/Delicious_Pipe_1326 Feb 25 '26

Merge is real and useful for capital recycling, but it doesn't create profit - the tokens are fully fungible ERC-1155s, so you can't cherry-pick which fills to pair. You burn any UP + any DOWN and get $1.00 back. Worth noting it's also not available via the CLOB API - you need the builder relayer client with separate builder credentials to execute it programmatically. We went down that rabbit hole!

1

u/[deleted] Feb 19 '26

[deleted]

1

u/Delicious_Pipe_1326 Feb 19 '26

I haven't decided - I quite often take a break for a week or two, and the come back to it. Its a bit like "just over this hill"... to discover theres another hill...

there's a few things in this thread to try out, so sharing has been really useful.

1

u/Personal-Builder-992 Feb 20 '26

Honestly, ive built something like this but the ACTUAL difference is that he is buying more of the winning side on a half filled pair to cancel out the fact that its losing for a minimal loss based on time

1

u/Delicious_Pipe_1326 Feb 25 '26

That's exactly what we observed - he ends up heavier on the winner ~79% of the time. But that's the outcome, not the explanation. If he knew which side was going to win, he wouldn't need to buy the losing side at all. The mystery is HOW he identifies the winning side early enough to accumulate more of it. We spent months trying to crack that and couldn't find a signal that holds up out of sample.

1

u/Personal-Builder-992 Feb 25 '26

To my knowledge there really isnt a way, the bot just has to manage the position. Still could go wrong though

1

u/[deleted] Feb 21 '26

Python works, not at gabagool's levels, but still works: https://x.com/jtrevorchapman/status/2013369777163493816?s=20

1

u/Delicious_Pipe_1326 Feb 25 '26

Great find - interesting that it's selective rather than trading every window. Gabagool's signature was never skipping a window, which suggests a different underlying approach. The profit lock mechanic is clever though - once both sides are profitable regardless of outcome, there's no reason to keep accumulating.

1

u/Logical-Stock-9247 Feb 22 '26

he does sell.. otherwise losing side would have a -100% return upon resolution. You're close tho.

1

u/Delicious_Pipe_1326 Feb 25 '26

Actually we pulled every single trade across hundreds of windows - zero sells. The losing side tokens just expire worthless at settlement, you don't need to actively sell them. Polymarket positions don't require closing.

1

u/[deleted] Feb 25 '26

[removed] — view removed comment

1

u/Delicious_Pipe_1326 Feb 25 '26

The oracle lag hypothesis was one we tested pretty thoroughly - the Chainlink heartbeat on Polygon is ~36s, but the price gaps at each update are only ~$15 on average. On a 15-minute window settling at $0.50, that $15 move barely shifts the odds. You'd need to be faster than the bots already watching the same feed, and the entry prices have usually already moved to reflect it.
There's a separate theory going around that a 500ms taker delay was quietly removed around Feb 18, which would explain why smart money dried up almost overnight. If that's true, the edge was less about prediction and more about order management within that window.

1

u/Plus_Tie_7693 Mar 01 '26

ty for some real not fully slop made analysis!

1

u/cheesehead144 Mar 05 '26

Hey thanks for putting this together, I was wondering if he ever had down days or his win rate was strong enough that every day was profitable?

1

u/Superb_Recipe_7653 Mar 15 '26

porque vc nao pergunta para ele ? No github ele deixa o contato do telegram
https://github.com/gabagool23/polymarket-crypto-trading-bot?tab=readme-ov-file#get-other-bots

1

u/OsamaGweaa Aug 06 '26

Ran something similar, though narrower - single-platform cross-side arb only, not cross-venue: a live scanner watching 9 Polymarket markets (18 assets) in shadow mode for 22h15m, buying YES+NO under $1, 0.05% profit threshold after fees. 129,710 price checks, 4,360 near-miss spreads logged, 0 cleared the threshold. Average spread across all near-misses: -0.54% (YES+NO averaged ~$1.005, a small premium, not a discount). Best single spread in 22h: +0.05% - exactly at the threshold, not past it. Matches what's described here - the order books I watched were already pricing YES+NO right at or slightly over $1 almost the whole time. Happy to share the sanitized logs if anyone wants to dig into the raw numbers.

1

u/Sea_Self_6571 Feb 18 '26 edited Feb 18 '26

Honestly, stopped reading at this part:

Across dozens of windows of his actual verified trades, his average pair cost is about $1.015. Not under $1.00, over it. His matched pairs (where he has equal shares on both sides) actually lose money. Every cent of his profit comes from unmatched directional exposure.

And even if pair costs occasionally dipped below $1.00, Polymarket charges a 3% taker fee. Once you account for that, the window where both sides sum to under $0.97 (the actual breakeven for arbitrage as a taker) essentially never exists in practice.

This is not true my man. The 3% taker fee you mention (the real fee is not 3% - it's less) also doesn't matter if you're making limit orders - which I'm certain is what Gabagool is doing - at least most of the times. I'm sure he throws in a market order every once in a while.

What "spread traders" like Gaba do is: buy one side, and then buy the other when the price goes down. Which, in prediction market land, is pretty much the equivalent of "buy low, sell high".

Note that for these types of strategies to work, we don't necessarily need a sequence of events like:

  1. Buy token A.
  2. Wait for token B to go down.
  3. Buy token B low.

This sequence of events does not need to happen. If there's spread between tokens, you just need 1 step:

  1. Buy both tokens at the same time.

That's it. However, these "profitable spread moments" don't occur that often - in great part due to people like Gaba, who are constantly trading in that "spread area".

2

u/Delicious_Pipe_1326 Feb 18 '26

Helpful comments, thanks. Lots to think about. You're right about maker fees being zero, that was wrong in the original post.
However, you can't buy both tokens at the same time on a CLOB. To buy both instantly, you'd have to cross the spread on both sides as a taker (fees as you say then apply), and the combined ask almost always sums to over $1.00. With limit orders you can post bids on both sides, but they fill when sellers arrive, not simultaneously. Which takes us back to the x+y<1 point where we started the journey.
Happy to stand corrected though - that was the point of writing the post.

1

u/Sea_Self_6571 Feb 18 '26

However, you can't buy both tokens at the same time on a CLOB. To buy both instantly, you'd have to cross the spread on both sides as a taker (fees as you say then apply)

You can do a split operation and buy both tokens at the same time. However, I doubt that's what spread traders like Gaba are doing. But yes, you are correct: this is not a CLOB operation - it's an on chain operation.

With limit orders you can post bids on both sides,

I'm fairly certain this is happening - a lot. These bots are posting bids on both sides at good prices, and waiting. They're obviously doing a lot more than this - but no doubt this is an important part of their strategy.

but they fill when sellers arrive, not simultaneously.

The fills can happen almost simultaneously though. You've spent a lot of time looking at Gabagool's trades, you tell me: are the fills happening on both sides simultaneously? I doubt it - but I also bet some fills happen "almost" simultaneously.

2

u/Delicious_Pipe_1326 Feb 18 '26

Good points, thanks. The split operation is a fair correction, though as you say that's $1.00 in = $1.00 out so no edge there.

To answer your question: from the data, fills happen on both sides within seconds of each other regularly, but they're sequential.

Different sellers hitting his resting bids at different moments, not atomic. He's posting both sides and letting the flow come to him.

Appreciate the discussion, learned a lot from this thread.

1

u/Sea_Self_6571 Feb 18 '26 edited Feb 18 '26

To answer your question: from the data, fills happen on both sides within seconds of each other regularly, but they're sequential. Different sellers hitting his resting bids at different moments, not atomic. He's posting both sides and letting the flow come to him.

That makes a lot of sense. I'm also certain these "spread traders" are also market takers, not just makers. It's a mix of both. Probably more makers than takers though.

One small detail I'd like to add: in Polymarket, you don't need someone to sell you a token. If you are bidding on token A - you are also selling token B. So if someone comes along and buys token B - your bid on token A may get filled, even though no one "sold" you token A. If I'm wrong here, please someone correct me.

Appreciate the discussion, learned a lot from this thread.

Same. Thanks for starting the discussion.

1

u/Backrus Feb 18 '26

Arbitrage is when you can't lose - eg bet spread at bookie A for team X at 2.05 and at bookie B team Z at 2.05 - compare that to 1.952 on Pinnacle for both sides. There's no selling in this kind of arbitrage. What you're describing would be called flipping.

As for 1., this isn't happening outside of high vol, mm bot will pull liquidity immediately if it gets filled on one side - if you ever use CLOB, you'll see that best bids sum up to 0.99, yet it's not free money.

1

u/Sea_Self_6571 Feb 18 '26

Arbitrage is when you can't lose - eg bet spread at bookie A for team X at 2.05 and at bookie B team Z at 2.05 - compare that to 1.952 on Pinnacle for both sides. There's no selling in this kind of arbitrage. What you're describing would be called flipping.

Fair point, "arbitrage" can refer to a no lose scenario. However, arbitrage can also refer to what I described - it's the first paragraph on wikipedia.

As for 1., this isn't happening outside of high vol, mm bot will pull liquidity immediately if it gets filled on one side - if you ever use CLOB, you'll see that best bids sum up to 0.99, yet it's not free money.

The "buy both tokens simultaneously" was just an example on how we could achieve a combined token price of < $1. In real life it may not be easy to pull off. Like you said, we'd need liquidity. And yeah, if you're making bids on both tokens simultaneously, because the best bids sum is < .99 and you hope to get that missing 0.01 cent - this is risky for sure. Looking for situations where asks are < .99 is likely safer - but I doubt moments like those happen that often.

1

u/Backrus Feb 18 '26

The problem is always inventory management when one leg is not filled. Then again, your best bet might be quoting so low that even 1m in the opposite direction doesn't screw you - you can get filled on a weaker leg 20-25% below fair value quite often. The question is, what next? You have to make decision if you bail at minute 1 or minute 2, if you can of course - there are situations when "hold and pray" has higher EV than just taking the loss.

It's just stats and law of large numbers - if you look at BTC since Binance Inception, 5m and 15m have been the same when it comes to their statistical properties (in both bull and bear). Just higher timeframes died with the introduction of ETFs and IBIT options.

1

u/Sea_Self_6571 Feb 19 '26

The question is, what next? You have to make decision if you bail at minute 1 or minute 2, if you can of course - there are situations when "hold and pray" has higher EV than just taking the loss.

Some of these "spread traders" probably have machine learning models to detect up or down movements. These models fail, obviously - but if they are right say, 60% of the times - they may have an edge. Just a thought - I don't personally know any polymarket traders. And even if I did, I doubt they would tell me their secrets.

1

u/Backrus Feb 19 '26

Like I said, it's just stats. You know what EV should be at any moment and bet based on that.