⚠️ งานวิจัยและบันทึกการเทรดส่วนบุคคล ไม่ใช่คำแนะนำการลงทุน ผู้จัดทำไม่ได้ให้บริการที่ปรึกษาที่ได้รับใบอนุญาต
Backtest ของนักลงทุนรายย่อยส่วนใหญ่ไม่ใช่ของจริง
ไม่ใช่เพราะเทรดเดอร์ไม่ซื่อสัตย์ — แต่เพราะวิธีมาตรฐานในการ backtest ระบบเทรดมี failure mode หลายอย่างที่แทบไม่มีใครตรวจ คุณสามารถรันระบบข้ามข้อมูล 20 ปี เห็นผลตอบแทนที่แข็งแกร่ง และยังไม่มีอะไรจริง ๆ ผลตอบแทนนั้นอาจอธิบายได้ทั้งหมดด้วยปีโชคดี artifact จากข้อมูล หรือ regime ที่ไม่มีอยู่อีกแล้ว
ผมรู้เรื่องนี้เพราะผมรัน backtest เหล่านั้น แล้วสร้างการทดสอบที่ดีกว่า และดู "การค้นพบ" ส่วนใหญ่ของผมหายไป
นี่คือการทดสอบ 4 อย่างที่สำคัญ ผลลัพธ์ที่ผ่านไม่ครบสี่อย่างยังไม่พร้อมเทรดด้วยเงินจริง
การทดสอบที่ 1: แยกทีละปี — median year ชนะไหม?
Failure mode ที่พบบ่อยที่สุดใน backtesting คือสิ่งที่ผมเรียกว่า tail-year trap
คุณรันระบบข้ามข้อมูล 20 ปี ค่าเฉลี่ยผลตอบแทนดูน่าประทับใจ แต่เมื่อแยกทีละปีและเรียงผลลัพธ์ คุณพบว่าสองหรือสามปีที่พิเศษมากใน bull market คิดเป็นส่วนใหญ่ของค่าเฉลี่ย — และในอีก 17 ปีที่เหลือ ระบบแทบ breakeven หรือขาดทุน
นี่ไม่ใช่ระบบ นี่คือลอตเตอรีที่ชนะใหญ่ในสภาวะพิเศษและ breakeven นอกนั้น
วิธีแก้: หลัง backtest ใด ๆ แยกผลลัพธ์ทีละปีและดูที่ median year — ไม่ใช่ค่าเฉลี่ย ถ้า median year ใกล้ศูนย์หรือติดลบในขณะที่ค่าเฉลี่ยดูดี edge กระจุกอยู่ใน tail years คุณกำลังถือ coin flip ที่มีหางขวาอ้วน ไม่ใช่ระบบจริง
Assumption audit ของผมพบสิ่งนี้พอดี "การปรับปรุง" หลายอย่างต่อ contracting-base setup ทำให้ค่าเฉลี่ยสูงขึ้นอย่างมาก เมื่อแยกทีละปี ผลตอบแทนเพิ่มมาจากปี 2020 เกือบทั้งหมด — ปีที่กลุ่มหนึ่งมีแค่ 6 trades และ R ผิดปกติเพราะ COVID recovery bounce ส่วน median year จริง ๆ แย่กว่า baseline เสียอีก
ค่าเฉลี่ยเล่าเรื่องหนึ่ง Median year เล่าความจริง
การทดสอบที่ 2: Bootstrap CI — confidence interval ไม่ครอม 0 ไหม?
แม้ median year ดูดี คุณยังต้องรู้ว่าผลลัพธ์สามารถอธิบายได้ด้วยโอกาสหรือเปล่า
Bootstrap confidence interval ตอบคำถามนี้ คุณเอา trade sample มา resample 1,500–10,000 ครั้งแบบ with replacement คำนวณ metric (median return, net R อะไรก็ตามที่วัด) บน resample แต่ละครั้ง แล้วดูการกระจายของผลลัพธ์ CI 95% คือช่วงที่บรรจุ 95% ของผลลัพธ์ที่ resampled เหล่านั้น
ถ้า CI ครอม 0 — ถ้า lower bound เป็นลบและ upper bound เป็นบวก — ผลลัพธ์สอดคล้องทางสถิติกับ coin flip คุณไม่สามารถตัดออกได้ว่า "edge" ของคุณเป็นแค่ random noise
ถ้า CI ไม่ครอม 0 ในด้านบวก — ถ้าแม้แต่ end ที่มองโลกในแง่ร้ายของ distribution ยังเป็นบวก — คุณมีหลักฐานของ edge จริง
กับดักสำคัญหนึ่งอย่าง: bootstrap CI ใช้ได้เฉพาะเมื่อข้อมูลพื้นฐานสะอาด ผมพบสิ่งนี้ด้วยทางที่ยาก Information Coefficient ของผมบน US RS rankings เป็น 0.26 — สูงมาก หลังเพิ่ม data-freshness filter (บังคับให้ข้อมูลหุ้นอยู่ภายใน 1 วันจากปัจจุบัน) signal เดียวกันกลายเป็น −0.09 CI เคยมั่นใจในตัวเลขที่ไม่มีอยู่จริง ขยะเข้า confidence interval ออก
การทดสอบที่ 3: Date-matched baseline — มันชนะ random ไหม?
นี่คือการทดสอบที่งานวิจัยส่วนใหญ่ข้ามไป และเป็นอันที่ล้ม "การค้นพบ" มากที่สุด
สัญชาตญาณ: ถ้าคุณอ้างว่า setup หรือ signal เฉพาะมี edge คุณต้องเปรียบเทียบกับทางเลือก — จะเกิดอะไรขึ้นถ้าคุณเลือกหุ้นสุ่มจาก qualifying universe เดียวกัน ในวันเดียวกัน?
ทำไมสิ่งนี้สำคัญ: ตลาดขาขึ้นดัน ทุกหุ้น ขึ้น นักวิเคราะห์ IBD พูดว่าหุ้อยู่ใน "buy zone" เกิดขึ้นมากกว่าใน bull market backtest แบบง่ายของ "หุ้นที่ IBD กล่าวถึงใน buy zone" จะแสดงผลตอบแทนที่แข็งแกร่ง — แต่หุ้น RS≥80 สุ่มที่กล่าวถึงในวันเดียวกัน ใน regime เดียวกัน ก็จะแสดงเช่นกัน วลีไม่ได้เพิ่มอะไร market regime ต่างหากที่เพิ่ม
Baseline ที่ถูกต้อง: สำหรับทุก signal หรือการกล่าวถึง สุ่มหุ้น RS≥80 5 ตัวที่ active ในวันเดียวกัน คำนวณ return metric เดียวกัน เปรียบเทียบ
ถ้า signal ของคุณไม่ชนะ date-matched baseline ใน median return + drop-top-3 robustness + hit-rate threshold signal นั้นไม่ได้เพิ่มอะไรนอกจากสิ่งที่หุ้นที่ผ่านเกณฑ์สุ่มในวันนั้นจะให้คุณอยู่แล้ว
ผมรัน test นี้กับ 28 วลีจาก IBD transcript corpus ยี่สิบหกล้มเหลว สองที่ดูเหมือนรอดล้มภายใต้ bootstrap CI หรือ by-year split
การทดสอบที่ 4: Walk-forward — มันยังใช้ได้ out-of-sample ไหม?
สามการทดสอบแรกยังสามารถถูกเอาชนะได้ — โดยไม่ตั้งใจ — ถ้าคุณดูข้อมูลในขณะสร้างระบบ ผลกระทบนักวิจัย: คุณรันการทดสอบมากพอที่สมองของคุณจับ pattern กับ dataset นี้โดยเฉพาะ กฎที่คุณเขียนเข้ารหัสอดีตแทนที่จะเป็นกลไกจริง
การป้องกันเดียว: out-of-sample testing — กันข้อมูลส่วนหนึ่งไว้ — ปีล่าสุด หรือทุกปีสลับกันใน rolling window — และรันระบบบนข้อมูลที่กันไว้นั้นโดยไม่ปรับเพิ่มเติม
ถ้าระบบยังใช้ได้ในช่วงที่ไม่เคยเห็นระหว่างสร้าง คุณมีหลักฐานของ generalization จริง ถ้ามันพังทลาย คุณพบ overfitting
สำหรับระบบหลักของผม ผมใช้ multi-window walk-forward: แบ่ง history เต็มเป็น training และ test windows กลิ้งไปข้างหน้า และดูว่าระบบ perform ได้สม่ำเสมอข้าม held-out periods ผลลัพธ์ต้องสม่ำเสมอ — ไม่ใช่แค่หน้าต่างดีหนึ่งหรือสอง — เพื่อนับว่า validated
ระบบที่ดูยอดเยี่ยม in-sample แต่เสื่อมลงอย่างมีนัยสำคัญ out-of-sample ยังไม่พร้อม ต้องการข้อมูลเพิ่ม กฎที่เรียบง่ายกว่า หรือกลไกที่ดีกว่า
สรุปรวม
สี่การทดสอบ ผลลัพธ์ต้องผ่านทั้งสี่:
1. Median year เป็นบวก — edge สม่ำเสมอ ไม่กระจุกใน tail 2. Bootstrap CI ไม่ครอม 0 — บนข้อมูลที่สะอาด 3. ชนะ date-matched baseline — บน median + drop-top-3 + hit-rate 4. Walk-forward ยังใช้ได้ out-of-sample — ข้ามหลาย held-out periods
การค้นพบรายย่อยส่วนใหญ่ล้มที่ขั้นที่หนึ่งหรือสอง "กลยุทธ์" ที่เผยแพร่ส่วนใหญ่ยังไม่ได้ทดสอบที่ขั้นที่สามเลย ขั้นที่สี่คือที่งานจริงอยู่
ระบบหลักของผม — contracting-base breakout กับ RS≥80 + confirmed uptrend — ผ่านทั้งสี่ในไทย Edge เล็กกว่าที่ raw backtest บอก และมีอยู่แค่ใน market conditions บางอย่าง แต่ผ่าน นั่นคือระดับหลักฐานที่ผมต้องการก่อนเทรดด้วยเงินจริง
นั่นคือบาร์ บาร์มันสูง ควรจะสูง
ตามรอย ศึกษา รอจังหวะ จู่โจม
งานวิจัยและบันทึกการเทรดส่วนบุคคล ไม่ใช่คำแนะนำการลงทุน — MOEasymmetry
ฉบับร่าง 2026-06-09 ยังไม่เผยแพร่ | คู่กับ EN version | ที่มา: assumption audit, freshness gate, phrase-lift baseline testing, 36yr walk-forward