บทเรียนสร้างบอทโพลีมาร์เก็ต · บทที่ 16 จาก 32

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

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

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

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

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

stat-arb หมายถึงอะไรในตลาดทำนาย

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

  • Cross-venue: เหตุการณ์เดียวกันบนโพลีมาร์เก็ตและ แคลชี (หรือ 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 ไม่ใช่ที่ทฤษฎี

ตัวอย่างส่วนต่างโพลีมาร์เก็ต vs แคลชี

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

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

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

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

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

ภายในโพลีมาร์เก็ต 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 ที่ตัดสินได้ (ไม่ใช่ perpetual)

ตลาดทำนายมีการตัดสิน ส่วน crypto pairs ไม่มี สิ่งนี้เปลี่ยน math ไปเลย

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

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

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

ความเสี่ยง: divergence เกินช่วงก่อนการตัดสิน

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

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

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

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