ปี 1990 นักวิจัยชื่อ David Leinweber ลองหาว่ามีตัวเลขอะไรในโลกที่อธิบายดัชนี S&P 500 ได้ดีที่สุด
คำตอบที่เขาเจอคือ ยอดผลิตเนยในประเทศบังกลาเทศ · และเมื่อใส่ผลิตภัณฑ์นมกับจำนวนปศุสัตว์เพิ่มเข้าไปอีก สมการนั้นอธิบายดัชนีได้ถึง 99% ตลอดช่วงสิบปีที่ทดสอบ
Leinweber ทำเรื่องนี้ขึ้นมาเพื่อล้อเลียนโดยเฉพาะ · เขาเรียกมันตรง ๆ ว่าเป็นเรื่องไร้สาระ และตั้งชื่องานว่า Stupid Data Miner Tricks · แต่ประเด็นที่เขาต้องการชี้คือเรื่องจริงจังมาก — ถ้าคุณค้นหานานพอ คุณจะเจอความสัมพันธ์ที่สวยงามเสมอ แม้มันจะไม่มีความหมายอะไรเลย
และนี่คือสิ่งที่เกิดขึ้นกับระบบเทรดที่ถูกจูนมากเกินไป
จำข้อสอบเก่า ไม่ใช่เข้าใจวิชา
Overfitting คือการที่ระบบเรียนรู้รายละเอียดเฉพาะของข้อมูลชุดที่ใช้พัฒนา แทนที่จะเรียนรู้หลักการที่ใช้ได้ทั่วไป
เทียบกับนักเรียนสองคน คนแรกท่องข้อสอบเก่าทุกข้อจนจำคำตอบได้หมด ส่วนคนที่สองเข้าใจวิธีคิด · ถ้าออกข้อสอบชุดเดิม คนแรกได้คะแนนเต็ม · แต่พอเปลี่ยนโจทย์ คนแรกทำไม่ได้เลย ขณะที่คนที่สองยังทำได้
ระบบเทรดที่จูนจนเข้ารูปอดีตก็เหมือนนักเรียนคนแรก · มันไม่ได้จับพฤติกรรมของตลาด แต่จับลำดับเหตุการณ์เฉพาะที่บังเอิญเกิดในข้อมูลชุดนั้น ซึ่งจะไม่เกิดซ้ำแบบเดิมอีก
ยิ่งลองเยอะ ยิ่งเจอของปลอมที่ดูดี
ประเด็นที่คนมองข้ามมากที่สุดคือ "ผลลัพธ์ที่ดี" ต้องถูกตัดสินพร้อมกับจำนวนครั้งที่ลอง
คณิตศาสตร์ตรงนี้ชัดมาก · Bailey และ López de Prado แสดงไว้ว่าค่าสูงสุดของผลงานที่คาดว่าจะเจอโตขึ้นตามจำนวนครั้งที่ทดลอง ตามรากที่สองของลอการิทึม — พูดง่าย ๆ คือยิ่งลองเยอะ ตัวเลขที่ดีที่สุดในกองก็ยิ่งสวยขึ้นเอง ถึงแม้ทุกสูตรจะไร้ค่าเท่ากันหมด
ตัวอย่างจากงานเดียวกันเห็นภาพชัดที่สุด
ระบบที่ให้ผลตอบแทนต่อความเสี่ยงเท่ากับ 2.5 บนข้อมูล 5 ปี ซึ่งเป็นตัวเลขที่ถือว่าดีมาก · ถ้าเจอหลังจากลองมา 46 สูตร จะผ่านเกณฑ์ความเชื่อมั่น 95% · แต่ถ้าเจอหลังลองมา 88 สูตร ความเชื่อมั่นเหลือราว 90% ซึ่งตกเกณฑ์
ผลงานตัวเดียวกัน ตัวเลขเดียวกัน แต่คำตอบว่าเชื่อได้หรือไม่กลับต่างกัน เพราะสิ่งที่เปลี่ยนคือจำนวนครั้งที่ค้นก่อนจะเจอมัน
นี่คือเหตุผลที่การนับว่าตัวเองลองไปกี่แบบแล้วเป็นข้อมูลสำคัญพอ ๆ กับผลลัพธ์เอง · คนที่จูนไปเป็นร้อยรอบแล้วหยิบอันที่ดีที่สุดมาใช้ กำลังถือตัวเลขที่แทบไม่มีความหมาย
สัญญาณว่าระบบถูกจูนเกินไปแล้ว
วิธีตรวจที่ดีที่สุดไม่ต้องใช้คณิตศาสตร์ชั้นสูง แค่ขยับค่าพารามิเตอร์ไปมาแล้วดูว่าผลเปลี่ยนยังไง
ถ้าเปลี่ยนเส้นค่าเฉลี่ยจาก 20 เป็น 19 หรือ 21 แล้วผลตกฮวบ นั่นคือยอดแหลม · แปลว่าตัวเลข 20 ไม่ได้พิเศษอะไร มันแค่บังเอิญเข้ากับข้อมูลชุดนี้พอดี
ระบบที่จับอะไรได้จริงจะให้ที่ราบ — ค่าตั้งแต่ 18 ถึง 24 ใช้ได้ใกล้เคียงกันหมด · และควรเลือกค่ากลาง ๆ ของที่ราบ ไม่ใช่ค่าที่ให้ตัวเลขสวยที่สุด เพราะค่ากลางมีที่ให้พลาดได้มากกว่า
สัญญาณอื่นที่ควรระวังคือ เงื่อนไขเยอะผิดปกติ · ระบบที่มีกฎสิบกว่าข้อซ้อนกันมักเกิดจากการเติมเงื่อนไขทีละข้อเพื่อกำจัดไม้ที่แพ้ในอดีต ซึ่งเป็นการจูนที่ปลอมตัวมาในรูปของความรอบคอบ
ยิ่งปรับมาก ยิ่งแย่ ไม่ใช่แค่เสียเปล่า
สิ่งที่คนส่วนใหญ่เข้าใจผิดคือคิดว่าการจูนมากเกินไปแค่ทำให้ตัวเลขที่เห็นเกินจริง แต่ผลงานจริงคงเท่าเดิม
ความจริงแย่กว่านั้น · งานของ Bailey, Borwein, López de Prado และ Zhu (2014) ชี้ว่าเมื่อข้อมูลราคามีความต่อเนื่องในตัว การจูนจะทำให้ผลนอกกลุ่มตัวอย่างแย่ลงจริง ๆ ไม่ใช่แค่กลับไปเป็นศูนย์
เหตุผลคือระบบที่ถูกจูนจนเข้ารูปช่วงหนึ่งของตลาดพอดี มักกลายเป็นระบบที่วางเดิมพันสวนทางกับช่วงถัดไป โดยอัตโนมัติ · การจูนหนัก ๆ จึงไม่ใช่แค่เสียเวลา แต่สร้างระบบที่แพ้เป็นระบบ
วิธีคุมไม่ให้จูนเกิน
กฎที่ได้ผลที่สุดคือข้อแรก — จดไว้ว่าลองไปกี่แบบแล้ว · แค่การรู้ตัวเลขนี้ก็เปลี่ยนวิธีมองผลลัพธ์ไปทั้งหมด
ข้อที่สองช่วยตัดปัญหาตั้งแต่ต้นทาง · ระบบที่มีค่าให้ปรับสองสามตัวจูนเกินได้ยากกว่าระบบที่มีสิบตัว · และเงื่อนไขทุกข้อควรอธิบายได้ว่าใส่มาทำไมในเชิงพฤติกรรมตลาด ไม่ใช่เพราะมันทำให้ตัวเลขดีขึ้น
ข้อสุดท้ายคือการทดสอบแบบเดินหน้า — จูนบนข้อมูลช่วงแรก ทดสอบบนช่วงถัดไปที่ไม่เคยเห็น แล้วเลื่อนหน้าต่างไปเรื่อย ๆ · วิธีนี้ใกล้เคียงการใช้งานจริงมากที่สุด เพราะในชีวิตจริงเราก็มีแต่ข้อมูลอดีตให้ตัดสินใจกับอนาคตเสมอ
สิ่งที่ต้องจำ
- ค้นหานานพอย่อมเจอความสัมพันธ์ที่สวยงามเสมอ — Leinweber เคยใช้ยอดผลิตเนยในบังกลาเทศอธิบาย S&P 500 ได้ถึง 99%
- ✅ ผลลัพธ์ต้องตัดสินพร้อมจำนวนครั้งที่ลอง — ผลงานเดียวกันที่ลองมา 46 แบบผ่านเกณฑ์ 95% แต่ถ้าลองมา 88 แบบเหลือราว 90% ตกเกณฑ์
- ยอดแหลมคือสัญญาณอันตราย — ดีเฉพาะค่าเดียว ขยับนิดเดียวพัง แปลว่าจูนเข้ากับอดีต ไม่ได้จับอะไรจริง
- ✅ เลือกค่ากลางของที่ราบ ไม่ใช่ค่าที่ให้ตัวเลขสูงสุด · ที่ราบมีที่ให้พลาดได้มากกว่า
- เงื่อนไขเยอะผิดปกติคือการจูนที่ปลอมตัวมา — กฎทุกข้อต้องอธิบายได้ว่าใส่มาทำไม
- ✅ จูนเกินไม่ได้แค่ทำให้ตัวเลขเกินจริง แต่ทำให้ผลจริงแย่ลง (Bailey และคณะ 2014)
- ทดสอบแบบเดินหน้า — จูนช่วงเก่า ทดสอบช่วงถัดไปที่ไม่เคยเห็น แล้วเลื่อนหน้าต่างไปทั้งชุด
คำเตือน: บทความนี้จัดทำขึ้นเพื่อให้ความรู้เรื่องกับดักในการพัฒนาระบบเทรดเท่านั้น ไม่ใช่คำแนะนำการลงทุนหรือการชี้นำให้ซื้อขายสินทรัพย์ใด ตัวเลขจากงานวิจัยที่อ้างถึงเป็นผลการศึกษาในบริบทที่ระบุไว้ ไม่ได้แปลว่าจะใช้ได้เหมือนกันในทุกกรณี ผลการทดสอบย้อนหลังไม่ว่าจะดีเพียงใดก็ไม่รับประกันผลในอนาคต การซื้อขายสินทรัพย์ทางการเงินมีความเสี่ยงที่จะสูญเสียเงินลงทุน ผู้อ่านควรศึกษาข้อมูลและประเมินความเสี่ยงด้วยตนเองก่อนตัดสินใจ