Polymarket Bot Tutorial · Chapter 20 of 32

Lacak wallet whale Polymarket dan copy-trade performer terbaik secara programmatic: identifikasi wallet yang profit lewat leaderboard dan analisis on-chain, mirror trade mereka dengan aturan ukuran dan timing.

Apa yang dibahas di chapter ini

Menyalin wallet Polymarket yang menang adalah ide yang populer, tetapi whale sebenarnya di Polymarket sebagian besar melakukan late-window arb pada market yang sudah resolved, bukan directional bets. Chapter ini adalah riset jujur dari analisis on-chain: wallet mana yang benar-benar layak dicopy, mengapa sebagian besar tidak layak dicopy, dan matematika position-sizing.

  • Mengidentifikasi wallet yang profit
  • Deteksi trade on-chain
  • Position sizing relatif terhadap whale
  • Latency: seberapa terlambat itu terlalu terlambat
  • Filter: hanya ikuti wallet dengan verified edge
  • Code: deteksi whale buy event, lakukan sized copy

Mengidentifikasi wallet yang profit

Premis whale-copying adalah bahwa beberapa wallet secara konsisten profit dan menyalin entry mereka menangkap sebagian edge mereka. Analisis on-chain terhadap top wallet Polymarket pada 2025-26 menghasilkan hasil yang mengejutkan: sebagian besar whale yang terlihat sebenarnya melakukan late-window arbitrage pada market yang sudah resolved, bukan directional trading.

Profil yang kami ukur pada tiga wallet whale kandidat:

  • "hhhhhh6" (98.5% win rate, $n M volume) - 88% entry pada harga ≥0.95, median timestamp entry 226 detik dari window 300 detik. Pure tail-yield arb, bukan directional.
  • "anonymous" (20% win rate) - degenerate gambler. Menyalin ini malah rugi.
  • "Jkim123" (53.5% win rate) - coin-flip. Bukan sinyal yang layak dicopy.

0% trade whale ini terjadi dalam 120 detik pertama dari window 5 menit mana pun. Sinyal prediktif (jika ada) akan datang dari entry besar di EARLY-window - tetapi wallet seperti itu bukan yang berada di puncak leaderboard, karena memang sulit.

Deteksi trade on-chain

Mendeteksi trade wallet target membutuhkan polling ke data-api Polymarket atau subscribe ke event transfer CTF on-chain. Opsi data-api lebih sederhana.

def watch_wallet(wallet_addr, last_seen_ts=0):
    while True:
        url = f"https://data-api.polymarket.com/activity?user={wallet_addr}&limit=100"
        events = requests.get(url).json()
        for ev in events:
            ts = int(ev.get("timestamp", 0))
            if ts <= last_seen_ts: continue
            if ev["type"] == "TRADE":
                process_whale_trade(ev)
            last_seen_ts = max(last_seen_ts, ts)
        time.sleep(5)

Polling lima detik adalah batas praktis untuk data-api. Lebih rendah dari itu Anda akan kena rate limit. Untuk deteksi sub-detik, subscribe ke event on-chain ERC-1155 TransferSingle dari contract CTF yang difilter berdasarkan proxy address milik whale.

Position sizing relatif terhadap whale

Jika Anda meng-size copy Anda sebagai fraksi konstan dari trade whale, Anda mewarisi profil risk mereka. Ada dua alternatif praktis.

  • Cap-based: ukuran setiap copy dibatasi pada nominal dolar tetap ($10-50) terlepas dari ukuran whale. Lambat untuk compounding, tetapi loss per trade terbatas.
  • Win-rate-weighted: ukuran copy sebagai fungsi dari win rate terbaru whale. WR 60%+ → full-size copy; 40-60% → half-size; di bawah 40% → skip.

Pendekatan cap-based adalah deployment pertama yang lebih aman. Pindah ke win-rate-weighted hanya setelah Anda mengukur win rate aktual whale pada copy ANDA (yang biasanya lebih buruk daripada angka headline mereka karena Anda datang terlambat).

Latency: seberapa terlambat itu terlalu terlambat

Trade whale terlihat publik dalam 1-2 detik setelah eksekusi. Menyalinnya membutuhkan latency baca yang lebih cepat dari itu, ditambah latency placement order Anda sendiri.

End-to-end untuk copy bot tipikal: polling 5-10 detik + order placement 200ms = total 5-15 detik. Saat copy Anda dieksekusi, sinyal whale sudah tercermin di harga.

Untuk 99% copy, ini terlalu terlambat di market sempit Polymarket. Entry whale menggeser mid 1-2 sen; Anda membayar premi 1-2 sen itu dibanding harga masuk mereka. Jika edge mereka 3c, separuhnya sudah hilang saat Anda tiba.

Copy bot yang bekerja biasanya (a) menarget market yang bergerak lambat di mana latency 30 detik tidak masalah, atau (b) menggunakan on-chain event subscription untuk bereaksi dalam timeframe sub-detik.

Filter: hanya ikuti wallet dengan verified edge

Tiga filter sebelum menambahkan wallet apa pun ke daftar copy Anda.

  • 30+ closed trades dalam riwayat wallet. Sampel yang lebih kecil hanyalah noise.
  • Lifetime win rate > 60%, ATAU expected value positif per trade berdasarkan harga entry. Salah satu kondisi; keduanya lebih baik.
  • Pola BUKAN late-window arb. Periksa median detik-ke-resolution saat entry; jika mendekati 0, wallet itu melakukan tail-yield arb yang tidak bisa Anda reproduksi.

Sebagian besar kandidat whale gagal di salah satu dari tiga hal ini. Pool wallet yang benar-benar bisa dicopy kecil. Menjaga daftar ini memerlukan pengecekan ulang berkala - wallet yang bulan lalu profit mungkin tidak profit bulan ini.

Code: deteksi whale buy event, lakukan sized copy

Referensi: deteksi event CTF TransferSingle untuk whale yang diawasi, lalu jalankan buy copy dengan ukuran tertentu.

from web3 import Web3
w3 = Web3(Web3.WebsocketProvider(POLYGON_WSS))
ctf = w3.eth.contract(address=CTF_ADDR, abi=CTF_ABI)
WHALES = {"0xabc...": {"fraction": 0.05, "cap": 50}}

def on_transfer(event):
    to = event.args["to"].lower()
    if to not in WHALES: return
    cfg = WHALES[to]
    token_id = event.args.id
    whale_size = event.args.value / 1e6
    copy_size = min(cfg["cap"], whale_size * cfg["fraction"])
    if copy_size < 5: return  # not worth fees
    book = fetch_book(str(token_id))
    if book.best_ask:
        place_fok(str(token_id), "BUY", book.best_ask + 0.01, copy_size)

# subscribe to ERC-1155 TransferSingle events from CTF
filt = ctf.events.TransferSingle.create_filter(fromBlock="latest")
while True:
    for ev in filt.get_new_entries(): on_transfer(ev)
    time.sleep(0.5)

Bedakan buy dari sell dengan memeriksa from (zero address = mint = whale membeli) vs to (zero address = burn = sold).

Pertanyaan yang sering diajukan

Bagaimana cara menemukan wallet Polymarket yang profit untuk dicopy?
Leaderboard Polymarkets sendiri menampilkan top wallet berdasarkan PnL di berbagai window (minggu, bulan, all-time). Independent on-chain analytics tools (DeFiLlama, Dune dashboards) juga memberi peringkat wallet Polymarket. Pilih wallet dengan profitability yang terverifikasi selama berbulan-bulan, bukan berminggu-minggu - hot streak bisa berbalik.
Bagaimana cara mendeteksi trade whale secara real time?
Subscribe ke Polygon transaction logs untuk address wallet tersebut (web3.py / ethers eth_subscribe), lalu filter untuk panggilan matchOrder pada contract exchange Polymarket. Decode event untuk mendapatkan market, side, dan size. Latency: 2-10 detik dari konfirmasi on-chain sampai bot Anda bereaksi.
Bisakah saya menyalin trade whale dengan tepat?
Tidak persis - pada saat Anda mendeteksi dan mengirim, harga sering sudah bergerak. Copy yang realistis adalah "scale-in": ambil sebagian dari posisi whale selama beberapa menit setelah trade mereka, dengan menerima degradasi harga sebagai biaya untuk copy. Sizing: 1-5% dari ukuran posisi mereka per copy.
Bagaimana jika whale kali ini salah?
Anda rugi. Copy trading mewarisi semua risiko dari strategi yang mendasarinya plus loss akibat latency. Hedenya adalah menyalin beberapa whale dan memperlakukan masing-masing sebagai porsi kecil dari portofolio Anda - jika 5 whale masing-masing punya win rate 60% secara independen, portofolio akan compounding. Jika Anda menyalin satu whale dengan win rate 60% dan terkonsentrasi, variance akan menghancurkan Anda.
Apakah copy trading dilarang di Polymarket?
Tidak. Ketentuan Polymarkets mengizinkan melihat leaderboard dan trade publik. Yang dilarang adalah multi-accounting (menjalankan beberapa wallet sebagai satu orang untuk mengakali batas). Copy-trading wallet orang lain dari satu wallet Anda sendiri boleh.
Bagaimana cara meng-size relatif terhadap whale?
Bankroll-fraction sizing: jangan pernah menyalin satu trade lebih dari 2-5% dari total bankroll Anda, berapa pun yang ditradingkan whale. Perlakukan sinyal whale sebagai salah satu dari banyak sinyal, bukan sesuatu yang pasti. Whale dengan bankroll 10x lebih besar dari Anda tetap bisa rugi - drawdown relatif Anda jauh lebih buruk jika Anda meng-size terlalu agresif.