Polymarket Bot Tutorial · অধ্যায় 20 of 32

Polymarket whale wallets ট্র্যাক করুন এবং programmatically top performers-এর copy-trade করুন: leaderboard এবং on-chain analysis-এর মাধ্যমে profitable wallets শনাক্ত করুন, size এবং timing rules মেনে তাদের trades mirror করুন।

এই অধ্যায়ে কী কী কভার করা হয়েছে

জয়ী Polymarket wallets copy করা একটি জনপ্রিয় ধারণা, কিন্তু Polymarket-এর আসল whales-রা বেশিরভাগ সময় resolved markets-এ late-window arb করছে, directional bets নয়। এই অধ্যায়টি on-chain analysis থেকে পাওয়া সৎ research: কোন wallets আসলে copy করা উচিত, কেন বেশিরভাগ copy করার মতো নয়, এবং position-sizing math।

  • Profitable wallets শনাক্ত করা
  • On-chain trade detection
  • Whale-এর তুলনায় position sizing
  • Latency: কত দেরি হলে খুব দেরি
  • Filters: শুধু verified edge আছে এমন wallets follow করুন
  • Code: whale buy event detect করুন, sized copy place করুন

Profitable wallets শনাক্ত করা

Whale-copying-এর premise হলো কিছু wallets ধারাবাহিকভাবে profitable এবং তাদের entries copy করলে তাদের edge-এর কিছু অংশ ধরা যায়। 2025-26 সালে Polymarket-এর top wallets-এর on-chain analysis একটি sobering result দিয়েছে: visible whales-এর বেশিরভাগই directional trading নয়, resolved markets-এ late-window arbitrage করছে।

আমরা তিনটি candidate whale wallet-এ যে profile মেপেছি:

  • "hhhhhh6" (98.5% win rate, $n M volume) - entries-এর 88% price ≥0.95-এ, median entry timestamp 300s window-এর 226s। Pure tail-yield arb, directional নয়।
  • "anonymous" (20% win rate) - degenerate gambler। Copy করলে money loss হবে।
  • "Jkim123" (53.5% win rate) - coin-flip। Copy করার মতো signal নয়।

এই whales-এর trades-এর 0% কোনো 5-minute window-এর প্রথম 120s-এর মধ্যে ঘটেছে। Predictive signal (যদি থাকে) তাহলে EARLY-window large entries থেকে আসবে - কিন্তু ওই wallets-গুলো leaderboard-এর শীর্ষে নেই, কারণ সেগুলো hard।

On-chain trade detection

একটি target wallet-এর trades detect করতে হয় Polymarket-এর data-api poll করতে হবে, না হয় on-chain CTF transfer events-এ subscribe করতে হবে। data-api optionটি আরও সহজ।

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)

Data-api-এর জন্য পাঁচ সেকেন্ড polling হলো practical floor। এর চেয়ে কম হলে rate limits-এ পড়বেন। Sub-second detection-এর জন্য whale-এর proxy address দিয়ে filtered CTF contract-এর on-chain ERC-1155 TransferSingle events-এ subscribe করুন।

Whale-এর তুলনায় position sizing

আপনি যদি আপনার copy-কে whale-এর trade-এর একটি constant fraction হিসাবে size করেন, তাহলে তাদের risk profile-ই inherit করবেন। দুইটি practical alternative রয়েছে।

  • Cap-based: whale-এর size যাই হোক, প্রতিটি copy-কে একটি fixed dollar amount ($10-50) এ size করুন। Compounding ধীর, কিন্তু প্রতি trade-এ loss bounded থাকবে।
  • Win-rate-weighted: whale-এর recent win rate-এর function হিসেবে copy size করুন। 60%+ WR → full-size copy; 40-60% → half-size; 40%-এর নিচে → skip করুন।

প্রথম deploy-এর জন্য cap-based approach বেশি safe। Win-rate-weighted-এ যান শুধু তখনই, যখন আপনি whale-এর actual win rate আপনার নিজের copies-এ measure করেছেন (যা সাধারণত তাদের headline number-এর চেয়ে খারাপ, কারণ আপনি late আসেন)।

Latency: কত দেরি হলে খুব দেরি

Whale-এর trade execution-এর 1-2 সেকেন্ডের মধ্যে publicly visible হয়ে যায়। Copy করতে হলে read side-এ তার চেয়েও কম latency, plus আপনার own order placement latency দরকার।

Typical copy bot-এর end-to-end: 5-10 second polling + 200ms order placement = মোট 5-15 seconds। আপনার copy fire করার সময়ে whale-এর signal price-এ already reflect হয়ে গেছে।

Polymarket-এর narrow markets-এ 99% copies-এর জন্য এটি খুব দেরি। Whale-এর entry mid-কে 1-2 cents move করেছে; আপনি তাদের entry-এর তুলনায় সেই 1-2 cents premium pay করেন। তাদের edge যদি 3c হয়, আপনি পৌঁছানোর আগেই তার অর্ধেক gone।

যে copy bots কাজ করে তারা হয় (a) slow-moving markets target করে যেখানে 30s latency matter করে না, অথবা (b) sub-second timeframe-এ react করতে on-chain event subscription ব্যবহার করে।

Filters: শুধু verified edge আছে এমন wallets follow করুন

কোনো wallet copy list-এ যোগ করার আগে তিনটি filter।

  • 30+ closed trades wallet-এর history-তে। ছোট sample noise।
  • Lifetime win rate > 60%, অথবা entry prices-এর ভিত্তিতে per-trade positive expected value। যেকোনো একটি condition; দুটোই হলে আরও ভালো।
  • Pattern late-window arb নয়। Entry-তে median seconds-to-resolution check করুন; যদি এটা 0-এর কাছে হয়, wallet tail-yield arb করছে, যা আপনি reproduce করতে পারবেন না।

বেশিরভাগ candidate whale এই তিনটির একটিতে fail করে। আসল copyable wallets-এর pool ছোট। List maintain করতে periodic recheck লাগে - গত মাসে profitable ছিল এমন wallets এ মাসে নাও হতে পারে।

Code: whale buy event detect করুন, sized copy place করুন

Reference: watched whale-এর জন্য একটি CTF TransferSingle event detect করুন, তারপর একটি sized copy buy fire করুন।

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)

from (zero address = mint = whale bought) বনাম to (zero address = burn = sold) চেক করে buy ও sell আলাদা করুন।

প্রায়শই জিজ্ঞাসিত প্রশ্ন

Copy করার জন্য profitable Polymarket wallets কীভাবে খুঁজব?
Polymarkets-এর own leaderboard বিভিন্ন window (week, month, all-time) জুড়ে PnL অনুযায়ী top wallets দেখায়। Independent on-chain analytics tools (DeFiLlama, Dune dashboards)-ও Polymarket wallets rank করে। মাসের পর মাস verified profitability আছে এমন wallets বাছুন, সপ্তাহের নয় - hot streaks উল্টে যায়।
আমি কীভাবে real time-এ whale trade detect করব?
Wallet address-এর জন্য Polygon transaction logs-এ subscribe করুন (web3.py / ethers eth_subscribe), Polymarket exchange contracts-এ matchOrder calls filter করুন। Event decode করে market, side, এবং size বের করুন। Latency: on-chain confirmation থেকে আপনার bot react করা পর্যন্ত 2-10 seconds।
আমি কি whale-এর trade exactly copy করতে পারি?
Exactly নয় - আপনি detect করে submit করার সময়ে price প্রায়ই already move করে গেছে। বাস্তবসম্মত copy হলো "scale-in": তাদের trade-এর কয়েক মিনিট পরে whale-এর position-এর একটি fraction নিন, এবং copying-এর cost হিসেবে price degradation মেনে নিন। Sizing: প্রতি copy-তে তাদের position size-এর 1-5%।
এবার যদি whale ভুল করে?
আপনি lose করবেন। Copy trading underlying strategy-এর সব risk-এর সঙ্গে latency loss-ও inherit করে। Hedge হলো একাধিক whale copy করা এবং প্রতিটিকে আপনার portfolio-এর ছোট অংশ হিসেবে ধরা - যদি 5টি whale প্রত্যেকে independently 60% win rate রাখে, portfolio compound করবে। আপনি যদি 60% win rate-এর একটিমাত্র whale copy করে concentrate করেন, variance আপনাকে শেষ করবে।
Polymarket-এ copy trading কি prohibited?
না। Polymarkets-এর terms public leaderboards এবং trades দেখা allow করে। যা prohibited তা হলো multi-accounting (limit circumvent করতে এক ব্যক্তি হিসেবে multiple wallets চালানো)। আপনার single wallet থেকে অন্যদের wallets copy-trade করা ঠিক আছে।
আমি কীভাবে whale-এর তুলনায় size করব?
Bankroll-fraction sizing: whale কত trade করেছে তা নির্বিশেষে আপনার total bankroll-এর 2-5%-এর বেশি করে কোনো single trade copy করবেন না। Whale signal-কে অনেকগুলোর মধ্যে একটি হিসেবে দেখুন, নিশ্চিত জিনিস হিসেবে নয়। আপনার bankroll-এর 10x whale-ও হারতে পারে - আপনি aggressively size করলে relative drawdown অনেক খারাপ হবে।