Technology

การกำหนดราคาทางเลือก ด้วยภาษา Python

2025-05-13 03:40:24


แม้ว่า C++ จะเป็นภาษาหลักที่นิยมใช้ในการกำหนดราคาทางเลือก แต่ทีมงานตัดสินใจเลือกใช้ ภาษา Python ทั้งหมด เพื่อวัตถุประสงค์ด้านการเรียนรู้ นอกจากจะเป็นโอกาสในการฝึกฝนทักษะ Python ของทีมแล้ว ยังสามารถผสานการทำงานของไลบรารีเข้ากับเว็บไซต์ได้อย่างง่ายดายอีกด้วย

ไลบรารีนี้มีชื่อชั่วคราวว่า PyQuant ซึ่งในขณะนี้ยังมีฟังก์ชันจำกัด โดยประกอบด้วยสองส่วนหลัก:

  • ชุดสูตรปิด (Closed-form Solutions) สำหรับ Vanilla Call/Put และ Digital Options
  • ตัวคำนวณ Monte Carlo พื้นฐาน สำหรับการกำหนดราคาของ Double-Digitals และ Power Options


ในอนาคตจะมีการเพิ่มตัวเลือกทางการเงินอื่นๆ ที่มีสูตรปิด เพื่อนำมาใช้ตรวจสอบผลลัพธ์ แต่ในตอนนี้ทีมงานให้ความสำคัญกับการพัฒนาตัวแก้สมการแบบ Monte Carlo เป็นหลัก



การคำนวณด้วยสูตรปิด

การคำนวณสูตรปิดใช้พึ่งพาฟังก์ชันทางสถิติ 2 ตัว ได้แก่:

  • Normal Probability Density Function (NPDF)
  • Cumulative Normal Distribution Function (CNDF)


สามารถดูวิธีประมาณเชิงตัวเลขของ CNDF ได้ใน [1] เมื่อมี NPDF และ CNDF แล้ว ก็สามารถคำนวณราคา Vanilla Call และ Put รวมถึงค่ากรีกต่างๆ ได้ เช่น:

  • Delta
  • Gamma
  • Rho
  • Vega
  • Theta


นอกจากนี้ยังสามารถใช้สูตรปิดเพื่อคำนวณราคา Digital Options ได้ด้วย



การคำนวณด้วยวิธี Monte Carlo

แนวทางแบบ Monte Carlo ทำงานแตกต่างออกไป ไลบรารีจะมีโมดูลหนึ่งเก็บ วัตถุรูปแบบผลตอบแทน (pay-off objects) สำหรับแต่ละประเภทของ option เช่น Call, Put, Forward, Digital Call ฯลฯ อีกโมดูลหนึ่งเก็บ วัตถุของ option ซึ่งสำหรับ Vanilla Option จะต้องระบุเวลาหมดอายุและรูปแบบผลตอบแทน โดย ราคาที่ใช้สิทธิ (Strike) จะถูกเก็บอยู่ในวัตถุผลตอบแทนเพื่อความยืดหยุ่นในการใช้ซ้ำของโค้ด

โมดูลสุดท้ายคือ Monte Carlo Engine ที่คำนวณเส้นทางราคาหุ้นจำนวนมากตามกระบวนการ Geometric Brownian Motion และใช้สิ่งเหล่านี้ในการประเมินค่าผลตอบแทนที่คาดหวังของ option ผลตอบแทนนี้จะถูก คิดลดด้วยอัตราดอกเบี้ยไร้ความเสี่ยง (risk-free rate) เพื่อให้ได้ราคาปัจจุบันของ option



ประสิทธิภาพและแนวทางการปรับปรุง

ในขั้นตอนปัจจุบัน การเรียกตัวคำนวณ Monte Carlo ใหม่ทุกครั้งที่มีการเปลี่ยนแปลงข้อมูลนำเข้า ใช้เวลาในการคำนวณมาก มีแนวทางปรับปรุงได้สองแบบ:

  • ใช้ SciPy ซึ่งเป็นไลบรารีเชิงวิทยาศาสตร์ของ Python ที่มีวิธีการเพิ่มประสิทธิภาพหลายรูปแบบ (optimization strategies) ดูบทความ Performance Python แล้วคุณอาจแปลกใจกับประสิทธิภาพเมื่อเทียบกับ C++
  • เขียนไลบรารี C++ เฉพาะ แล้วเรียกใช้งานจาก Python แม้ว่าวิธีนี้จะเร็วกว่า แต่ก็ขัดแย้งกับเป้าหมายของการมีไลบรารีกำหนดราคาทางเลือกที่เขียนด้วย Python ล้วนๆ



อ้างอิง : Options Pricing in Python

จาก https://www.quantstart.com/articles/Options-Pricing-in-Python/

ร่วมเเสดงความคิดเห็น :

บทความอื่นๆที่น่าสนใจ

บทความที่น่าสนใจอื่นๆยังมีอีกมากลองเลืือกดูจากด้านล่างนี้ได้นะครับ