Polymarket Bot Tutorial · Chương 14 trên 32

News arbitrage trên Polymarket: cách đánh bại thị trường trên các headline, nguồn feed (RSS/Twitter/AP), latency budgets, false-positive filters, và khi news edge chết dần vào giá thị trường.

Chương này bao gồm những gì

News arbitrage là chiến lược giao dịch dựa trên public information nhanh hơn tốc độ thị trường repricing nó. Edge là có thật nhưng rất hẹp - phần lớn "news" đã nằm trong giá vào thời điểm con người đọc xong. Chương này sẽ đề cập những nguồn nào thực sự beat thị trường, latency budget định nghĩa chiến lược, và false-positive filter mà thiếu nó thì bot sẽ trade trên mọi retweet.

  • Information edge trông như thế nào
  • News sources: RSS, Twitter, AP, official feeds
  • Latency budget: từ đọc đến trade trong dưới 2 giây
  • False-positive filters
  • Khi news edge chết
  • Code: poll news feed và đặt FOK trên các thị trường liên quan
  • Risk: half-truths và walked-back headlines

Information edge trông như thế nào

News arbitrage nghĩa là trade trên public information nhanh hơn tốc độ thị trường repricing nó. Edge tồn tại trong một cửa sổ hẹp - thường 30-300 giây - giữa lúc một факт trở thành công khai và lúc Polymarket phản ánh nó.

Để edge là thật, ba điều phải đúng. Thứ nhất, nguồn tin phải nhanh hơn median Polymarket trader (Twitter nhanh hơn mainstream press; AP wire nhanh hơn Twitter). Thứ hai, news phải rõ ràng, không mơ hồ (một thông báo chấn thương, một phán quyết của tòa án) - phần diễn giải sẽ ngốn latency. Thứ ba, thị trường phải đủ rộng để biến động giá đủ bù phí spread.

Bot săn edge này thường rơi vào hai nhóm: nhóm subscribe trực tiếp vào nguồn và parse, và nhóm theo dõi một cú move bất thường trên Polymarket rồi suy ra là đã có news. Cả hai đều hợp lý; nhóm thứ nhất đi trước, nhóm thứ hai đi sau.

News sources: RSS, Twitter, AP, official feeds

Sources được xếp hạng theo latency đến trạng thái public-information, nhanh nhất trước.

  • Direct primary sources: hồ sơ tòa án, press release của chính phủ, thông báo của central bank. Thường có public RSS hoặc API. Nhanh nhất, false-positive rate thấp nhất.
  • AP wire / Reuters Eikon (trả phí). Kênh wire mà traditional traders sử dụng. Nhanh hơn consumer Twitter khoảng ~5-30 giây.
  • Twitter (X, API trả phí). Danh sách các tài khoản verified: tài khoản chính thức của tổ chức, beat reporters. API miễn phí bị giới hạn rate quá nhiều; hãy trả phí gói Pro hoặc dùng relay service.
  • Specialized newsletters / Discord: paid Substacks, industry feeds có embargo. Hữu ích cho niche markets (crypto, esports).
  • Mainstream press websites: quá chậm để tạo news-arb edge.

RSS cho mọi thứ có xuất RSS - miễn phí, polling intervals ổn định. Twitter cho phần còn lại. AP cho news desks nghiêm túc với production.

Latency budget: đọc đến trade trong dưới 2 giây

Bot cần ingest, classify, quyết định và đặt lệnh trong tổng cộng 1-2 giây. Budget:

  • Ingest: 50-300ms (websocket feed, RSS poll, Twitter stream).
  • Classify: 50-200ms (regex / keyword match, có thể dùng LLM nếu bạn cache prompt).
  • Decide: 50ms (rules table lookup; mapping từ news tag sang market slug).
  • Place: 200-500ms (FOK signed order tới CLOB).

Thứ ngốn budget nhiều nhất là LLM classification. Một lệnh GPT-4 500 token sẽ thêm 1-3 giây; thế là toàn bộ arb window biến mất. Trong production, hãy classify bằng keyword rules; chỉ dùng LLM để calibration offline cho bộ keyword.

False-positive filters

News-arb bot không lọc false positive sẽ trade trên mọi retweet và mất tiền qua spread tax. Ba filter.

  • Source whitelist: chỉ hành động với các account/feed trong danh sách được phê duyệt trước. Danh sách này nhỏ (10-30 nguồn).
  • Keyword + confirmation pair: một keyword match đơn lẻ chỉ là noise; match trên hai nguồn độc lập trong vòng 30 giây mới là signal.
  • Market-state guard: bỏ qua các market đã move > 5% trong 60 giây gần nhất - người khác đã bắt được news trước, edge đã mất.

False-positive rate của filter được tinh chỉnh tốt: khoảng 1 trên 5-10. False-positive rate 90% sẽ phá hỏng chiến lược; 50% vẫn có thể dùng được nếu position size nhỏ.

Khi news edge chết

Khoảng thời gian từ lúc "news public" đến lúc "giá phản ánh news" ngày càng ngắn hơn mỗi năm. Năm 2020, các political markets giá trung bình mất vài phút để hấp thụ một headline. Đến năm 2026, cùng những headline đó nén xuống còn 30-90 giây trước khi giá di chuyển hoàn toàn.

Dấu hiệu edge đã chết: PnL mỗi trade trên các trade được đánh dấu giảm từ +3c xuống ngang hòa trong một cửa sổ 30 trade; tỷ lệ false positive hóa ra đã được priced-in trước đó tăng lên trên 70%; market chạm lệnh ask FOK của bạn trong 200ms vì người khác đã vào trước.

Cách pivot trung thực khi edge chết: chuyển sang news chậm hơn, mang tính diễn giải nhiều hơn (court rulings, central bank meeting minutes) nơi việc hiểu ý nghĩa mất thời gian hơn cuộc đua latency. Hoặc ngừng chạy chiến lược.

Code: poll news feed và đặt FOK trên các thị trường liên quan

Production skeleton: poll một news source, chạy rule match, bắn FOK orders khi có hit.

import feedparser, time, re
from py_clob_client.client import ClobClient

RULES = [
  {"regex": re.compile(r"out for season|torn ACL", re.I), "tag":"injury-fade"},
  {"regex": re.compile(r"federal reserve.*(rate cut|rate hike)", re.I), "tag":"fed-move"},
]

seen = set()
while True:
    feed = feedparser.parse("https://example.com/news.rss")
    for entry in feed.entries[:20]:
        if entry.id in seen: continue
        seen.add(entry.id)
        for rule in RULES:
            if rule["regex"].search(entry.title + " " + entry.summary):
                # Look up relevant Polymarket markets, place FOK
                fire(rule["tag"], entry)
                break
    time.sleep(15)

Polling intervals: 5-15 giây cho RSS. WebSocket khi có sẵn (Twitter, AP wire). Luôn dedup theo ID do source cung cấp; đừng bao giờ giả định polling là exactly-once.

Risk: half-truths và walked-back headlines

Ngày tệ nhất của news-arb bot là khi một headline hóa ra sai. Ví dụ: một tweet của Reuters nói "Trump fires Yellen," market tăng 8 cents, 12 phút sau tweet bị xóa và sửa lại. Một bot đã mua ở +8c giờ đang giữ inventory ở -3c mà không có đường thoát tốt.

Phòng vệ:

  • Two-source confirmation: đừng bao giờ trade chỉ dựa trên một tweet; yêu cầu tín hiệu xác nhận từ nguồn độc lập thứ hai trong vòng 60-180 giây.
  • Position size scaled to source confidence: AP wire = full size; Twitter từ một beat reporter verified = 50%; rumor source = 25%.
  • Auto-exit on retraction signal: nếu một source bạn dùng phát hành correction trong vòng 30 phút, thoát lệnh theo thị trường bất kể PnL.

Vấn đề walk-back là giới hạn cứng đối với position sizing của news-arb. Trade $50 mỗi signal có thể giúp bạn sống sót qua false-positive rate 30%; trade $500 thì không.

Câu hỏi thường gặp

Một bot retail có thật sự beat thị trường trên news không?
Có - nhưng chỉ khi bạn có nguồn tin nhanh, đáng tin và đường thực thi low-latency. Twitter (nay là X) từng là tiêu chuẩn vàng cho đến khi API bị siết; RSS từ Reuters/AP/Bloomberg là lựa chọn tốt tiếp theo. Edge của retail đã thu hẹp khi nhiều bot cạnh tranh hơn; hãy kỳ vọng tổng read-to-trade 200-1000ms, không phải 50ms.
Tôi nên subscribe những nguồn news nào?
RSS feeds từ AP (apnews.com), Reuters (reuters.com), và BBC cho phạm vi bao quát rộng. Riêng Polymarket: Twitter và Discord channels của nền tảng thường thông báo trước các thay đổi market. Với chủ đề cụ thể: press release của chính phủ (Federal Reserve PDFs, CFTC, WHO).
Bot của tôi cần phản ứng với news nhanh đến mức nào?
Với retail edge: dưới 2 giây từ lúc news xuất hiện đến lúc lệnh của bạn được submit. Với edge kiểu HFT (so với các bot khác): dưới 200ms. Phần lớn retail vẫn có thể cạnh tranh trong cửa sổ 1-3 giây vì đa số bot retail khác còn chậm hơn hoặc không có mặt ở một số loại feed nhất định.
Làm sao để tránh false-positive news trigger?
Ghép news với market cụ thể một cách cẩn thận. "Ceasefire" có thể xuất hiện trong 100 ngữ cảnh; chỉ một số mới liên quan đến market cụ thể của bạn. Dùng filter keyword AND market-tag: keyword "ceasefire" AND market-tag "Israel-Hezbollah" trước khi trigger. Tốt hơn nữa - dùng LLM để classify news là liên quan trước khi trade.
Điều gì xảy ra khi news sau đó bị rút lại?
Position của bạn có thể đổi từ thắng sang thua chỉ trong vài giây. News-arb bot cần chính sách thoát nhanh: nếu một nguồn theo sau mâu thuẫn với headline trong vòng N phút, hãy đóng position ngay lập tức dù bị lỗ. Rule của chúng tôi: đóng ở mức -3% đến -5% nếu bất kỳ nguồn theo sau nào làm giảm độ tin cậy của tín hiệu ban đầu.
News arbitrage có hợp pháp không?
Trade trên public news là hợp pháp ở mọi nơi chúng tôi biết. Trade trên material non-public information (insider tips, leaks trước khi công bố chính thức) thì không. Hãy bám vào public sources là được.