ข้ามไปยังเนื้อหา

ภาพรวมและปรัชญาการออกแบบ

SabiQuant คือไลบรารี Quantitative Finance ความสมบูรณ์สูง ปราศจากการพึ่งพาไลบรารีภายนอก (Zero-dependency) เขียนขึ้นใหม่ด้วยภาษา Rust ล้วน ออกแบบมาเพื่อส่งมอบความน่าเชื่อถือระดับระบบการเงิน มีความแม่นยำเชิงตัวเลขขั้นสูง และใช้งานได้สะดวกตามหลักการยศาสตร์ของซอฟต์แวร์สมัยใหม่

ปรัชญาทางวิศวกรรม (Engineering Philosophy)

1. ปราศจากไลบรารีภายนอก (std-only)

ระบบงาน Quant ยุคใหม่จำนวนมากประสบปัญหาจากการพึ่งพาแพ็กเกจภายนอกที่มากเกินไป ความเสี่ยงด้านความปลอดภัยของ transitive dependencies และการเปลี่ยนแปลงที่เข้ากันไม่ได้จากแพ็กเกจต้นทาง

SabiQuant ไม่มี external crate dependencies ใดๆ ทุกฟังก์ชัน ตั้งแต่วันที่ ปฏิทินตลาด ตัวแก้สมการหาค่าราก การแจกแจงแบบปกติ ไปจนถึงการคำนวณเงินทศนิยมแน่นอน ถูกพัฒนาขึ้นบน Rust Standard Library (std) ทั้งหมด:

  • ระยะเวลาการคอมไพล์ที่รวดเร็วในระดับมิลลิวินาที
  • ตรวจสอบโค้ด (Audit) ได้อย่างโปร่งใส 100% เหมาะสำหรับสถาบันการเงินที่ต้องปฏิบัติตามกฎระเบียบ
  • นำไปปรับใช้บน WebAssembly, เครื่องฝังตัว (Embedded devices), และ Sandbox Container ที่จำกัดสิทธิ์ได้อย่างง่ายดาย

2. ความถูกต้องเทียบเท่า QuantLib (QuantLib Parity)

QuantLib เป็นไลบรารีอ้างอิงหลักในอุตสาหกรรมการเงินเชิงปริมาณมากว่าสองทศวรรษ SabiQuant นำกฎเกณฑ์และกรณีทดสอบของ QuantLib มาใช้เทียบเคียงเพื่อความถูกต้องเชิงตัวเลขที่ตรงกัน:

  • อนุสัญญาการนับวัน (Day Count Conventions) ตามมาตรฐาน ISDA/ICMA
  • ปฏิทินวันทำการของระบบ TARGET และตลาดแลกเปลี่ยน
  • รูปแบบการประเมินราคาพันธบัตรและกลไกการคิดทบต้น
  • การคำนวณช่วงเวลาเศษงวด (Stub periods) และการสร้างกระแสเงินสด

3. ระบบเงินที่แม่นยำและขอบเขตการชำระราคา (Exact Money & Settlement)

เลขทศนิยมลอยตัว (f64) มีข้อจำกัดเรื่องการปัดเศษของเลขฐานสอง ทำให้เสี่ยงต่อการเกิดข้อผิดพลาดในการทำบัญชีและการชำระเงิน SabiQuant จึงออกแบบสถาปัตยกรรมแบบแยกสองชั้น:

  • f64 สำหรับการคำนวณเชิงวิเคราะห์ต่อเนื่อง: ใช้สำหรับการคำนวณผลตอบแทน ความผันผวน Duration และสมการอนุพันธ์ย่อยที่ต้องการความต่อเนื่อง
  • DecimalAmount สำหรับการชำระราคา: ระบบทศนิยมแน่นอนขนาด 128-bit รองรับความละเอียด 38 ตำแหน่ง พร้อมโหมดการปัดเศษมาตรฐาน 7 รูปแบบ ป้องกันเศษสตางค์คลาดเคลื่อนและกระทบยอดบัญชีได้ 100%

4. ปราศจากการจองหน่วยความจำที่ไม่จำเป็น (Zero Unnecessary Allocations)

ลูปการประเมินราคาใน SabiQuant ได้รับการออกแบบให้หลีกเลี่ยงการจัดสรรหน่วยความจำบน Heap ทำให้ได้ประสิทธิภาพที่คาดการณ์ได้และมีความหน่วงระดับต่ำกว่าไมโครวินาที (Sub-microsecond latency)