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

BlockBeatNews
USDC-0.01%

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

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

ไม่ใช่เพราะผมอ่อนหัด แต่เพราะการคำนวณ 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 ล้าน สัญลักษณ์กลับกัน

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

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

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

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

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

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

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

กับดัก 3:ไม่ควรลบซ้ำโดยใช้ txHash เป็นหลัก

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

ถ้า txHash (รหัสธุรกรรม) ปรากฏหลายรายการ คนปกติจะคิดว่าเป็นข้อมูลซ้ำ ควรลบซ้ำ

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

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

สรุป: ห้ามลบซ้ำโดยใช้ 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 ให้ผลลัพธ์ของ PnL ของที่อยู่เดียวกันกับ API ของ lb-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 ด้วยราคาปัจจุบัน

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

เปรียบเทียบผลลัพธ์กับ API ของ Polymarket (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 → ใช้ไม่ได้ เกิดความผิดพลาดในธุรกรรมจริง

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

วิธี cash flow จาก Data 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

Vitalik คาดการณ์ว่าตลาดคาดการณ์กำลังเปลี่ยนไปใช้ออราเคิลแบบกระจายอำนาจ พร้อมเรียกร้องให้มีการลงคะแนนแบบส่วนตัวครั้งต่อไป

ตามที่ ChainCatcher รายงาน Vitalik Buterin กล่าวบน X ว่าคุณภาพของตลาดคาดการณ์ขึ้นอยู่กับออราเคิลเป็นหลัก เขาแสดงความมองโลกในแง่ดีว่าตลาดคาดการณ์จะหันมาใช้โซลูชันออราเคิลแบบกระจายอำนาจและไม่ถูกทำให้กลายเป็นสินทรัพย์ทางการเงินมากขึ้น Buterin ระบุเพิ่มเติมว่าเฟสการพัฒนาขั้นถัดไป

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

สื่อสหรัฐฯ สืบสวน: Polymarket มีสำนักงานใหญ่ในปานามา โดยเป็นบริษัทกฎหมาย และเคยให้บริการกับ FTX

ตามการสืบสวนที่เผยแพร่โดย National Public Radio ของสหรัฐฯ (NPR) เมื่อวันที่ 5 พฤษภาคม ผู้สื่อข่าวได้เดินทางไปยังที่อยู่สำนักงานใหญ่ในปานามาของ Polymarket ที่จดทะเบียนไว้อย่างเป็นทางการ ซึ่งอยู่ที่ชั้น 21 ของ Oceania Business Plaza เมืองปานามา และไม่พบร่องรอยใดๆ ของ Polymarket หรือหน่วยงานทางกฎหมายในปานามาที่เกี่ยวข้อง หลังจากนั้น ที่ทำการของ García de Paredes Law Firm ที่อยู่เดียวกันเคยให้บริการด้านกฎหมายแก่ FTX

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

MicroStrategy วางแผนขาย Bitcoin เพื่อหาเงินจ่ายเงินปันผล STRC โดยเปลี่ยนจากนโยบาย “ไม่ขาย” อย่างเด็ดขาด

ตามรายงานของ The Block เกี่ยวกับการประชุมทำกำไร Q1 ปี 2026 ของ MicroStrategy บริษัทวางแผนที่จะขาย bitcoin เพื่อใช้เป็นเงินทุนสำหรับเงินปันผลของหุ้นบุริมสิทธิแบบถาวรที่ให้ผลตอบแทนสูง STRC ซึ่งถือเป็นการเปลี่ยนแปลงครั้งสำคัญจากความเชื่อมั่นที่ยึดถือมายาวนานว่า “ไม่เคยขาย” โดยประธาน Michael Saylor กล่าวว่า ทางบริษัท

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

วาฬ Polymarket ซื้อการเดิมพันแบบส่วนต่าง (spread) Thunder มูลค่า 133,000 ดอลลาร์ ในเกม NBA รอบรองชนะเลิศสายตะวันตก นัดที่ 1 ที่ราคา 50¢

ตามที่ Odaily Seer ระบุ บัญชีหนึ่งที่ทำกำไรมากกว่า $12 ล้านบน Polymarket ซื้อสถานะมูลค่า $133,000 โดยเดิมพันว่า Thunder จะเอาชนะ Lakers ด้วยส่วนต่าง 15.5 แต้ม ในเกม 1 ของรอบรองชนะเลิศสายตะวันตก NBA วันที่ 6 พฤษภาคม โดยมีราคาเข้าซื้อเฉลี่ยที่ 50 เซนต์ เกมเริ่มแข่งขันแล้ว

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

สมาชิกทีม Polymarket ปล่อยเบาะแส เปิดตัวโทเค็น POLY ใกล้จะเกิดขึ้น

ตามที่ ChainCatcher ระบุ มุสตาฟา สมาชิกทีม Polymarket ได้แซวในห้องสนทนาชุมชนว่าการเปิดตัวโทเค็น POLY อาจจะใกล้เข้ามาแล้ว เมื่อถูกถามเกี่ยวกับการสเตก POLY เพื่อลดค่าธรรมเนียมการเทรด มุสตาฟาตอบว่า “soon” ซึ่งสื่อถึงความคืบหน้าในโทเค็นที่กำลังจะเกิดขึ้นในไม่ช้า

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