การคำนวณกำไรขาดทุนของ Polymarket อย่างแม่นยำ: ทำไมกำไรขาดทุนที่คุณคำนวณอาจผิด?

BlockBeatNews

原文标题:《Polymarket PnL 精准计算:为什么你算的盈亏可能全是错的》
原文作者:Leo,加密分析师

ผมทำการเทรดอัตโนมัติบน Polymarket ด้วยระบบเองเป็นเวลา半年 สิ่งที่ผมเจอไม่ใช่กลยุทธ์ล้มเหลว แต่คือความผิดพลาดในการคำนวณกำไรขาดทุนของตัวเอง

ไม่ใช่เพราะผมอ่อนหัด แต่เพราะการคำนวณ PnL ของ PM เองเป็นกับดัก ข้อมูลที่ API ทางการให้มานั้นผิด เว็บไซต์วิเคราะห์ของบุคคลที่สามก็แสดงอันดับผิดเช่นกัน คุณเขียนสคริปต์คำนวณเอง? โอกาสยังผิดสูง

ความเบี่ยงเบนมันรุนแรงแค่ไหน? อันดับ 3 ของตาราง kch123 คำนวณด้วยวิธีผิด ขาดทุน 3.5 ล้านดอลลาร์ แต่กำไรจริง 11.4 ล้านดอลลาร์ ไม่ใช่แค่ต่างกันไม่กี่เปอร์เซ็นต์ — แต่สัญลักษณ์ของกำไรขาดทุนยังกลับกันเลย

บทความนี้จะแยกแต่ละกับดักที่ผมเจอมาอธิบาย ทำการเทรด, เขียนเครื่องมือ, ดูอันดับ ก็ต้องเจอแน่นอน

กับดัก 1:cashPnl ไม่รวมกำไรขาดทุนที่เคลียร์แล้ว

วิธีที่ตรงที่สุดคือเรียก /positions แล้วรวมผลลัพธ์ของฟิลด์ cashPnl (กำไรขาดทุนเป็นเงินสด)

ทดสอบกับ 3 ที่อยู่ในอันดับ 15 อันดับแรก:

swisstony: รวม cashPnl +$35,000 แต่ในอันดับจริง +$5.6 ล้าน ต่างกัน 158 เท่า

kch123: รวม cashPnl -$3.52 ล้าน แต่ในอันดับจริง +$11.4 ล้าน สัญลักษณ์กลับกัน

gmanas: รวม cashPnl -$2.64 ล้าน แต่ในอันดับจริง +$5.02 ล้าน สัญลักษณ์กลับกัน

ทั้งสามที่อยู่ สองรายสัญลักษณ์กำไรขาดทุนตรงกันข้ามเลย

เหตุผล: /positions ที่ API ส่งกลับมานั้นไม่รวมกำไรขาดทุนที่เคลียร์แล้ว (realized PnL) เมื่อเปิด position แล้วชนะและถูกไถ่ถอนเป็น USDC แล้ว ตำแหน่งนั้นจะหายไปจากการตอบสนองของ API เหลือไว้แต่ตำแหน่งที่ยังไม่ปิด ซึ่งมักเป็นขาดทุนลอยตัว

คุณคิดว่าคำนวณกำไรขาดทุนทั้งหมดแล้ว แต่จริงๆ ได้แค่ส่วนที่ยังไม่ปิดเท่านั้น

กับดัก 2:ฟิลด์ makerPnl กับเงินสดบน链ไม่ตรงกัน

ข้อมูลการเทรดใน JSONL มีฟิลด์ makerPnl (กำไรขาดทุนจากการเป็น maker) ชื่อก็ชี้ให้เห็นว่าคือใช้คำนวณ PnL แต่ไม่เชื่อ

ผมสังเกตในข้อมูล market-making ว่า ผลรวมของ makerPnl ที่คำนวณออกมานั้นต่างจากผลลัพธ์ของการคำนวณเงินสดบน链เป็นจำนวนมาก ข้อแตกต่างอาจขึ้นอยู่กับสถานการณ์ แต่แนวทางเดียวกันคือ logic การคำนวณ makerPnl ภายในไม่ตรงกับการไหลของ USDC จริงบน链

ไม่ว่าจะเบี่ยงเบนมากแค่ไหน สรุปคือ: ห้ามใช้ฟิลด์นี้คำนวณ PnL

กับดัก 3:ห้ามใช้ txHash เพื่อแยกซ้ำ

นี่เป็นสิ่งที่ตรงกันข้ามกับความรู้สึกธรรมดา

เมื่อ txHash (แฮชธุรกรรม) เดียวกันปรากฏหลายรายการ คนทั่วไปจะคิดว่าเป็นข้อมูลซ้ำ ควรลบซ้ำ

แต่ไม่ใช่แบบนั้น เพราะ CLOB (ออเดอร์บอร์ดบน链) ของ PM สามารถจับคู่หลายคำสั่ง maker ในธุรกรรมเดียวกันได้ รายการหลายรายการภายใต้ txHash เดียวกันเป็น fill จริงที่แยกกัน

ผมเคยลบซ้ำโดยใช้ txHash + asset แต่พลาดไป $133 บน Polygon chain ยืนยันได้ว่ามีหลาย USDC Transfer event ในธุรกรรมเดียวกัน แต่ละรายการเป็นการซื้อขายจริง

สรุป: ห้ามใช้ txHash เพียงอย่างเดียวในการลบซ้ำ คำนวณ PnL ต้องรวมข้อมูลดิบจาก /activity โดยตรง

กับดัก 4:การเลื่อนหน้าด้วย offset มีขีดจำกัด

การเลื่อนหน้าข้อมูล /activity ด้วย offset? ถ้าเกิน 3000 รายการ จะขึ้น 400 error ไม่มีในเอกสาร

ทั้งสามที่อยู่ด้านบนทดสอบแล้ว: GET /activity?offset=3100 จะได้ HTTP 400 พร้อมข้อความว่า max historical activity offset of 3000 exceeded ผู้เล่นระดับสูงมักมีธุรกรรมเป็นหมื่นรายการ 3000 รายการไม่พอแน่นอน

ใช้พารามิเตอร์ end (ส่ง timestamp ของรายการสุดท้ายในหน้าก่อน - 1) เป็นตัวชี้ตำแหน่งในการเลื่อนหน้า ไม่มีขีดจำกัด

กับดัก 5:ความแตกต่างของเกณฑ์ PnL ในอันดับ

คุณคำนวณ PnL ของที่อยู่หนึ่งแล้วไปเปรียบเทียบในอันดับ ก็มีความแตกต่างเล็กน้อย

ส่วนใหญ่ความแตกต่างอยู่ใน $10 (จากความผันผวนของมูลค่าตำแหน่งแบบเรียลไทม์) แต่ถ้าความแตกต่างชัดเจนมากขึ้น สาเหตุอาจเป็น: ช่วงเวลาการรวมข้อมูลในอันดับ, การรีเฟรชแคชล่าช้า, หรือผู้ใช้ผูกหลาย proxy wallet

จากการทดสอบ ผมพบว่าการคำนวณด้วยวิธี cash flow ตรงกับ API อันดับสูงสุดมากที่สุด หากผลต่างมาก ให้ตรวจสอบการเลื่อนหน้าว่าครบถ้วน (กับดัก 4) และใช้ฟิลด์ผิด (กับดัก 1-2) ก่อน

แนวทางที่ถูกต้อง

หลังจากลองหลายวิธี ผมยืนยันว่าการใช้ Data API สรุปเงินสดเป็นวิธีที่เชื่อถือได้ที่สุด โดยไม่ต้องใช้ฟิลด์คำนวณล่วงหน้า คำนวณจากบันทึกธุรกรรมดิบโดยตรง

สูตร:

PnL = SUM(TRADE where side=SELL) + SUM(REDEEM) + SUM(MERGE) + SUM(MAKER_REBATE) + SUM(REWARD) - SUM(TRADE where side=BUY) - SUM(SPLIT) + มูลค่าตำแหน่ง

· TRADE BUY:ใช้ USDC ซื้อโทเคน (ค่าใช้จ่าย)

· TRADE SELL:ขายโทเคนคืน USDC (รายรับ)

· REDEEM:ไถ่ถอนตำแหน่งที่ชนะเป็น USDC (รายรับ)

· SPLIT:USDC หลอมเป็นโทเคน (ค่าใช้จ่าย)

· MERGE:โทเคนรวมกลับเป็น USDC (รายรับ)

· MAKER_REBATE:ค่าคืนจาก Maker (รายรับ)

· REWARD:รางวัล/airdrops (รายรับ)

· แหล่งข้อมูล:

GET /activity?user=

&limit=500 ใช้ end ในการเลื่อนหน้า ดึงข้อมูลครบแล้วรวมตามประเภท

· มูลค่าตำแหน่ง:

GET /positions?user=

คูณ size ด้วยราคาปัจจุบัน

· การตรวจสอบข้าม:

เปรียบเทียบผลลัพธ์กับ Polymarket ranking API (lb-api.polymarket.com/profit?window=all&address=X) ถ้าความแตกต่างน้อยกว่า <$10 ถือว่าผ่าน ความแตกต่างมาจากความผันผวนของมูลค่าตำแหน่งแบบเรียลไทม์

การทดสอบ: อันดับ 15 สูงสุด

หลังคำนวณด้วยวิธี cash flow แล้ว เปรียบเทียบกับ API อันดับ:

swisstony: cash flow +$5.6 แสน ด้านอันดับ +$5.6 แสน ความแตกต่าง < $10

kch123: cash flow +$1.14 ล้าน ด้านอันดับ +$1.14 ล้าน ความแตกต่าง < $10

gmanas: cash flow +$502,400 ด้านอันดับ +$502,400 ความแตกต่าง < $10

ทั้งสามรายความผิดพลาดน้อยกว่า $10 ความแตกต่างมาจากความผันผวนของมูลค่าตำแหน่งแบบเรียลไทม์

หลังจากวิธีนี้ใช้งานได้ ผมวิเคราะห์กำไรขาดทุนของที่อยู่ระดับหัวหน้าเป็นร้อยๆ ราย การวิเคราะห์นั้นเป็นอีกเรื่องหนึ่ง

สรุป

SUM(cashPnl) จาก /positions → ใช้ไม่ได้ ไม่รวมกำไรขาดทุนที่เคลียร์แล้ว สัญลักษณ์อาจกลับกัน

การรวมฟิลด์ makerPnl → ใช้ไม่ได้ ไม่ตรงกับเงินสดบน链

คำนวณหลังลบซ้ำด้วย txHash → ใช้ไม่ได้ เกิน $100 ลบ fill จริงออกไป

เลื่อนหน้าด้วย offset แล้วรวม → ใช้ไม่ได้ ข้อมูลถูกตัด, เกิน 3000 ขึ้น error

วิธี cash flow API → เชื่อถือได้ที่สุดในตอนนี้ ความผิดพลาด <$10

การทำ quant ไม่ใช่การหา alpha แต่คือการยืนยันว่าคุณคำนวณถูก

ทั้งหมดนี้เป็นประสบการณ์จากการเจอจริง ไม่ใช่ทฤษฎี API ของ PM อาจปรับเปลี่ยนได้ตลอด ควรตรวจสอบผลด้วย API อันดับเป็นระยะ

ลิงก์ต้นฉบับ

คลิกเพื่อดูแนวทางของ BlockBeats ในการรับสมัครงาน

เข้าร่วมกลุ่มชุมชนทางการของ BlockBeats ได้ที่:

Telegram กลุ่มติดตาม: https://t.me/theblockbeats

Telegram กลุ่มสนทนา: https://t.me/BlockBeats_App

Twitter ทางการ: https://twitter.com/BlockBeatsAsia

news.article.disclaimer

btc.bar.articles

a16z สนับสนุน CFTC ในจดหมายความคิดเห็นวันศุกร์ โดยอ้างอิงกฎตลาดคาดการณ์ของรัฐว่าเป็นอุปสรรคในการเข้าถึง

ตามรายงานของ The Block เมื่อวันศุกร์ Andreessen Horowitz ได้ยื่นหนังสือแสดงความคิดเห็นความยาว 18 หน้า ต่อ CFTC โดยสนับสนุนการกำกับดูแลตลาดการทำนายในระดับรัฐบาลกลาง และโต้แย้งว่ากฎระเบียบในระดับรัฐสร้างอุปสรรคต่อการเข้าถึงตลาดอย่างเป็นธรรม บริษัท VC ระบุว่า “หนังสือหยุดและเลิก” และข้อเสนอบัญชีห้าม…

GateNews32 นาที ที่แล้ว

Polymarket、Kalshi มียอดการซื้อขายสะสมแตะ 150 พันล้านดอลลาร์สหรัฐ: เดือนเมษายนเพียงเดือนเดียว 21.9 พันล้านดอลลาร์สหรัฐ สร้างสถิติสูงสุดใหม่

ยอดการซื้อขายสะสมของ Polymarket และ Kalshi ในเดือน 4 ทะลุ 1.5 หมื่นล้านดอลลาร์สหรัฐ ปริมาณรวมรายเดือนอยู่ที่ 21.9 พันล้านดอลลาร์สหรัฐ (Kalshi 13.4 พันล้าน, Polymarket 8.5 พันล้าน) รวมกันคิดเป็น 85% นับตั้งแต่เปิดให้บริการ ยอดสะสมทะลุ 1.5 หมื่นล้านดอลลาร์สหรัฐ โดย YTD ถึง 4/20 Kalshi อยู่ที่ 37.49 พันล้านดอลลาร์สหรัฐ Polymarket 29.23 พันล้านดอลลาร์สหรัฐ รวม 66.7 พันล้านดอลลาร์สหรัฐ Kalshi ได้เปรียบจากการกำกับดูแลอย่างครบถ้วนโดย CFTC และความใกล้เคียงกับอินเทอร์เฟซการเดิมพันกีฬา ขณะที่ Polymarket เปิดให้ผู้ใช้งานนานาชาติ รองรับการชำระด้วย USDC และมีหัวข้อให้เลือกกว้างกว่า จุดที่ต้องจับตาในอนาคตคือการเจรจาปลดล็อกโดย CFTC การระดมทุนของ Polymarket และแนวโน้มมูลค่า (valuation) ของ Kalshi

ChainNewsAbmedia1 ชั่วโมง ที่แล้ว

a16z หนุน CFTC พร้อมเตือนว่ากฎตลาดการทำนายระดับรัฐสร้างอุปสรรคต่อการเข้าถึงตลาด

ตามรายงานของ The Block เมื่อวันศุกร์ Andreessen Horowitz ได้ยื่นหนังสือแสดงความเห็นความยาว 18 หน้า ต่อคณะกรรมการกำกับดูแลตลาดสินค้าโภคภัณฑ์ (Commodity Futures Trading Commission) โดยสนับสนุนการกำกับดูแลจากรัฐบาลกลางของตลาดคาดการณ์ และคัดค้านการปราบปรามในระดับรัฐ A16z ให้เหตุผลว่า การออกจดหมายสั่งหยุดการกระทำ (cease-and-desist) และการเสนอแบนจากหน่วยงานกำกับดูแลในระดับรัฐนั้น

GateNews8 ชั่วโมง ที่แล้ว

Polymarket และ Kalshi ทำยอดปริมาณตลอดอายุการซื้อขายที่รวมกันสูงสุด $150B ในเดือนเมษายน

ข้อมูลของ The Block ระบุว่า ปริมาณการซื้อขายรวมตลอดอายุของ Polymarket และ Kalshi รวมกันทะลุ 150 พันล้านดอลลาร์ในเดือนเมษายน อย่างไรก็ดี เมษายนถือเป็นครั้งแรกที่กิจกรรมการซื้อขายรวมของทั้งภาคส่วนลดลงรายเดือน นับตั้งแต่แพลตฟอร์มเริ่มเผชิญการเติบโตอย่างรุนแรงในเดือนกันยายน ซึ่งทำให้สตรีค 7 เดือนต้องยุติลง o

CryptoFrontier11 ชั่วโมง ที่แล้ว

กองทุน ETF ของ Ethereum ร่วงลงติดต่อกัน 4 วันติดต่อกันที่ระดับสูงกว่า $184M

กองทุนซื้อขายแลกเปลี่ยน (ETF) ของ Ethereum มีเงินไหลออก 184 ล้านดอลลาร์ต่อเนื่องกัน 4 วันติดต่อกันจนถึงวันที่ 30 เมษายน ตามข้อมูลตลาด ขณะที่ความไม่แน่นอนทางภูมิรัฐศาสตร์ได้ชดเชยผลบวกในหุ้นสหรัฐ การไหลออกดังกล่าวทำให้สถิติขาดทุนต่อเนื่องยืดออกไปจากช่วงต้นสัปดาห์ โดยการไหลออกครั้งใหญ่ที่สุดในวันเดียว

CryptoFrontier12 ชั่วโมง ที่แล้ว

Gemini ได้รับใบอนุญาต DCO จาก CFTC ซึ่งช่วยให้สามารถทำการหักบัญชีการซื้อขายภายในได้บนแพลตฟอร์ม Titan

Gemini ได้รับอนุมัติใบอนุญาตสำหรับ Derivatives Clearing Organization (DCO) จาก Commodity Futures Trading Commission (CFTC) เมื่อวันพฤหัสบดี ซึ่งทำให้หน่วย Olympus สามารถดำเนินการชำระราคาและบริหารความเสี่ยงบนแพลตฟอร์ม Titan ของบริษัทได้ โดยแพลตฟอร์มดังกล่าวครอบคลุมสัญญาซื้อขายล่วงหน้า ออปชัน และตลาดการคาดการณ์ ใบอนุญาต DCO…

GateNews14 ชั่วโมง ที่แล้ว
แสดงความคิดเห็น
0/400
ไม่มีความคิดเห็น