High-Performance Backtest Engines
How to build a backtest engine that runs hundreds of times faster without changing a single PnL number — data layout, caching, adaptive resolution, and architecture, from first speedups to production internals.
- 01
Jun 26, 2026#algotradingบันไดความเร็วของ Backtest Engine: 298x บน CPU แล็ปท็อป, PnL เหมือนเดิมทุกประการจนถึง Trade สุดท้าย
ห้า implementation ของ parameter sweep 80 combo ชุดเดียวกัน ทุกตัวตรวจสอบแล้วว่าให้ PnL เหมือนกันทุกประการ: pandas rolling.apply ใช้เวลา 69.9 วินาที, numpy 3.1, numba 2.0, parallel numba 0.23 — ความเร็วที่วัดได้จริงเพิ่มขึ้น 298x บน Apple M2 Max โดยไม่เปลี่ยนฮาร์ดแวร์เลย และยังเร็วกว่า baseline แบบ vectorized ที่ทำได้ดีอยู่แล้วประมาณ 13x แต่ละขั้นบันไดให้อะไรบ้าง ทำไม GPU ไม่ใช่ชิ้นส่วนที่ขาดหายไป และคอขวดที่แท้จริงของการค้นหาพารามิเตอร์จำนวนมากอยู่ที่ไหน
- 02
Jul 2, 2026#algotradingภาษีของเฟร มเวิร์ก: เมื่อไลบรารี Backtest ของคุณช้ากว่าลูป Pandas แบบง่ายๆ
เราทำเบนช์มาร์กเอนจิน backtest แปดตัวบน parameter sweep ชุดเดียวกัน — 150,000 แท่งราคา, 80 คอมโบ HMA-cross, ล็อกจำนวนเทรดให้ตรงกันที่ 2707 รายการ เฟรมเวิร์ก event-driven ที่ได้รับความนิยมมากที่สุดสองตัวกลับช้ากว่าลูป pandas ที่เขียนขึ้นมาเอง ในขณะที่เอนจินแบบ vectorized/compiled ทำงานเดียวกันได้เร็วกว่าประมาณ 13,000 เท่า การศึกษาต้นทุนแฝงต่อแท่งราคาที่ไลบรารียอดนิยมไม่เคยถูกออกแบบมาให้ตัดจ่ายได้
- 03
Mar 16, 2026#algotradingAggregated Parquet Cache: วิธีเร่งความเร็วแบ็คเทสต์หลาย Timeframe ได้หลายร้อยเท่า
วิธีคำนวณ timeframe และ indicator ล่วงหน้าจากแท่งเทียนรายนาที บันทึกลง parquet และนำมาใช้สำหรับการทดสอบกลยุทธ์จำนวนมากโดยไม่ต้องคำนวณซ้ำซ้อน
- 04
Jul 3, 2026#อัลโกเทรดดิ้งพื้นที่พารามิเตอร์สองแกน: ทำไมการสวีปส่วนใหญ่ของคุณจึงควรแทบจะฟรี
พารามิเตอร์แต่ละตัวมีต้นทุนการค้นหาไม่เท่ากัน พารามิเตอร์ของกลยุทธ์แยกออกเป็นแกนราคาแพง (อินดิเคเตอร์ — ต้องคำนวณใหม่ตลอดทั้งซีรีส์ราคา) และแกนราคาถูก (ค่าเกณฑ์ตัดสินใจ — การกวาด O(n) รอบเดียวบนสัญญาณที่คำนวณล่วงหน้า) เพราะอินดิเคเตอร์ไม่แปรผันต่อค่าเกณฑ์ คุณจึงคำนวณมันครั้งเด ียวแล้วสวีปคอนฟิกค่าเกณฑ์นับพันที่ ~5,600 cfg/s — ถูกกว่าการคำนวณใหม่ต่อคอนฟิกราว 1,600 เท่า นี่คือการตีราคาคำสาปแห่งมิติเสียใหม่
- 05
Mar 17, 2026#algotradingAdaptive Drill-Down: แบ ็คเทสต์ด้วยความละเอียดข้อมูลแบบยืดหยุ่น ตั้งแต่นาทีจนถึงการเทรดดิบ
วิธีที่ความละเอียดข้อมูลแบบปรับตัวได้ช่วยเร่งความเร็วแบ็คเทสต์และประหยัดพื้นที่จัดเก็บ: drill-down จาก 1m ลงสู่ 1s, 100ms และการเทรดดิบ เฉพาะในจุดที่ราคาเคลื่อนไหวอย่างมีนัยสำคัญหรือปริมาณการซื้อขายพุ่งสูง ไม่ใช่ตลอดทั้งชุดข้อมูลประวัติศาสตร์
- 06
