آموزش Polymarket Bot · فصل 14 از 32
آربیتراژ خبری در Polymarket: چطور روی headlineها از بازار جلو بزنیم، source feedها (RSS/Twitter/AP)، latency budget، false-positive filterها، و اینکه news edge چه زمانی در قیمت بازار از بین میرود.
این فصل چه چیزهایی را پوشش میدهد
News arbitrage یعنی معامله روی public information، سریعتر از آنکه بازار آن را reprice کند. این edge واقعی است اما باریک - بیشتر "news" تا وقتی انسان آن را بخواند، از قبل در قیمت لحاظ شده است. این فصل توضیح میدهد کدام sourceها واقعاً از بازار جلو میزنند، latency budget که این strategy را تعریف میکند چیست، و false-positive filterای که بدون آن bot روی هر retweet معامله میکند.
- Information edge چه شکلی دارد
- News sourceها: RSS، Twitter، AP، official feedها
- Latency budget: از read تا trade در کمتر از 2 ثانیه
- False-positive filterها
- چه زمانی news edge از بین میرود
- Code: poll کردن news feed و ثبت FOK روی marketهای مرتبط
- Risk: نیمهحقیقتها و headlineهای پسگرفتهشده
Information edge چه شکلی دارد
News arbitrage یعنی معامله روی public information سریعتر از آنکه بازار آن را reprice کند. این edge در یک بازه باریک وجود دارد - معمولاً 30 تا 300 ثانیه - بین زمانی که یک fact عمومی میشود و زمانی که Polymarket آن را منعکس میکند.
برای اینکه این edge واقعی باشد، سه چیز باید درست باشد. اول، source خبر باید از median Polymarket trader سریعتر باشد (Twitter از mainstream press سریعتر است؛ AP wire از Twitter سریعتر است). دوم، خبر باید بدون ابهام باشد (اعلام injury، حکم دادگاه) - interpretation latency را میبلعد. سوم، market باید بهاندازه کافی گسترده باشد که حرکت قیمت ارزش spread tax را داشته باشد.
Botهایی که این edge را شکار میکنند معمولاً به دو دسته تقسیم میشوند: آنهایی که به sourceهای مستقیم subscribe میکنند و parse انجام میدهند، و آنهایی که یک حرکت غیرعادی قیمت در Polymarket را میبینند و نتیجه میگیرند که خبر رخ داده است. هر دو معتبرند؛ اولی leading است، دومی following.
News sourceها: RSS، Twitter، AP، official feedها
Sourceها بر اساس latency تا public-information-status، از سریعترین به کندترین.
- Direct primary sourceها: court filingها، government press releaseها، central-bank announcementها. اغلب RSS یا API عمومی دارند. سریعترین و با کمترین false-positive rate.
- AP wire / Reuters Eikon (paid). همان wireی که traditional traderها استفاده میکنند. حدود 5 تا 30 ثانیه جلوتر از consumer Twitter.
- Twitter (X، paid API). فهرست accountهای verified: حسابهای رسمی سازمانها، beat reporterها. APIهای رایگان rate-limit زیادی دارند؛ برای tier Pro پرداخت کنید یا از relay service استفاده کنید.
- Specialized newsletterها / Discord: Substackهای پولی، industry feedهای embargo شده. برای marketهای niche مفیدند (crypto، esports).
- Mainstream press websiteها: برای news-arb edge خیلی کند هستند.
RSS برای هر چیزی که RSS منتشر میکند - رایگان است و polling intervalها قابل اتکا هستند. Twitter برای بقیه. AP برای news deskهای جدی در production.
Latency budget: read-to-trade در کمتر از 2 ثانیه
Bot باید در مجموع ظرف 1 تا 2 ثانیه ingest، classify، decide و order ثبت کند. Budget:
- Ingest: 50 تا 300ms (websocket feed، RSS poll، Twitter stream).
- Classify: 50 تا 200ms (regex / keyword match، و در صورت نیاز LLM اگر prompt را cache کرده باشید).
- Decide: 50ms (lookup در rules table؛ mapping از news tag به market slug).
- Place: 200 تا 500ms (FOK signed order به CLOB).
بزرگترین مصرفکننده budget، LLM classification است. یک GPT-4 call با 500 token، 1 تا 3 ثانیه اضافه میکند؛ یعنی کل arb window از بین میرود. برای production، با keyword ruleها classify کنید؛ از LLM فقط برای calibration آفلاین مجموعه keywordها استفاده کنید.
False-positive filterها
News-arb botهایی که false positive را filter نمیکنند، روی هر retweet معامله میکنند و از طریق spread tax ضرر میدهند. سه filter:
- Source whitelist: فقط روی accountها/feedهای موجود در یک فهرست از پیش تأییدشده عمل کنید. این فهرست کوچک است (10 تا 30 source).
- Keyword + confirmation pair: یک keyword matchِ تنها نویز است؛ match در دو source مستقل طی 30 ثانیه signal است.
- Market-state guard: marketهایی را که در 60 ثانیه گذشته بیش از > 5% حرکت کردهاند skip کنید - شخص دیگری خبر را زودتر گرفته، edge از بین رفته است.
false-positive rate در filterهای خوبتنظیمشده: حدود 1 در 5 تا 10. false-positive rate برابر با 90% strategy را نابود میکند؛ نرخ 50% با position size کوچک هنوز قابل استفاده است.
چه زمانی news edge از بین میرود
پنجره زمانی از «خبر عمومی شد» تا «قیمت خبر را منعکس کرد» هر سال سریعتر بسته میشود. در 2020، marketهای سیاسی با قیمت متوسط چند دقیقه زمان میخواستند تا headline را جذب کنند. در 2026، همان headlineها به 30 تا 90 ثانیه فشرده میشوند، پیش از آنکه قیمت کاملاً حرکت کرده باشد.
نشانههای از بین رفتن edge: PnL هر trade روی tradeهای flag شده از +3c به flat در یک window 30-trade کاهش پیدا میکند؛ نرخ false positiveهایی که معلوم میشود از قبل در قیمت لحاظ شده بودند بالای 70% میرود؛ market در کمتر از 200ms FOK ask شما را میزند چون شخص دیگری زودتر رسیده است.
pivot صادقانه وقتی edge از بین میرود: رفتن به سمت news کندتر و interpretiveتر (حکم دادگاه، minutes جلسات central bank) که parsing معنی آن بیشتر از latency race زمان میبرد. یا توقف strategy.
Code: poll کردن news feed و ثبت FOK روی marketهای مرتبط
Skeleton production: یک news source را poll کنید، rule matchها را اجرا کنید، و روی hitها FOK order بفرستید.
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 intervalها: برای RSS، 5 تا 15 ثانیه. هرجا available بود از WebSocket استفاده کنید (Twitter، AP wire). همیشه dedup را با ID ارائهشده توسط source انجام دهید؛ هرگز فرض نکنید polling دقیقاً once-only است.
Risk: نیمهحقیقتها و headlineهای پسگرفتهشده
بدترین روز news-arb bot زمانی است که معلوم شود یک headline اشتباه بوده است. مثال: یک Reuters tweet میگوید «Trump fires Yellen»، market 8 cent میپرد، 12 دقیقه بعد tweet حذف و تصحیح میشود. Botی که در +8c خریده حالا inventory را در -3c نگه داشته و راه چارهای ندارد.
دفاعها:
- Two-source confirmation: هرگز فقط با یک tweet معامله نکنید؛ از یک source مستقل دوم طی 60 تا 180 ثانیه signal تأییدی بخواهید.
- Position size متناسب با source confidence: AP wire = حجم کامل؛ Twitter از یک beat reporter verified = 50%؛ rumor source = 25%.
- Auto-exit روی retraction signal: اگر sourceی که استفاده کردهاید ظرف 30 دقیقه correction صادر کرد، بدون توجه به PnL از معامله خارج شوید.
walk-back problem یک سقف سخت برای position sizing در news-arb است. معامله با $50 برای هر signal به شما اجازه میدهد از false-positive rate برابر با 30% جان سالم به در ببرید؛ معامله با $500 اینطور نیست.





