u/AdrianTUIU

Been lurking here for a while. Finally posting because I'm genuinely stuck and could use some outside perspective.

Spent the last couple months building a quant setup for Polymarket — BTC, ETH, SOL, all binary markets. Time-based signals, directional bets. Built everything from scratch: scraping CLOB and Gamma APIs, a full backtesting engine, paper trading environment, a live web dashboard that updates in real time, and a Telegram bot that sends me entry/exit alerts with PnL after every single trade. The whole infrastructure runs 24/7 on a Raspberry Pi with systemd services, remote access via Tailscale, the works.

Backtest looked really good. Six months of data, ~7k trades per asset, win rate around 70%, positive EV. I wasn't sloppy about it either:

  • In/out-of-sample splits
  • Monte Carlo on the equity curve (thousands of randomizations, still held up)
  • Signal shuffling — randomize timing, keep everything else. Results fell apart immediately. That one actually gave me real conviction.
  • Walk-forward with rolling retrain/test
  • Combinatorial test across 16 rounds (rough PBO-style) — held up consistently
  • Parameter sensitivity — not just riding some magical narrow setting
  • Fees and spread baked in throughout, not added at the end

Same thing on all three assets separately. Same pattern each time.

Then paper trading happened and it kinda shocked me.

Four weeks live-feel paper trading, tracking every trade — timestamp, direction, price, fees included. The Telegram bot was firing after every fill, the dashboard was updating equity in real time, everything looked operationally solid. Win rate: still 67-70%. That held fine.

But EV per trade basically vanished. Wins were tiny compared to backtest. Net PnL way below what I'd projected. The signal was pointing the right way, the money just wasn't showing up.

Took me embarrassingly long to figure out why. I'm attaching a screenshot of the equity curve — you can see exactly where things started going sideways. There's a clear inflection point where the curve stops climbing and just goes flat. That's the moment I restarted the bot after identifying the bug and switching to a realistic entry price at a fixed point after signal confirmation. Before that point the equity was building fine. After the fix it basically flatlined — which confirmed the issue wasn't the signal direction, it was the entry.

In my backtest I used an average price over the signal window as the entry proxy. I did it by accident and the Problem is, that average included prices from before the signal actually fired. By the time the signal triggers at the end of the window, the market's already moved. I was using prices I could never actually get. Classic look-ahead bias, just on entry rather than direction. So live: the win rate holds (the signal has real info), but most of the move happens before my entry. I'm catching leftovers. Losses stay full size. Edge just bleeds out.

Tried a bunch of things to fix it — earlier confirmation windows, adjusting entry timing, only trading within certain price zones, session splits (Asia/Europe/US), requiring multiple triggers, treating up/down separately. Nothing fixed it consistently across all three assets. Earlier entry = better price but weaker signal. Later entry = stronger signal but price is gone. Never found a sweet spot that didn't break somewhere.

Current read: the signal probably says something real — consistent win rate across three separate coins is hard to dismiss as noise — but the market prices in the move before I can actually trade it. Edge is gone by the time I get there.

So either these markets are just too efficient for this kind of signal, or my entry model needs a complete rethink. Probably some of both.

Few questions if anyone's dealt with something similar:

  • If win rate holds live but EV collapses, is entry/execution almost always the culprit? Anything else actually worth checking?
  • With only historical trade prints and no order book data, what's a realistic way to model entry price in backtests?
  • Any clean way to test whether a signal has edge at actually tradable prices vs just looking good in backtests?
  • Seeing this across BTC, ETH, SOL separately — does that point to something structural in these markets, or more likely an artifact of my signal design?
  • Anyone with experience in fast binary prediction markets — is this execution gap a known thing or am I missing something?

Happy to share more detail on the validation setup or the dashboard/bot architecture if useful. Mostly just want a sanity check before I either rebuild the entry model or kill the whole idea.

https://preview.redd.it/1vjov0weokwg1.png?width=3419&format=png&auto=webp&s=245cc983a00bf1e6efab2fa7c00e008bd6e5ac8c

reddit.com
u/AdrianTUIU — 23 days ago