𝗦𝗰𝗮𝗿𝗮𝗯 𝗗𝗶𝗮𝗴𝗻𝗼𝘀𝘁𝗶𝗰 𝗙𝗶𝗲𝗹𝗱 𝗧𝗲𝘀𝘁 #𝟬𝟯𝟮: ขอบเขตการกำหนดราคาเป้าหมายของออปชัน (Option Target Pricing Boundary)
QuantConnect Lean มีบั๊กที่ร้ายแรงในการกำหนดขนาดเป้าหมายของออปชัน (option target sizing)
หากคุณกำหนดเป้าหมายสำหรับสถานะออปชันไว้ที่ 10% ตัวเอนจินอาจส่งคำสั่งซื้อขายเกินกว่าที่คุณต้องการ
สิ่งนี้เกิดขึ้นเนื่องจากระบบใช้ราคาที่ผิดในการคำนวณจำนวน โดยใช้ราคา Mid หรือราคา Last แทนที่จะเป็นราคาจริงที่คุณต้องจ่ายเพื่อซื้อออปชันนั้น
เมื่อส่วนต่าง Bid/Ask (spread) กว้างขึ้น ข้อผิดพลาดนี้ก็จะยิ่งเพิ่มมากขึ้น
ตัวเอนจินใช้ security.Price ในการคำนวณมาร์จิ้น สำหรับสถานะ Long Option คุณต้องซื้อที่ราคา Ask หากเอนจินคำนวณขนาดโดยอิงจากราคา Mid ที่ต่ำกว่า สถานะสุดท้ายของคุณจะเกินน้ำหนักเป้าหมาย (target weight) เมื่อคำสั่งซื้อขายถูกจับคู่ (fills)
เราได้ระบุขอบเขตการแก้ไขที่ชัดเจนแล้ว
เราไม่ได้เขียนเอนจินการสร้างพอร์ตโฟลิโอ (portfolio construction engine) ใหม่ทั้งหมด เราไม่ได้เปลี่ยนวิธีการทำงานของหลักทรัพย์ทุกประเภท เราไม่ได้เปลี่ยนเลเยอร์การส่งคำสั่ง (execution layer)
แต่เราได้แก้ไขเส้นทางการกำหนดราคามาร์จิ้นเฉพาะสำหรับออปชันแทน
การแก้ไขนี้เป็นไปตามกฎดังนี้:
- สำหรับเป้าหมาย Long Option: ใช้ราคา Ask เมื่อมีข้อมูล
- สำหรับเป้าหมาย Short Option: ใช้ราคา Bid เมื่อมีข้อมูล
- หากไม่มีราคาเสนอ (quote): ให้กลับไปใช้ราคา Last/Mark เดิมที่มีอยู่
วิธีนี้ช่วยให้การแก้ไขจำกัดอยู่ในวงแคบและปลอดภัย โดยจะใช้ข้อมูลที่ดีกว่าเมื่อมีข้อมูลนั้นอยู่ แต่ยังคงรักษาพฤติกรรมเดิมไว้เมื่อไม่มีข้อมูล
ผลการตรวจสอบความถูกต้อง (Validation results):
- Release build ผ่านการทดสอบ
- การทดสอบ option-margin เฉพาะจุด: ผ่าน 41/41
- เพิ่มการครอบคลุมการทดสอบแบบ Regression ทั้งสำหรับการกำหนดราคา Ask ในฝั่ง Long และการกำหนดราคา Bid ในฝั่ง Short
การแก้ไขนี้ช่วยให้มั่นใจว่าเอนจินจะปฏิบัติตามข้อตกลงความเสี่ยง (risk contract) ของคุณ โดยการใช้ราคาที่สามารถซื้อขายได้จริง (executable prices) ในการกำหนดขนาด
Optional learning community: https://t.me/GyaanSetuAi