Polymarket Bot Tutorial · บทที่ 16 จาก 32

Statistical arbitrage บน Polymarket: cross-market pairs (เหตุการณ์ที่มีความสัมพันธ์กัน), ส่วนต่าง Polymarket-vs-Kalshi, mean reversion และวิธีกำหนดขนาดตำแหน่ง stat-arb เมื่อ markets สุดท้ายมีการ resolve

บทนี้ครอบคลุมอะไรบ้าง

Statistical arbitrage บน Polymarket ใช้ประโยชน์จากการตั้งราคาคลาดเคลื่อนชั่วคราวระหว่าง markets ที่มีความสัมพันธ์กัน-เหตุการณ์เดียวกันบน Polymarket เทียบกับ Kalshi หรือ markets ที่เกี่ยวข้องกันภายใน Polymarket เอง ส่วนต่างมักเล็กมาก (โดยทั่วไป 1-3 เซนต์) และเปราะบางต่อการปฏิบัติการ บทนี้จะพูดตรง ๆ ว่าอะไรใช้ได้ อะไรใช้ไม่ได้ และความเสี่ยงจาก multi-leg execution ที่ทำให้ความพยายามส่วนใหญ่ล้มเหลว

Cross-market statistical arbitrage ใช้ประโยชน์จากความไม่สอดคล้องของราคาแบบชั่วคราวระหว่าง Polymarket และ Kalshi, Polymarket และ Manifold หรือระหว่าง markets ที่มีความสัมพันธ์กันภายใน Polymarket ส่วนต่างมักเล็กมาก (โดยทั่วไป 1-3 เซนต์) และต้องใช้การ execute ที่รวดเร็วทั้งสองขา บทนี้คือ playbook แบบตรงไปตรงมาที่รวมความซับซ้อนด้านปฏิบัติการซึ่งทำให้ความพยายามส่วนใหญ่ล้มเหลว

  • ความหมายของ stat-arb ใน prediction markets
  • ตัวอย่างส่วนต่าง Polymarket-vs-Kalshi
  • pairs ภายใน Polymarket (เหตุการณ์ที่มีความสัมพันธ์กัน)
  • mean reversion เทียบกับ trend continuation
  • การกำหนดขนาดสำหรับ markets ที่ resolve ได้ (ไม่ใช่ perpetual)
  • ความเสี่ยง: divergence เกินช่วงก่อน resolution
  • Code: pairs monitor และ threshold-trigger

stat-arb หมายถึงอะไรใน prediction markets

Statistical arbitrage ใน prediction markets หมายถึงการเทรดส่วนต่างระหว่างสอง markets ที่ควรถูกตั้งราคาให้สอดคล้องกัน มีอยู่ 3 รูปแบบที่พบบ่อยบน Polymarket

  • Cross-venue: เหตุการณ์เดียวกันบน Polymarket และ Kalshi (หรือ Manifold, PredictIt) ราคาควร converge แต่ในทางปฏิบัติมัก drift 2-5 เซนต์
  • Same-event-pair: parent เทียบกับผลรวมของ legs ใน NegRisk multi-outcome markets invariant แบบ sum-to-1 ทำให้คุณสามารถ arb ได้เมื่อผลรวมของ legs น้อยกว่า 1.0
  • Correlated-event-pair: สอง markets ที่เกี่ยวกับผลลัพธ์ที่สัมพันธ์กัน (เช่น "Trump president on Jan 1" เทียบกับ "Trump president on Mar 1") ควรมีราคาต่างกันไม่เกิน 2-3 เซนต์

ส่วนต่างเล็กมาก ความซับซ้อนด้านปฏิบัติการมีจริง ความพยายามส่วนใหญ่ตายที่ execution ไม่ใช่ที่ทฤษฎี

ตัวอย่างส่วนต่าง Polymarket-vs-Kalshi

จากการสังเกตในปี 2025-26 Polymarket และ Kalshi ลงรายการเหตุการณ์ใหญ่ของสหรัฐฯ เหมือนกัน แต่ตั้งราคาต่างกันอย่างสม่ำเสมอราว 1-4 เซนต์ ช่องว่างนี้มีอยู่ด้วยเหตุผลเชิงโครงสร้าง ซึ่งคุณต้องนำไปจำลองใน arb ทุกแบบ

ปัจจัยเชิงโครงสร้าง:

  • Fee asymmetry: Kalshi หัก 4-7% จากการเทรดที่ชนะ (แตกต่างกันไปตาม market); Polymarket ไม่มี taker fee ต้องคิด math ของ arb แบบหักส่วนที่ Kalshi กินเข้าไปให้เรียบร้อย
  • Settlement risk premium: เมื่อ resolution ของ market คลุมเครือ UMA ของ venue หนึ่งอาจ resolve ต่างจาก judges ของอีก venue หนึ่ง ตลาดจะสะท้อนเรื่องนี้ไว้ในราคา
  • Trader population: ผู้ใช้ Polymarket มักอายุน้อยกว่าและ native กับ crypto มากกว่า; ส่วน Kalshi มักเป็นสายมืออาชีพ / hedge พวกเขามักเห็นต่างกันอย่างเป็นระบบในเหตุการณ์เดียวกัน

arb จะใช้ได้เมื่อช่องว่างมากกว่า structural premium บวกค่าธรรมเนียม ช่องว่าง 5 เซนต์ใน market ที่ structural premium คือ 1c และค่าธรรมเนียมรวม 1c คือ edge จริง 3c

pairs ภายใน Polymarket (เหตุการณ์ที่มีความสัมพันธ์กัน)

ภายใน Polymarket pairs ของ correlated events arb ง่ายกว่าการข้าม venue เพราะใช้โครงสร้างค่าธรรมเนียมเดียวกัน ใช้ wallet เดียวกัน และทำ atomic execution ได้

ตัวอย่างที่มักตั้งราคาไม่สอดคล้องกันอย่างต่อเนื่อง:

  • Trump president on date A เทียบกับ Trump president on date B (โดย B ช้ากว่า A ไม่เกิน 90 วัน)
  • Bitcoin จะทะลุ $100k ภายในวันที่ 31 กรกฎาคม เทียบกับภายในวันที่ 31 สิงหาคม
  • ฝั่ง Yes เทียบกับฝั่ง No ใน binary market เดียวกัน (ผลรวมควร = 1.0; บางครั้ง drift ไปไกลถึง 1.04 ใน books ที่บางมาก)

arb แบบ Yes+No=1 เป็นแบบที่สะอาดที่สุด: อ่านทั้งสองฝั่งจาก market เดียวกัน ยิง FOK ทั้งสองขาเมื่อผลรวมต่ำกว่า 0.97 (เผื่อ spread tax) เงินทุนที่ต้องใช้โดยประมาณใกล้เคียงกันทั้งสองขา; execution เป็น atomic เมื่อ fills ทั้งสองกลับมาใน response เดียวกัน

mean reversion เทียบกับ trend continuation

stat-arb มี 2 regime: mean reversion คือ pair แยกออกจากกันเพราะ noise แล้วคุณเดิมพันว่าจะ converge; trend continuation คือ pair เริ่ม diverge เพราะมีข้อมูลใหม่เข้ามา แล้วคุณเดิมพันว่าจะ diverge ต่อ

การแยกสองแบบนี้ออกจากกันคือส่วนที่ยาก heuristic: ถ้า divergence เกิดขึ้นพร้อม volume ที่มองเห็นได้ชัด (มี whale เดิน order book ของขาใดขาหนึ่ง) แปลว่าเป็น news-จะ fade ก็ต่อเมื่อคุณมี model ถ้ามัน drift ช้า ๆ พร้อม volume ต่ำ แปลว่าเป็น noise-เทรด reversion ได้ด้วยความมั่นใจ

สำหรับผู้สร้างใหม่: เทรดเฉพาะ mean reversion ใน pairs ที่ divergence น้อยกว่า 1 standard deviation ของ historical drift trend continuation ต้องใช้ model ที่จับข่าวได้ ถ้าไม่มี คุณกำลังเทรดสวน flow ที่มีข้อมูลเหนือกว่า

การกำหนดขนาดสำหรับ markets ที่ resolve ได้ (ไม่ใช่ perpetual)

Prediction markets มีการ resolve ส่วน crypto pairs ไม่มี สิ่งนี้เปลี่ยน math ไปเลย

ตำแหน่ง pair-arb บน Polymarket มี payout schedule ที่ตายตัว: เมื่อ markets ทั้งสอง resolve แล้ว ส่วนต่างระหว่าง predicted spread กับ actual spread จะถูกล็อก ไม่มีการ roll ต่อ ไม่มีการถือแบบไม่สิ้นสุด

ผลต่อการกำหนดขนาด: ขนาดสูงสุดที่ถือได้ถูกจำกัดด้วย time-to-resolution เพราะเงินทุนจะถูกล็อกจนกว่าจะถึงตอนนั้น pair ที่ resolve ใน 6 เดือนอาจทำกำไรให้คุณ 3c ต่อ share แต่คุณไม่สามารถเอาเงินก้อนเดิมไปทำงานต่อได้ในระหว่างนั้นถ้า markets ทั้งสองถูก size เต็มแล้ว

มุมมองที่ถูกต้อง: stat-arb บน Polymarket คือชุดของ trades ที่มีเวลาจำกัด ไม่ใช่กลยุทธ์ต่อเนื่อง เปรียบเทียบ PnL ต่อหน่วยของ locked capital ต่อวัน ไม่ใช่ gross PnL

ความเสี่ยง: divergence เกินช่วงก่อน resolution

ผลลัพธ์ที่แย่ที่สุดของ stat-arb คือการคาดการณ์ว่าราคาจะ converge แต่คุณคิดผิดเพราะสมมติฐานพื้นฐานผิด ตัวอย่าง:

  • คุณ short "Trump president on Apr 1" โดยคาดว่าจะ converge ไปหา "Trump president on Mar 1"-แต่ market วันที่ 1 resolve เป็น YES และ market วันที่ 2 resolve เป็น NO เพราะเกิดการ impeachment ในเดือนมีนาคม thesis ที่ว่า "spread ควรแบน" จึงผิด
  • คุณ arb Polymarket กับ Kalshi ใน NBA Finals winner เดียวกัน Polymarket resolve ไปที่ทีมที่ชนะซีรีส์อย่างเป็นทางการ; Kalshi resolve ตามนิยามที่ต่างออกไปเล็กน้อยซึ่งนับ overtime tie-breakers ไม่เหมือนกัน ทั้งสอง resolve เป็น YES ตามเงื่อนไขของตนเอง แต่ไปคนละทิศกัน

อ่านเกณฑ์ resolution ของทุก market อย่างละเอียด Cross-venue arb เสี่ยงพังเต็มตัวทั้งสองขาถ้าการ resolve ไม่ตรงกันเพียงจุดเดียว

Code: pairs monitor และ threshold-trigger

อ้างอิง: monitor token ที่มีความสัมพันธ์กันสองตัว แล้ว trigger arb เมื่อ spread ข้าม threshold

def pairs_monitor(token_a, token_b, threshold_cents=3, size=10):
    """Buy A and Sell B when (1 - ask_A) + bid_B > 1 + threshold."""
    while True:
        book_a = fetch_book(token_a)
        book_b = fetch_book(token_b)
        if not (book_a.best_ask and book_b.best_bid):
            time.sleep(2); continue
        # implied: cost of buying A at ask + value of selling B at bid
        edge = (1 - book_a.best_ask) + book_b.best_bid - 1
        if edge > threshold_cents / 100:
            print(f"ARB edge={edge:.3f}; firing")
            r_a = fok_buy(token_a, price=book_a.best_ask, size=size)
            if r_a.status != "matched": continue
            r_b = fok_sell(token_b, price=book_b.best_bid, size=size)
            if r_b.status != "matched":
                # leg A filled, B failed -- unhedged, exit A
                fok_sell(token_a, price=book_a.best_bid, size=size)
        time.sleep(3)

การ cleanup เมื่อ partial fill สำคัญมาก ถ้าไม่มีส่วนนี้ การ execute บางส่วนจะทำให้บอทมี exposure ตามทิศทาง ซึ่งตรงข้ามกับจุดประสงค์ทั้งหมดของ stat-arb

คำถามที่พบบ่อย

ฉันสามารถ arbitrage ระหว่าง Polymarket กับ Kalshi ได้ไหม?
ได้ เมื่อเหตุการณ์เดียวกันมีการซื้อขายบนทั้งสองแพลตฟอร์ม ส่วนต่าง 2-5 เซนต์ยังคงอยู่ระหว่างสอง exchange เนื่องจากความต่างด้านกฎระเบียบ โครงสร้างค่าธรรมเนียม และความแตกต่างของผู้ใช้ แต่ข้อแม้คือ Kalshi ใช้ได้เฉพาะในสหรัฐฯ และต้องผ่าน KYC ดังนั้นคุณต้องมีบัญชีทั้งสองฝั่ง - ดู /th/guide/polymarket-vs-kalshi/ สำหรับการตั้งค่า การ arbitrage ของส่วนต่างนี้มีอยู่จริงแต่หนักด้านปฏิบัติการ
pairs trade ในบริบทของ Polymarket คืออะไร?
คือสอง markets ที่มีความสัมพันธ์กันซึ่งอัตราส่วนราคาจะ mean-revert ตัวอย่าง: "Trump wins 2028" และ "Republicans win 2028 House" - ถ้า trade ของ Trump พุ่งขึ้น 5% แต่ trade ของ House ยังไม่ขยับ บอทจะซื้อ House และขาย Trump (หรือกลับกัน) โดยตั้งสมมติฐานว่าอัตราส่วนจะ revert ส่วนต่างเล็กแต่สม่ำเสมอใน politics markets ที่มีสภาพคล่อง
คุณกำหนดขนาด stat-arb position อย่างไรเมื่อทั้งสอง markets resolve?
กำหนดขนาดให้เท่ากับ divergence สูงสุดที่คาดไว้ - ถ้า model ของคุณบอกว่าส่วนต่างสามารถกว้างขึ้นอีก 8 เซนต์ก่อนจะ revert ให้ size ที่ทำให้กรณีที่กว้างขึ้น 8 เซนต์ไม่เกินขีดจำกัดการขาดทุนของคุณ มองแต่ละ pair เป็น trade เดี่ยวที่มี loss limit แบบตายตัว การทำ stat-arb เหมือนเงินฟรีคือวิธีที่ทำให้บัญชีพัง
Polymarket-Kalshi arb มีความต่อเนื่องถาวรไหม?
มี แต่กำลังหดตัวลงเมื่อบอทมากขึ้นค้นพบมัน ในช่วงปี 2026 เรายังเห็นส่วนต่าง 1-3 เซนต์ใน politics markets ที่มีสภาพคล่องอยู่เป็นชั่วโมง ๆ Sports markets จะมีส่วนต่างแคบกว่า ส่วน tail markets (volume ต่ำ) มีส่วนต่างกว้างกว่าแต่เทรดแล้วไม่คุ้ม
ถ้าทั้งสอง markets diverge จนถึง resolution ล่ะ?
pairs trade จะไปถึง PnL เต็มตามผลลัพธ์จริง-นี่คือเหตุผลที่ pairs trading บน prediction markets ถูกจำกัดโดยธรรมชาติ (ต่างจาก perpetuals ที่ divergence โตได้ไม่สิ้นสุด) ขาดทุนสุทธิของ pairs trade ถูกจำกัดด้วยราคาต่างตอนเข้า ไม่ใช่ไม่มีเพดาน
มีเครื่องมืออะไรช่วยหา Polymarket pairs บ้าง?
correlation matrix ของ markets ที่ใช้งานอยู่คือจุดเริ่มต้น สร้างจาก price history 30 วันที่ดึงจาก gamma+CLOB มองหาคู่ที่มี rho > 0.7 ในอดีตแต่ตอนนี้ตั้งราคาคลาดเคลื่อนจาก ratio ปกติของมัน อัปเดต matrix ทุกสัปดาห์ เพราะ correlations จะเสื่อมลง