ข้อมูลเชิงลึกและข่าวสาร

บล็อก

เจาะลึกเรื่องการเทรดด้วย AI การวิเคราะห์ตลาด และอนาคตของ DeFi

Browse collections →
Filter by tag:
July 2, 2026
#algotrading

ภาษีของเฟรมเวิร์ก: เมื่อไลบรารี Backtest ของคุณช้ากว่าลูป Pandas แบบง่ายๆ

เราทำเบนช์มาร์กเอนจิน backtest แปดตัวบน parameter sweep ชุดเดียวกัน — 150,000 แท่งราคา, 80 คอมโบ HMA-cross, ล็อกจำนวนเทรดให้ตรงกันที่ 2707 รายการ เฟรมเวิร์ก event-driven ที่ได้รับความนิยมมากที่สุดสองตัวกลับช้ากว่าลูป pandas ที่เขียนขึ้นมาเอง ในขณะที่เอนจินแบบ vectorized/compiled ทำงานเดียวกันได้เร็วกว่าประมาณ 13,000 เท่า การศึกษาต้นทุนแฝงต่อแท่งราคาที่ไลบรารียอดนิยมไม่เคยถูกออกแบบมาให้ตัดจ่ายได้

#algotrading#backtest#ประสิทธิภาพ
อ่านบทความ →
July 1, 2026
#algotrading

Probability of Backtest Overfitting: การค้นหาของคุณเอาชนะการโยนเหรียญหรือไม่?

Deflated Sharpe Ratio ตั้งราคาให้กลยุทธ์ผู้ชนะ; PBO ตั้งราคาให้การค้นหาที่เลือกมันขึ้นมา Combinatorially Symmetric Cross-Validation รัน C(16,8) = 12,870 train/test split บน performance matrix ขนาด 1000x200 แล้วถามว่า: ผู้ชนะแบบ in-sample ตกไปอยู่ครึ่งล่างของ out-of-sample หรือไม่? กับดักที่แทบทุกคนมองข้าม — null ของ PBO คือ 0.5 ไม่ใช่ 1 บนกลยุทธ์ zero-edge 200 ตัว best in-sample Sharpe ต่อปีที่ 1.98 ยุบลงเหลือ 0.06 นอก sample และ PBO = 0.476: การโยนเหรียญ overfit เต็มขั้น ปลูก edge จริง (Sharpe ต่อปี 2.38) แล้ว PBO ลดลงเหลือ 0.001, in-sample 3.73 รอดมาเป็น out-of-sample 2.34 moving-average grid บน pure random walk ก็ไม่มี out-of-sample skill เช่นกัน — PBO 0.463 เฉลี่ยข้าม 60 matrix แยกไม่ออกจาก null ทางสถิติ — และบน matrix ตัวแทนหนึ่งตัว ภาพลวงตาชัดเจนมาก: best in-sample Sharpe ที่ 2.33 ยุบลงเหลือ median out-of-sample -0.22, PBO 0.573, โอกาสขาดทุน 63%

#algotrading#backtest#overfitting
อ่านบทความ →
June 30, 2026
#algotrading

ภาษี IPC: เอา Backtest Engine ไปไว้หลัง Socket แล้วเสีย 13% — แต่แทบไม่มีส่วนไหนเลยเป็นความผิดของ Socket

เรา port numba backtest kernel ตัวหนึ่งไปเป็น Rust แบบ line-for-line แล้วเรียกมันข้าม process boundary สี่วิธี พร้อม equivalence gate ที่ยืนยันว่า PnL เหมือนกันทุกประการจนถึง trade สุดท้าย การส่ง price series ทั้งชุดขนาด 1.2 MB ผ่าน Unix socket มีค่าใช้จ่ายประมาณ 2 ms — ราว 0.1% ของงานทั้งหมด การ encode payload เดียวกันด้วย JSON แพงกว่า raw bytes ถึง 1348 เท่า การเรียกแบบ chatty ทีละ combo ส่งข้อมูลซ้ำ 80 ครั้ง และ pattern การเรียกทีละ bar จะต้องจ่าย IPC ล้วนๆ 2.1 วินาทีบนงานที่ใช้เวลา 2.0 วินาที boundary นั้นถูก ภาษีอยู่ที่วิธีที่คุณข้ามมันต่างหาก

#algotrading#backtest#ประสิทธิภาพ
อ่านบทความ →
June 29, 2026
#algotrading

Deflated Sharpe Ratio: 'ผู้ชนะ' จาก Backtest ของคุณกี่ตัวที่รอดจาก Multiple Testing?

parameter search คือเครื่องจักรผลิตความโชคดี บน pure noise — กลยุทธ์ 1,000 ตัวที่ไม่มี edge จริงเลย — Sharpe ต่อปีที่ดีที่สุดเฉลี่ยอยู่ที่ 1.63 และ naive significance test ฟันธงว่าพบการค้นพบ 100% ของเวลา เราสร้าง ground truth ที่ควบคุมได้และแสดงให้เห็นว่า Deflated Sharpe Ratio, Harvey-Liu haircut และ White's Reality Check คืนความซื่อสัตย์กลับมา: false discovery ลดลงจาก 1.000 เหลือ 0.001-0.057, edge จริงที่อยู่เหนือ noise ceiling ถูกเก็บไว้ด้วย power ~1 — และกับดักจริงหนึ่งอย่าง (correlated grid) ที่ raw DSR over-deflate และคำตัดสินต้องอ่านข้าม band ทั้งหมดของ effective-trial estimator ไม่ใช่แค่ตัวเดียว

#algotrading#backtest#overfitting
อ่านบทความ →
June 28, 2026
#algotrading

การออกแบบ Objective Function: ตัวชี้วัดที่คุณ Optimize แอบเลือกกลยุทธ์ให้คุณ

การจะค้นหากลยุทธ์ที่ 'ดีที่สุด' คุณต้องนิยาม 'ดีที่สุด' ก่อน — และตัวเลขสเกลาร์ตัวนั้นเป็นผู้เลือกผู้ชนะอย่างเงียบ ๆ บนข้อมูล synthetic ที่มี edge จริงที่รู้ค่า (600 seed, T=2000, 80 threshold) per-trade Sharpe แบบ naive สวมมงกุฎให้ lottery: มันเลือกผู้ชนะที่ exposure ต่ำกว่า 5% ใน 56% ของ seed และเสื่อมสภาพ (degenerate) ใน 57% — บน seed ที่ชัดเจนที่สุด มี 8 เทรดที่ทำ in-sample Sharpe ได้ 21.09 แล้วยุบลงเหลือ 0.13 นอก sample การแก้ไขที่ซื่อสัตย์นั้นเกือบจะน่าเบื่อ: วัดบน full timeline ซึ่งไม่เคยเสื่อมสภาพเลย (out-of-sample 1.71) trade-count shrinkage (conf_k) และ exposure floor สามารถซ่อมแซม per-trade metric ได้ แต่แม้จะซ่อมเต็มที่แล้วก็ยังแค่เท่ากับ full-timeline Sharpe (1.70 เทียบกับ 1.71) — ไม่เคยเอาชนะมันได้เลย กฎของ Goodhart ในบริบทของ backtest พร้อม ground truth ที่ควบคุมได้

#algotrading#backtest#overfitting
อ่านบทความ →
June 27, 2026
#algotrading

Look-Ahead Bias: ความผิดพลาดเพียงหนึ่งแท่งเทียนสร้าง Sharpe 15 จาก Noise ล้วน ๆ ได้อย่างไร

การศึกษาแบบควบคุมเกี่ยวกับการรั่วไหลแบบ look-ahead ที่แอบเพิ่มผลลัพธ์ backtest อย่างเงียบ ๆ แม้ไม่มี edge จริงเลย การ fill บนแท่งเดียวกันก็สร้าง Sharpe ต่อปีที่ +14.8 จาก noise ล้วน ๆ ส่วนการแอบดู indicator ล่วงหน้าหนึ่งแท่งสร้าง +4.8 อนุกรมวิธานของการรั่วไหล ขนาดที่วัดได้จริง และวิธีตรวจจับแต่ละแบบก่อนที่มันจะทำให้คุณเสียเงิน

#algotrading#backtest#look-ahead bias
อ่านบทความ →
June 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 ไม่ใช่ชิ้นส่วนที่ขาดหายไป และคอขวดที่แท้จริงของการค้นหาพารามิเตอร์จำนวนมากอยู่ที่ไหน

#algotrading#backtest#ประสิทธิภาพ
อ่านบทความ →