สร้าง Polymarket Market Scanner ด้วย Python สำหรับนักเทรด
เรียนรู้วิธีพัฒนา Polymarket Market Scanner ภาษา Python แบบ read-only ที่แยกการค้นหาตลาดและการประเมินข้อมูลออกจากกันอย่างมีประสิทธิภาพ

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- สร้าง Polymarket Market Scanner ด้วย Python แบบไม่ต้องใช้คีย์ส่วนตัว
- แยกส่วนการค้นหาตลาด (Gamma API) ออกจากข้อมูลสมุดคำสั่งซื้อ (CLOB API)
- กรองข้อมูลตลาดนับพันให้เหลือผู้สมัครที่มีสภาพคล่องสูงเพื่อวิเคราะห์ต่อ
- จัดลำดับความสำคัญของตลาดด้วยฟังก์ชันคำนวณคะแนนจากสภาพคล่องและปริมาณการซื้อขาย
การพัฒนาบอทซื้อขายไม่ควรเริ่มต้นด้วยการส่งคำสั่งซื้อขายทันที แต่ควรเริ่มต้นด้วยคำถามที่เรียบง่ายกว่าว่า ตลาด Polymarket ใดบ้างที่น่าสนใจในขณะนี้ การสร้างสแกนเนอร์ตลาด Polymarket ที่มีประสิทธิภาพจะช่วยกรองตลาดที่มีอยู่จำนวนมากให้เหลือเพียงชุดข้อมูลผู้สมัครที่มีโครงสร้างชัดเจน ตามเงื่อนไขต่างๆ เช่น สถานะตลาด สภาพคล่อง ปริมาณการซื้อขาย วันหมดอายุ ราคา และความพร้อมใช้งานของสมุดคำสั่งซื้อ
ในปัจจุบัน Polymarket เปิดเผยข้อมูลตลาดสาธารณะโดยไม่ต้องมีการยืนยันตัวตน ผ่านทาง Gamma API สำหรับการค้นหาตลาด และ CLOB API สำหรับข้อมูลสมุดคำสั่งซื้อและราคา บทความนี้จะพาทุกท่านไปสร้าง Python scanner แบบอ่านอย่างเดียว (read-only) ที่ค้นหาตลาดที่ยังแอคทีฟ ใช้ตัวกรองเชิงปริมาณ และสร้างชุดข้อมูลผู้สมัครสำหรับส่งต่อให้กลยุทธ์หรือเอนจินการทำงานในขั้นตอนถัดไปประเมินผล
การแยกส่วนการค้นหาตลาด (Market Discovery) ออกจากประเด็นการประเมินตลาดถือเป็นสถาปัตยกรรมซอฟต์แวร์ที่สำคัญ สแกนเนอร์ไม่ควรดาวน์โหลดสมุดคำสั่งซื้อทั้งหมดทุกครั้งที่ทำการสแกน เนื่องจากจะสร้างปริมาณการจราจรบนเครือข่ายโดยไม่จำเป็นและทำให้ระบบขยายสเกลได้ยาก นอกจากนี้ เมทาเดตา (Metadata) มักจะเปลี่ยนแปลงช้ากว่าสถานะของสมุดคำสั่งซื้อ การแบ่งหน้าที่เช่นนี้จึงช่วยเพิ่มประสิทธิภาพและความปลอดภัยให้ระบบได้เป็นอย่างดี
สำหรับการค้นหาตลาดในวงกว้าง เอกสารอย่างเป็นทางการของ Polymarket แนะนำให้ใช้เอน드พอยต์แบบ keyset-paginated ที่รองรับตัวกรอง เช่น สถานะปิด ช่วงสภาพคล่อง ช่วงปริมาณการซื้อขาย ช่วงวันที่ แท็ก และการจัดลำดับ โดยใช้พารามิเตอร์ next_cursor และ after_cursor โดยมีขีดจำกัดสูงสุดอยู่ที่ 100 รายการต่อครั้ง ต่อมาเมื่อสแกนเนอร์ต้องการข้อมูลสมุดคำสั่งซื้อ เช่น ราคาเสนอซื้อ ราคาเสนอขาย หรือราคาตรงกลาง จึงค่อยเรียกใช้งาน CLOB API

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในการเริ่มต้นโปรเจกต์สแกนเนอร์อย่างง่ายด้วย Python เราสามารถใช้เครื่องมือ HTTP มาตรฐานอย่างไลบรารี httpx ได้ โดยมีขั้นตอนการตั้งค่าโปรเจกต์ดังนี้:
- สร้างและเปิดใช้งาน Virtual Environment ในระบบปฏิบัติการของคุณ
- ติดตั้งไลบรารีที่จำเป็นผ่านคำสั่ง pip install httpx
- จัดระเบียบโครงสร้างโปรเจกต์ให้มีไฟล์ scanner.py, requirements.txt และ README.md
เนื่องจากเวอร์ชันนี้เป็นสแกนเนอร์แบบอ่านอย่างเดียว จึงไม่มีความจำเป็นต้องใช้คีย์ส่วนตัวหรือข้อมูลประจำตัวในการซื้อขายแต่อย่างใด คอมโพเนนต์แรกที่ต้องสร้างคือไคลเอนต์สำหรับการค้นหาตลาด ซึ่งจะต้องจัดการกับการแบ่งหน้าข้อมูลอย่างถูกต้อง และเนื่องจากการแสดงผลข้อมูลของ Polymarket มักจะอยู่ในรูปแบบสตริง JSON ที่ผ่านการซีเรียลไลซ์ นักพัฒนาจึงควรเขียนโค้ดเพื่อแยกวิเคราะห์ข้อมูลอย่างระมัดระวัง เช่น ฟังก์ชัน parse_outcomes ที่แปลงชุดข้อมูลผลลัพธ์และราคาให้อยู่ในรูปทศนิยมที่โปรแกรมสามารถนำไปประมวลผลต่อได้
กระบวนการกรองข้อมูลเมทาเดตานั้นถือเป็นด่านแรก ยกตัวอย่างเช่น หากมีตลาดทั้งหมด 5,000 แห่ง แต่มีเพียง 100 แห่งที่ผ่านเกณฑ์สภาพคล่องและปริมาณการซื้อขายเบื้องต้น ก็ไม่มีเหตุผลใดที่จะต้องไปดึงข้อมูลสมุดคำสั่งซื้อรายละเอียดสูงสำหรับตลาดทั้ง 5,000 แห่งนั้น การกรองเป็นขั้นตอนช่วยลดภาระของระบบได้อย่างมหาศาล ก่อนที่ระบบจะนำตลาดที่ผ่านเกณฑ์มาจัดลำดับความสำคัญผ่านฟังก์ชันคะแนน เช่น การนำสแควร์รูทของสภาพคล่องคูณด้วยสแควร์รูทของปริมาณการซื้อขาย เพื่อบอกให้เอนจินกลยุทธ์รู้ว่าควรหันไปโฟกัสที่จุดใดก่อน
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น