Když začneš procházet Polymarket leaderboardy, vidíš wallets s "+$2.4M všech-časů" a hned chceš kopírovat. Většinou je to chyba.
90% těch top-100 wallets jsou lottery winners. Vyhrály na 2024 election cycle, mají $2M PnL, a od té doby nic. Žádný edge, žádná aktivita, jen jeden lucky strike.
Když jsem prošel 500 nejlepších Polymarket wallets přes Goldsky API:
Specialists jsou tier kde existuje real edge. Diversified pros jsou těžší kopírovat protože jejich pozice se rotují rychle. Ghosts jsou potravinový řetězec pro influencery co prodávají kurzy.
Tohle je config co používám v find_top_profitable.py + rank_whales_winrate.py:
def is_real_specialist(wallet):
"""Filtruje lottery winners. Returns True jen pro tradery s edge."""
return all([
wallet.sharpe_30d >= 0.7,
wallet.max_drawdown_30d <= 0.15, # 15% DD max
wallet.hours_since_last_trade <= 96, # 4 days max
wallet.active_days_30d >= 5, # min 5/30 active
wallet.is_single_niche(threshold=0.6), # ≥60% of trades in 1 category
])
Sharpe = (mean_pnl_per_trade - risk_free) / std_pnl. Pro Polymarket s 2-7 day position holds, Sharpe 0.7+ na rolling 30d window znamená že wallet má statistically significant edge přes noise.
Lottery winner má Sharpe ratio bezvýznamně vysoký na all-time (jeden výhra dělí 0 std), ale na rolling 30d se zhroutí pod 0.3.
Někdo s 90% win rate ale 50% drawdown během losing streak je pro paper-mode v pohodě, ale live by ho zlikvidoval risk-of-ruin. 15% DD je cap kde se ztratky dají statisticky odhánět.
Polymarket events se pohybují rychle. Wallet co naposledy obchodoval před 4+ dny je checkout — nemůžu kopírovat něco co se neděje. Real specialists obchodují denně až několikrát denně.
"Active" = aspoň 1 fill za den. 5 z 30 znamená týdně aspoň 1× vidí market. Pod 5 = sezónní lottery, ne process.
Toto je klíčový test. Když >60% trades wallets je v jedné kategorii (weather, NBA, FX, election, esports), ten wallet má prokazatelnou doménovou expertise.
Diversified mode (žádná kategorie nemá >30%) je buď pro skutečně skill-based pros (rare), nebo pro yield-farmers/arb-botů. Mezi tím je 90% noise. Single-niche >60% je clean signal.
Po aplikaci tohoto filtru na všech ~2000 wallets z polymarket public data dostávám užitečnou shortlist:
| Whale (truncated) | Niche | Sharpe | DD | Status |
|---|---|---|---|---|
| 0x594edb91… | weather | 1.12 | 0.9% | active 24h |
| 0xdd5cc0a3… | politics near-cert | 0.95 | 0.0% | active 12h |
| 0x507e52ef… | international soccer | 0.78 | 11.2% | active 6h |
| 0x31864feb… | LoL esports | 0.89 | 2.4% | active 1h |
| 0xed107a85… | UFC + macro | 0.72 | 8.7% | active 3h |
| 0x6e1d5040… | BTC weekly bands | 0.81 | 4.5% | active 2h |
Tahle 6-tice je core BotLab Polymarket whale-mirror operace. Každý bot kopíruje jednoho specialists v jeho niche, paper-trade jen pozice se size proportional to whale's commitment.
"Ghost wallets jsou marketing kabinet. Specialist wallets jsou repository of edge. Filter je oddělí."
Kdybych kopíroval top-100 leaderboard naive (žádný filter), paper PnL by byl těžce negativní. Whales co vyhráli election fade out, peníze stojí v open pozicích týdny, žádný edge se neopakuje.
S filtrem na 6 specialists distribuovaných napříč nichemi — net +$3,910 paper za 16 dní (k 2026-05-02). Win rate napříč 11 active bots: ~62%.
Konkrétní top 3:
Live data: pnl.botlab.cz
Filter je v veřejném GitHub repo v find_top_profitable.py:
SHARPE_MIN = 0.7
DD_MAX = 0.15
LAST_TRADE_HOURS_MAX = 96
ACTIVE_DAYS_MIN = 5
NICHE_MIN_PCT = 0.6
def filter_specialists(wallets, lookback_days=30):
return [w for w in wallets if (
w.sharpe(lookback_days) >= SHARPE_MIN
and w.drawdown(lookback_days) <= DD_MAX
and w.hours_since_last_trade <= LAST_TRADE_HOURS_MAX
and w.active_days(lookback_days) >= ACTIVE_DAYS_MIN
and w.dominant_niche_pct(lookback_days) >= NICHE_MIN_PCT
)]
Když najdeš způsob jak filter zlepšit (např. Calmar ratio místo raw Sharpe, dynamický DD threshold podle market regime), open PR.