מדריך Bot ל־Polymarket · פרק 13 מתוך 32

יצירת שוק ב־Polymarket: איך לתמחר bid ו־ask, ללכוד את ה־spread, להרוויח maker rebates (20-25% מ־taker fees), מתמטיקת סיכון מלאי, ומתי MM עובד בשווקי חיזוי.

מה הפרק הזה מכסה

Market making ב־Polymarket פירושו לתמחר באופן רציף את שני הצדדים של ספר הפקודות ולהרוויח את ה־spread בכל round trip. האסטרטגיה מוכרת היטב בעולם הפיננסי המסורתי; הניואנסים הספציפיים ל־Polymarket הם תוכנית ה־maker rebate וה־adverse selection של שווקי חיזוי, שהוא גבוה יותר מאשר בזירות CFD. הפרק הזה הוא החשבון האמיתי, בלי לייפות.

  • Market making באנגלית פשוטה
  • היתרון של ה־spread + rebate
  • סיכון מלאי ו־skew
  • מתי MM עובד ב־Polymarket (ומתי לא)
  • שלד קוד: תמחור שני הצדדים ב־+/- N סנט
  • התאמת ה־quotes לפי זרימת חדשות
  • כיבוי ה־bot כש־adverse selection מזנק

Market making באנגלית פשוטה

Market maker מתמחר באופן רציף גם מחיר קנייה (bid) וגם מחיר מכירה (ask), רחבים יותר מה־mid ב־spread קבוע. כשמישהו פוגע ב־bid ה־maker קונה בזול; כשמישהו מרים את ה־ask ה־maker מוכר ביוקר; ההפרש בין bid ל־ask הוא ההכנסה של ה־maker לכל round trip.

האסטרטגיה מונעת על ידי order flow, לא על ידי כיוון השוק. ה־maker לא נוקט עמדה בשאלה האם ה־YES ינצח; הוא מניח שהזרימה תימשך ושימשיכו לשלם לו את ה־spread.

הסיכון הוא adverse selection: האנשים שפוגעים ב־bid שלך מחזיקים במידע שאין לך. לאורך זמן, הרווחיות של MM תלויה בשאלה האם ה־spread רחב מספיק כדי לכסות את ה־slippage מצד סוחרים מיודעים.

היתרון של ה־spread + rebate

שני מקורות הכנסה ל־maker ב־Polymarket.

לכידת spread: תמחור bid ב־0.45 ו־ask ב־0.47 סביב mid של 0.46. כל fill על ה־bid שתוכל אחר כך לצאת ממנו ב־ask מניב 2 סנט. ה־edge נטו תלוי בחוסר איזון בין fills לבין תנועת המחיר.

Maker rebate: תוכנית תגמול הנזילות של Polymarket משלמת rebate לכל share על fills של maker בשווקים זכאים. המספרים משתנים; בדקו את דף התגמולים הרשמי לערכים העדכניים. ה־rebate משולם ב־pUSD באופן תקופתי, בנפרד מהעסקה עצמה.

ברוב השווקים, לכידת ה־spread היא מקור ההכנסה הגדול יותר. ה־rebate הופך משמעותי כשאפשר לתמחר שווקים רחבים מאוד (שנת בחירות, פלייאוף של ענפי ספורט גדולים) שבהם Polymarket מגדילה את ה־rebates כדי למשוך נזילות.

סיכון מלאי ו־skew

MM שמקבל שוב ושוב פגיעות ב־bid צובר פוזיציה לונג. הסיכון הוא שה־mid יורד בזמן שהמלאי לונג; ה־maker מממש הפסד על הפוזיציה גם אחרי הכנסות ה־spread.

הגנות: quote skew (להוריד את ה־bid כשיש לכם לונג, ולהעלות את ה־ask כשאתם שורט, כדי להרתיע fills חד־צדדיים); תקרת מלאי (להפסיק לתמחר בצד שבו אתם כבר לונג מדי); איזון מחדש אקטיבי (מדי פעם לחצות את ה־spread כדי לצמצם פוזיציה כשהמלאי מגיע לגבול).

המתמטיקה: אם 60% מה־fills ב־bid לעולם לא נסגרים לפני שהמחיר זז נגדכם ב־2 סנט, האסטרטגיה מפסידה כסף על אותם fills לבדם. בצעו skew אגרסיבי כשחוסר האיזון ב־fill חוצה את 65/35.

מתי MM עובד ב־Polymarket (ומתי לא)

MM עובד ב־Polymarket כששלושה תנאים מתקיימים.

  • ספר פקודות נזיל: מספיק תחרות על quotes כך שה־spread שלכם תחרותי אך לא אפס. שווקי הבחירות של 2024, משחקי NFL/NBA גדולים, BTC up/down 5m - כולם עומדים בכך.
  • זרימה דו־צדדית: גם קונים וגם מוכרים פעילים. בשווקים חד־צדדיים (כמעט הוכרעו ב־0.95+) אין ל־maker מה ללכוד.
  • תנועות מחיר מוגבלות: לכידות ה־spread לא נאכלות על ידי קפיצות של 5 סנט. שווקים יציבים בטווח אמצעי (0.40-0.60) הם הידידותיים ביותר.

MM נכשל בשווקים מונעי חדשות שבהם ה־mid קופץ מהר יותר ממה שאתם יכולים ל־re-quote; בספרי פקודות דלילים שבהם אתם ה־quote היחיד והעסקה הבאה "צועדת" 5 רמות; ובשווקים סמוך להכרעה, שבהם צד אחד מתכנס ל־0 או ל־1.

שלד קוד: תמחור שני הצדדים ב־+/- N סנט

Pseudocode ל־maker הפשוט ביותר שעוד אפשר לעבוד איתו.

SPREAD_CENTS = 2
INVENTORY_CAP_SHARES = 50

def make_loop(token_id):
    while True:
        book = fetch_book(token_id)
        mid = (book.best_bid + book.best_ask) / 2
        inv = chain_balance(token_id)

        # Skew: pull the side we are too long on
        bid_px = mid - SPREAD_CENTS/200 - (0.005 if inv > INVENTORY_CAP_SHARES * 0.6 else 0)
        ask_px = mid + SPREAD_CENTS/200 + (0.005 if inv < -INVENTORY_CAP_SHARES * 0.6 else 0)

        cancel_my_existing_quotes(token_id)
        if inv < INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="BUY", price=bid_px, size=5)
        if inv > -INVENTORY_CAP_SHARES:
            place_gtc(token_id, side="SELL", price=ask_px, size=min(5, inv))
        time.sleep(2)

ב־production makers מוסיפים: מעקב מלאי לפי צד, סדר פעולות cancel-before-place, jitter על מרווח ה־re-quote כדי לא להיות צפויים, ו־kill-switch על adverse selection (הסעיף הבא).

התאמת ה־quotes לפי זרימת חדשות

כאשר אירוע חדשותי פוגע, ה־fair value זז לפני שה־quotes שלכם זזים. MM שלא מושך quotes בזמן זרימת חדשות יילקח אליו "בחינם".

האות: שיעור ה־cancel של fills נכנסים קופץ מעל בערך פי 3 מהקו הבסיסי בתוך 30 שניות, או בדיקת צולבת רחבה יותר מול זרם האירועים (Polymarket Twitter/Discord, פיד כותרות של Bloomberg). כשהדבר מזוהה, ה־maker מושך את כל ה־quotes ל־60-120 שניות, נותן ל־mid החדש להתייצב, ואז מתמחר מחדש סביב המרכז החדש.

היישום הפשוט ביותר עוקב אחרי זרם last-trade-price עבור הטוקן. קפיצה של יותר מ־2 סטיות תקן מהממוצע של חלון נע מפעילה השהיה. ה־bot חוזר לפעולה כשהמחיר התייצב ל־30 שניות ומעלה.

כיבוי ה־bot כש־adverse selection מזנק

יציאה חדה. אם ה־fill PnL של ה־bot ב־50 ה־fills האחרונים הופך לשלילי בחדות, משהו לא תקין: או שהשוק כעת מונע חדשות ואתם לא אמורים להיות market making, או שה־spread שלכם צר מדי ביחס לרמת ה־adverse selection הנוכחית.

תנאי כיבוי שכדאי לקודד:

  • 5 fills רצופים ב־bid בלי fill ב־ask, וה־mid ירד ביותר מ־1c מאז ה־fill הראשון.
  • Realized PnL על 25 ה־round-trip fills האחרונים נמוך ב־25% מהצפוי.
  • זיהוי ניתוק של WebSocket או ספר פקודות מיושן.
  • מלאי בתקרה באחד הצדדים במשך יותר מ־5 דקות.

כאשר אחד התנאים מופעל, מבטלים הכול, מיישרים את המלאי ב־market, ומפסיקים ל־15 דקות ומעלה. Market maker בלי kill switch יפסיד כסף בתקופות תנודתיות עד שה־trader יבחין בכך ידנית - וזה תמיד לוקח יותר זמן ממה שחושבים.

שאלות נפוצות

האם Bot קמעונאי באמת יכול להרוויח מ־market making ב־Polymarket?
לפעמים, בשווקים נבחרים. ה־maker rebate (20-25% מ־taker fees) יחד עם spread של 1-3 סנט לכל round trip יכולים להצטבר לתשואה אמיתית. אבל ב־Polymarket, זרימת חדשות יכולה להזיז שוק ב־20+ סנט בתוך שניות - Market maker בלי פיד חדשות מהיר ייפגע מ־adverse selection. זה עובד הכי טוב בשווקי ספורט נזילים לפני המשחק ובתקופות עם מעט חדשות.
כמה רחב כדאי לי לתמחר ב־Polymarket?
לפחות ברוחב הנדרש כדי לכסות את ה־adverse selection הגרוע ביותר הצפוי. בשווקי ספורט/פוליטיקה נזילים: 1-3 סנט לכל צד מה־mid. בשווקים דלילים: 5 סנט ומעלה. אם אינכם יכולים לתמחר צמוד מספיק כדי להתחרות ב־makers אחרים, אך רחב מספיק כדי לשרוד תנועות, השוק הזה אינו ניתן ל־market making עבורכם.
אילו מגבלות מלאי כדאי לי לקבוע?
תקרת מלאי קשיחה לכל שוק של 50-200 דולר עד שהוכחתם רווחיות במשך חודשים. בצעו skew ל־quotes כדי לדחוף את המלאי לכיוון נייטרלי - אם צברתם Yes, הורידו את bid של Yes ואת ask של No כדי לעודד קניות חוזרות של No. לעולם אל תתנו לשוק יחיד להחזיק 20%+ מההון שלכם.
האם אני צריך VPS מהיר כדי לעשות market making ב־Polymarket?
כן. Market making היא האסטרטגיה הרגישה ביותר ל־latency ב־Polymarket. VPS עם jitter גבוה יוצר quotes מיושנים שנלקחים בקלות. אנחנו משתמשים ב־TradingVPS עבור Bot ה־MM שלנו בדיוק משום שה־jitter שם נמוך באופן עקבי. Cloud סטנדרטי (DO/Vultr) מתאים ל־paper trading של MM, אבל לא ל־live.
במה MM של Polymarket שונה מ־crypto MM?
שני הבדלים גדולים: (1) ב־Polymarket יש אירועי תוצאה קשיחים (חדשות, גמרי ספורט) שיכולים להזיז את המחיר ב־30-100 סנט באופן מיידי - חד הרבה יותר מ־crypto. (2) שווקי Polymarket בסופו של דבר מוכרעים, ולכן בניגוד לזוגות crypto, לפוזיציות MM יש תפוגה קשיחה. שניהם דוחפים אתכם להחזקה קצרה יותר ולמגבלות סיכון הדוקות יותר.
האם אפשר לעשות market making לשווקי crypto של 5 דקות ב־Polymarket?
אפשרי, אבל מאוד קשה. שווקי ה־5 דקות רואים בערך 288 תפוגות ביום לכל pair, נשלטים על ידי Bot מהירים יותר, ובעלי spreads צרים יותר. רוב Bot ה־MM הקמעונאיים מפסידים שם כסף בגלל adverse selection. את אסטרטגיית ה־crypto ל־5 דקות כדאי לכסות כראוי בפרק 23 של הסדרה הזו.