← กลับคลังความรู้
Overfitting
ทำไม "จูนจนผ่าน" ถึงเป็นศัตรูตัวจริง
ชั้น 3 · คิดแบบ quant · อ่าน ~7 นาที · ยิ่งลองมาก ยิ่งหลอกตัวเองง่าย — เครื่องมือยุคนี้ทำให้ลองง่ายขึ้นพันเท่า
มีวงจรที่ทำลายนักเทรดมากที่สุดในประวัติศาสตร์: คิดกฎ → ทดสอบ → ผลไม่สวย → ปรับ → ทดสอบ → ปรับ → ... → สวยแล้ว! → ลงเงิน → ตาย
สิ่งที่ "จูน" ไม่ใช่ edge — คือ ความพอดีกับความบังเอิญในอดีต
1. Overfitting คืออะไร — ตัดสูทพอดีหุ่นโชว์
ลองนึกภาพตัดสูทให้หุ่นโชว์ตัวใดตัวหนึ่ง — สูทพอดีสมบูรณ์แบบกับหุ่นตัวนั้น แต่ถ้าเอาไปใส่คนจริง มันคงไม่พอดี เพราะมันถูกออกแบบมาสำหรับ "โพสท่า" นั้นโดยเฉพาะ ไม่ใช่สำหรับการใช้ชีวิตจริง
Overfitting คือการที่ระบบเทรด จำประวัติศาสตร์ได้แม่น แต่ไม่ได้เข้าใจกฎเชิงสาเหตุ — มันเรียนรู้ noise ในอดีต ไม่ใช่ signal จริงของตลาด · พอตลาดอนาคตมาถึง (ซึ่งไม่ใช่อดีตชุดเดิม) ระบบก็พัง
2. P-hacking — วิทยาศาสตร์ของการโยนเหรียญร้อยอัน
นี่คือรากของปัญหา และมันเกิดบ่อยกว่าที่คิด:
ทดลองนึกภาพ:
โยนเหรียญ 100 อัน · อันละ 10 ครั้ง
โดยเฉลี่ย → จะมีเหรียญ ~5 อัน ออกหัว 8+ ครั้งอย่าง "น่าทึ่ง"
ทั้งที่ทุกอันคือเหรียญธรรมดา ไม่มีอะไรพิเศษเลย
การลองกฎเทรด 100 แบบกับข้อมูลเดียวกัน
แล้วเลือกตัวที่ผลดีสุด = โยนเหรียญร้อยอัน
แล้วเอาอันที่ออกหัวบ่อยไปลงเงินจริง
ความดีที่เห็นคือ ความบังเอิญที่ถูกคัดเลือก ไม่ใช่ edge — และยิ่งเครื่องมือยุคใหม่ (รวมถึง AI) ทำให้ "ลองอีกแบบ" ใช้เวลาแค่วินาที ยิ่งหลอกตัวเองง่ายขึ้นพันเท่า
3. สัญญาณที่บอกว่าระบบ overfit
เส้น equity เนียนเกินไป — ธงแดง ไม่ใช่ธงเขียว
ระบบจริงบน timeframe ใหญ่มีไม้จำกัด/ปี ผลรายปีจึงแกว่งตามธรรมชาติ
เส้น equity ที่เนียนสนิทมีคำอธิบายไม่กี่แบบ: overfit จนจำอดีตได้ทั้งหมด (จะพังเมื่อเจออนาคต)
หรือมี negative skew ซ่อน (เนียนจนวันตาย — เหมือนกลยุทธ์สายกริด/มาร์ติงเกล)
ธรรมชาติของกำไรจริงคือ "หยักแต่มีทิศ" — ไม่ใช่ "เนียนขึ้นตลอด"
ยอดแหลม ไม่ใช่เนินกว้าง
ถ้าพารามิเตอร์ MA=20 เทพมาก แต่ MA=19 กับ MA=21 แย่มาก
= ระบบ "จำ" ว่า MA=20 เวิร์กกับข้อมูลชุดนั้น ไม่ได้ "เข้าใจ" ว่าทำไม
กฎจริงต้องให้ "เนินเขียวกว้าง" — ดีหลายๆ ค่า ไม่ใช่ดีแค่เลขเดียว
งานวิจัย R3 ของเรา — เจอเคสนี้จริง
ทดสอบ sweep proxy 20 ชุด → เจอ 1 config ผ่านจาก 20
ถ้าลองแค่นั้นและประกาศชัยชนะ = โยนเหรียญ 20 อัน เอาอันที่โชคดีไปใช้
แต่เราไม่ประกาศ — เพราะรู้ว่า เท่าที่โชคให้พอดี ไม่ใช่ edge จริง
4. กฎป้องกัน 5 ข้อ (มาตรฐานที่ระบบเราใช้จริง)
1. นับทุกครั้งที่ลอง — จดว่าทดสอบไปกี่ variation แล้ว ยิ่งลองมาก เกณฑ์ "ผ่าน" ต้องโหดขึ้นตาม
ลอง 20 แบบ → ต้องการผล p=0.0025 ไม่ใช่ p=0.05
2. ตั้งสมมติฐานก่อนเห็นผล — เขียนกฎ + เหตุผลเศรษฐศาสตร์ลงกระดาษก่อนรัน backtest ครั้งแรก
เหตุผลที่มาก่อน = วิทยาศาสตร์ · เหตุผลที่ตามหลัง = แต่งนิทานให้ความบังเอิญ
3. Out-of-sample ศักดิ์สิทธิ์ — กันข้อมูลไว้ส่วนหนึ่ง เปิดดูครั้งเดียว ใช้ตัดสินครั้งเดียว
เปิดแล้วแก้กฎ = ข้อมูลนั้น "เสีย" ถาวร กลายเป็น in-sample โดยพฤตินัย
4. กฎต้องมีเหตุผล "ใครจ่าย" — กฎที่อธิบายไม่ได้ว่ากำไรมาจากไหน = ความบังเอิญสูงกว่า edge จริงมาก
5. เนินกว้าง > ยอดแหลม — ทดสอบพารามิเตอร์ในย่าน ไม่ใช่แค่จุดเดียว
5. การทดสอบความทนทาน — ±20% พารามิเตอร์
วิธีจับว่าระบบ overfit หรือไม่: ขยับพารามิเตอร์ทุกตัว ±20% แล้วดูว่าผลยังดีอยู่ไหม
ถ้ากฎคือ: MA Fast=10 / MA Slow=30 / Stop=1.5× ATR
ทดสอบที่ Fast=8,10,12 × Slow=24,30,36 × Stop=1.2,1.5,1.8 ATR
= 27 combinations · ถ้า 20+ combinations ยังบวก = เนินกว้าง = ดีมาก
ถ้ามีแค่ 3-4 combinations บวก กระจัดกระจาย = ยอดแหลม = overfit
แชทโรงงานของเรา: SD30 (มองย้อน 30 วัน) ให้เนินกว้าง ชนะ SD50 (ยอดแหลม)
เมื่อสองทีมเจอความจริงเดียวกันโดยอิสระ = หลักฐานที่แข็งกว่า
6. Out-of-Sample คือผู้พิพากษาเพียงคนเดียว
ระบบเราแบ่งข้อมูลชัดเจน: 7 ปีแรก = ออกแบบและปรับกฎ (in-sample) · 3 ปีหลัง = ตัดสิน (out-of-sample) · กฎเหล็กคือ out-of-sample แตะได้ครั้งเดียวเท่านั้น
ข้อควรระวัง: H4/Daily บน 4 ตลาดใน 3 ปี อาจมีไม้แค่ 30-80 ไม้ — น้อยกว่าเกณฑ์ 100 ที่ให้ความน่าเชื่อถือ · จึงใช้อ่าน "ทิศทางและนิสัยของระบบ" ไม่ใช่ประกาศนัยสำคัญทางสถิติ
7. Yardstick เดียว: ตัดไม้ดีสุดสองไม้ออก
ทดสอบความทนทานที่ดีสุดที่รู้จัก:
ตัดไม้กำไรสูงสุด 2 ไม้ออกจากผลทั้งหมด → ระบบยังกำไรไหม?
งาน R3 ของเรา: ตัด 2 ไม้ "ลอตเตอรี่" จาก +0.97R เหลือ −0.05R
→ นั่นคือเรายังไม่มีระบบ มีแค่ความทรงจำดีๆ สองครั้ง
ถ้ากำไรทั้งระบบมาจากไม้เดียว/ปีเดียว = ยังไม่มีระบบ