Polymarket Bot Tutorial · Chapter 31 of 32

راه‌اندازی Polymarket bot شما به‌صورت live: واریز اولیه 25-50 USD، قوانین take-profit و stop-loss، آستانه‌های alert (Telegram/email)، cadence برای reconciliation، و plan مقیاس‌دهی هفته اول.

این chapter چه چیزهایی را پوشش می‌دهد

گذار از paper به live جایی است که بیشتر builders به‌طور ناخواسته اولین واریزی خود را از دست می‌دهند. این chapter هم یک pre-flight checklist است و هم discipline هفته اول را ارائه می‌کند تا bugها قبل از اینکه به loss تبدیل شوند، شناسایی شوند.

  • Pre-flight checklist
  • First deposit: 25-50 USD
  • TP/SL rules from production
  • Monitoring: Telegram, email, dashboards
  • Reconcile cadence: every fire_exits cycle
  • First week: stay close, stay small
  • Scaling: when to deposit more

Pre-flight checklist

فهرست دقیق، به‌ترتیب، قبل از اینکه bot را از paper به live ببرید.

  1. 30 paper trade بسته‌شده. معیارهای موفقیتِ مکتوب برآورده شده یا فراتر رفته‌اند.
  2. فرمت diary بین paper و live یکسان است. همان JSONL schema.
  3. VPS راه‌اندازی شده. bot تنها process در حال اجراست؛ systemd unit تنظیم شده است.
  4. مکانیزم فایل HALT تست شده است. touch /opt/pmt/HALT bot را ظرف 30 ثانیه متوقف می‌کند.
  5. Telegram alerts تنظیم شده‌اند. یک alert آزمایشی با موفقیت ارسال می‌شود.
  6. kill switch افت روزانه تست شده است. یک drawdown 10% را شبیه‌سازی کنید؛ بررسی کنید که halt فعال می‌شود.
  7. on-chain reconciliation تست شده است. diary را به‌صورت دستی ناهماهنگ کنید؛ بررسی کنید که halt فعال می‌شود.
  8. آدرس واریز همان proxy wallet است - یعنی کیف‌پول قرارداد هوشمندی که Polymarket از طرف شما با آن معامله می‌کند (POLY_FUNDER_ADDRESS) - نه حساب شخصی شما، یعنی externally-owned account یا EOA. از طریق SDK و wallet show تأیید شده است.
  9. USDC/pUSD approvals تنظیم شده‌اند. هم standard exchange و هم NegRisk exchange.
  10. مقدار اولیه واریز به‌صورت مکتوب توافق شده است: 25-50 دلار برای smoke test.

اگر هر موردی کامل نشده است، live نروید. هر کدام در داستان‌های production گذشته برای یک builder هزینه واقعی داشته‌اند.

First deposit: 25-50 USD

واریز smoke-test عمداً کوچک است. هدف این است که مسیر live را verify کنید، نه اینکه پول دربیاورید.

چیزی که test می‌کنید: آیا order placement bot با view Polymarket از trade مطابقت دارد؟ آیا diary درست ثبت می‌شود؟ آیا take-profit GTC واقعاً post می‌شود؟ آیا bot از یک API error موقت recovery می‌کند؟ آیا اگر daily-loss را simulate کنید، halt فعال می‌شود؟

نتیجه مورد انتظار: 5-15 trade کوچک که تقریباً diary paper را mirror می‌کنند. هر divergence را به‌عنوان bug در نظر بگیرید، نه ویژگیِ «live noisy‌تر از paper است».

اگر این 25-50 دلار را در یک loss واقعیِ strategy از دست دادید، یعنی strategy به paper runهای بیشتری نیاز دارد. اگر آن را به‌خاطر bugها از دست دادید، قبل از scaling bugها را fix کنید.

TP/SL rules from production

ابتدا دو تعریف کوتاه، چون این بخش بر آن‌ها تکیه دارد. take-profit (TP) یک سفارش فروشِ از پیش‌تنظیم‌شده است که به‌محض رسیدن قیمت به هدف شما سود را قفل می‌کند؛ stop-loss (SL) نیز به‌محض افت قیمت به زیر یک حد، موقعیت را می‌فروشد تا یک معامله‌ی بد از کنترل خارج نشود. دو نوع سفارشی که در ادامه به کار می‌رود عبارت‌اند از GTC (Good-Til-Cancelled - سفارشی که در دفتر سفارش‌ها منتظر می‌ماند تا پر شود یا شما لغوش کنید) و FOK (Fill-Or-Kill - کل سفارش را بی‌درنگ پر می‌کند یا کاملاً لغو می‌کند). یک اصطلاح دیگر هم خواهید دید، mark، که اصلاً نوع سفارش نیست - بلکه فقط به معنای mid-price فعلی است که موقعیت را نسبت به آن می‌سنجید. در ادامه، Defaultهای production از trader ما، که در هزاران trade دوام آورده‌اند.

  • Buy: یک 1c بالاتر از best ask، FOK بزن. اگر ask بالاتر از 0.85 بود، معامله را رد کن - این «تله‌ی 0.99» است: بازاری که تقریباً تعیین‌تکلیف شده و حدود 0.90+ قیمت‌گذاری شده، فضای صعود ناچیزی می‌دهد اما اگر برگردد به‌شدت سقوط می‌کند، پس نسبت ریسک به پاداش وارونه می‌شود.
  • Take-profit: فروش GTC در entry + 4-6c، بلافاصله پس از fill خرید + 5 ثانیه wait برای settlement.
  • Stop-loss via mark: mid را monitor کنید؛ اگر mid به entry - 8c برسد، FOK sell در best bid (بدون resting؛ mid blow-through سریع رخ می‌دهد).
  • Time exit: اگر position ظرف X ساعت بسته نشود و PnL بین -2c و +2c باشد، FOK خروج در market.

اعداد بسته به strategy تغییر می‌کنند، اما الگو ثابت است: take-profit همیشه GTC، stop-loss معمولاً FOK است (چون GTC stopها وقتی mid از آن عبور می‌کند fill نمی‌شوند)، و time exit برای جلوگیری از سوار شدن روی signalهای stale.

Monitoring: Telegram, email, dashboards

bot باید در real time قابل مشاهده باشد. سه لایه.

  • Telegram alerts: هر fill، هر halt، هر error بالاتر از threshold. از یک channel یا group اختصاصی استفاده کنید؛ آن را با پیام‌های شخصی قاطی نکنید.
  • Daily summary email: پایان روز، تعداد کل tradeها، win rate، PnL، و فهرست haltهای فعال‌شده. هر صبح آن را بخوانید.
  • Dashboard: اختیاری اما مفید. یک HTTP endpoint ساده که diary را می‌خواند و open positionها + fillهای اخیر + cumulative PnL را نمایش می‌دهد.

الگو این است: هر state change که ارزش دانستن دارد → Telegram. summary پایان روز → email. exploration در real time → dashboard.

Reconcile cadence: every fire_exits cycle

Reconciliation باید آن‌قدر frequent اجرا شود که drift قبل از اینکه trade بعدی بتواند آن را compound کند، شناسایی شود. cadence به frequency trade بستگی دارد.

  • Strategies with < 10 trades/day: هر ساعت reconcile کنید.
  • Strategies with 10-100 trades/day: هر 15 دقیقه reconcile کنید.
  • HFT strategies (100+ trades/day): در هر cycle از loop خروجِ firing reconcile کنید.

هزینه reconciliation برابر است با یک chain read برای هر token نگه‌داری‌شده. با 20 token، یعنی 20 RPC call؛ با یک free-tier RPC، کاملاً در محدوده budget است. این بخش را بیش‌ازحد optimize نکنید.

First week: stay close, stay small

هفته اول deployment live خطرناک‌ترین مرحله است. شما در حال کشف bugهای live-path هستید که paper run از قلم انداخته بود. discipline:

  • Stay close - در ساعات بیداری، channel Telegram را هر ساعت check کنید.
  • Stay small - اندازه position در حد minimum (5 share)؛ یک bug باید دلار هزینه داشته باشد، نه صدها دلار.
  • در 3-5 روز اول، در پایان روز به‌صورت دستی reconcile کنید. diary را مستقیم با Polymarket UI مقایسه کنید.
  • هر سورپرایز را document کنید. حتی سردرگمی‌های کوچک هم در نهایت به bug تبدیل می‌شوند.

پایان هفته اول: اگر bugی وجود نداشت و diary با reality match بود، به size معمول scale کنید. اگر bug ظاهر شد، آن‌ها را fix کنید و یک smoke-test week دیگر اجرا کنید.

Scaling: when to deposit more

triggerهای افزودن capital، هر کدام با threshold متفاوت.

  • +50% deposit: 30 live trade، win rate در محدوده 5 نقطه با نرخ paper، و بدون haltهای production ناشی از bug.
  • +100-200% deposit: بیش از 100 live trade، profitability پایدار در طول sample، و infrastructure که حداقل از یک outage جزئی عبور کرده باشد.
  • +500%+ deposit: فقط پس از 6+ ماه profitability پایدار در live. ramp کردن capital کندتر از موفقیت است - باید مطمئن باشید edge واقعی است، نه regimeای که قرار است ناپدید شود.

بزرگ‌ترین risk واحدِ scaling زودهنگام: strategyای که در یک market regime سودآور بوده، در regime بعدی زیان‌ده می‌شود. size بزرگ‌تر این را حل نمی‌کند. صبر حلش می‌کند.

سوالات متداول

First live deposit من چقدر باید باشد؟
25-50 USD. به‌اندازه‌ای که fill واقعی، fee واقعی و reconciliation واقعی را test کنید. به‌اندازه‌ای کوچک که loss کامل آن روی زندگی شما اثر نگذارد. بیشتر traderهای منضبطی که می‌شناسیم حتی اگر bankrollشان اجازه بیشتر بدهد، از همین size شروع می‌کنند - هزینه ego یک loss کوچک بسیار کمتر از هزینه ego یک loss بزرگ است.
چه TP/SL باید تنظیم کنم؟
متناسب با edge خودتان. اگر strategy شما انتظار دارد هر trade برنده +5% بدهد، take-profit را روی +5-7% و stop-loss را روی -3-4% بگذارید. حالت نامتقارن (TP کوچک، SL بزرگ) gambling است، نه trading. trader production ما روی اکثر strategyها از TP+6% / SL-4% (FAK exits) استفاده می‌کند.
چطور bot را live monitor کنم؟
سه channel: (1) alertهای real-time برای outcome tradeهای بسته‌شده با PnL بیش از $0.30 از طریق Telegram bot. (2) نمای dashboard ساعتی از cash + open positionها + MtM. (3) summary روزانه PnL از طریق email. شکست هرکدام از این سه یعنی دارید کورکورانه کار می‌کنید.
چه چیزی باید emergency stop را فعال کند؟
هرکدام از این‌ها: loss روزانه بیش از 5% bankroll، fill rate کمتر از 30% (نشانه orderهای wedged)، بیش از 5 trade باخت متوالی، silent بودن market data feed برای بیش از 30 ثانیه، یا هر reconciliation mismatch بین diary و on-chain. همه را می‌توان به‌صورت automatic halt-sentinel touch کدنویسی کرد.
کی می‌توانم live bankroll را scale up کنم؟
وقتی حداقل 50 live trade بسته‌شده داشته باشید، win rate live در محدوده 10% با paper match کند، و در 2+ هفته گذشته هیچ reconciliation incidentی رخ نداده باشد. در هر checkpoint حداکثر 2x scale کنید - 25 USD -> 50 -> 100 -> 200 -> 500 در طول ماه‌ها، نه روزها.
آیا باید چند strategy را هم‌زمان live اجرا کنم؟
در ابتدا نه. یک strategy را 2-4 هفته live کنید و validate بگیرید. بعد یک دومی اضافه کنید. monitor کردن هم‌زمان دو strategy در هفته‌های اول، دستورالعملی برای از دست دادن bugی است که strategy 1 را نابود می‌کند.