เรียนรู้ › EA และเทรดอัตโนมัติ
Overfitting คืออะไร เลือกค่า EA แบบที่ราบ ไม่ใช่ยอดแหลม
จูนค่า EA จนผลย้อนหลังสวยอาจเป็นแค่โชค ดูวิธีเลือกค่าที่ค่าข้าง ๆ ก็ใช้ได้ แยกปีค้นหากับปียืนยัน และเทียบกับการเพิ่ม lot เฉย ๆ พร้อมตัวเลขทดสอบบนทองคำ
- ค่าตั้งที่ดีคือค่าที่ขยับไปข้าง ๆ แล้วผลยังใกล้เคียงกัน ไม่ใช่ค่าที่ดีที่สุดจุดเดียว
- ยิ่งลองหลายชุดค่า ยิ่งมีชุดที่ดูดีเพราะโชคมากขึ้น
- เลือกค่าจากปีเก่า แล้วยืนยันกับปีใหม่ที่ไม่ได้ใช้เลือก
- ตัวกรองที่ดัน Profit factor ขึ้น อาจทำกำไรหายเกือบหมด
- การปรับทุกอย่างต้องชนะการเพิ่ม lot เฉย ๆ ที่ Drawdown เท่ากัน
Overfitting (จูนค่าจนพอดีกับอดีตเกินไป) คือการปรับค่าตั้งของ EA จนผลทดสอบย้อนหลังสวย แต่ความสวยนั้นมาจากการจับรายละเอียดบังเอิญของข้อมูลชุดที่ใช้ปรับ พอเจอข้อมูลใหม่ผลก็หายไป วิธีป้องกันที่ใช้ได้จริงมีสองข้อ เลือกค่าที่ค่าข้าง ๆ ก็ให้ผลดีด้วย (ที่ราบ) แทนค่าที่ดีอยู่จุดเดียว (ยอดแหลม) และเลือกค่าจากช่วงหนึ่ง แล้วตรวจกับอีกช่วงที่ไม่ได้ใช้เลือก
Overfitting เกิดจากอะไร
EA หนึ่งตัวมี parameter (ค่าตั้ง) หลายตัว เช่น ระดับที่เข้า ระยะ Stop loss ระยะทำกำไร ตัวกรอง ทุกครั้งที่ลองค่าใหม่แล้วเก็บค่าที่ผลดีกว่า เรากำลังให้ข้อมูลในอดีตเลือกค่าให้
ข้อมูลในอดีตมีสองส่วนปนกัน คือพฤติกรรมราคาที่มีแนวโน้มเกิดซ้ำ กับความบังเอิญที่ไม่เกิดซ้ำ เช่น ข่าวใหญ่วันหนึ่งที่ทำให้ไม้ชุดหนึ่งกำไรก้อนโต ปรับค่ามากพอเมื่อไร ค่าจะเริ่มจับส่วนที่สอง ผล Backtest (ทดสอบย้อนหลัง) ดีขึ้นเรื่อย ๆ โดยฝีมือจริงไม่ได้ดีขึ้นเลย
ยิ่งลองหลายชุด ยิ่งเจอผู้ชนะปลอม
ลองคิดเป็นตัวเลข สมมติเราลองชุดค่า 40 ชุด และทุกชุดไม่มีความได้เปรียบจริงเลย แต่ละชุดมีโอกาส 5% ที่ผลออกมาดูดีเพราะโชคล้วน ๆ
- จำนวนชุดที่คาดว่าจะดูดีเพราะโชค = 40 × 5% = 2 ชุด
- โอกาสที่ทั้ง 40 ชุดไม่มีชุดไหนโชคดีเลย = 0.95 ยกกำลัง 40 ≈ 0.129 หรือ 12.9%
- โอกาสที่มีชุดที่โชคดีอย่างน้อย 1 ชุด = 100% − 12.9% ≈ 87%
ตรวจกลับ 2 ชุดจาก 40 ชุด = 2 ÷ 40 = 5% ตรงกับโอกาสที่ตั้งไว้
จำนวนชุดโตเร็วกว่าที่คิด ค่าตั้ง 3 ตัว ตัวละ 5 ค่า = 5 × 5 × 5 = 125 ชุด คาดว่าจะมีผู้ชนะปลอม 125 × 5% ≈ 6 ชุด
ยอดแหลมกับที่ราบ
วิธีแยกของจริงกับของบังเอิญที่ง่ายที่สุดคือดูค่าข้าง ๆ ถ้าระบบได้เปรียบจริงที่ระดับ 61.8 ระดับ 58 หรือ 65 ก็ควรได้ผลใกล้กัน ถ้าดีแค่จุดเดียว ขยับนิดเดียวแล้วพัง จุดนั้นมักเป็นโชค
ภาพข้างล่างมาจากการทดสอบย้อนหลังของเราสองชุด บนทองคำ (XAUUSD) M1 ข้อมูล tick จริง มกราคมถึงกันยายน 2026 ไม้ละ 0.10 lot ทุน 10,000 ดอลลาร์
- ก. ระบบรับย่อตัวที่ 61.8% ของคลื่น ZigZag ใหญ่ก่อนหน้า วัดด้วย กำไรสุทธิ ÷ Drawdown (Drawdown คือทุนที่ลดลงจากจุดสูงสุด ค่านี้ยิ่งสูงยิ่งได้กำไรมากต่อความเจ็บที่ต้องทน)
- ข. ระบบเข้าสวนเมื่อราคาวิ่งเลยกรอบคลื่นก่อนหน้าไปถึงระดับต่าง ๆ วัดด้วยกำไรสุทธิ
ช่อง ก. คือที่ราบ จุดเข้า 58, 61.8 และ 65 ได้ 3.42–3.86 ใกล้กันหมด มีแค่ 55 ที่ตกเหลือ 1.73 ค่าที่เราใช้ (61.8) อยู่กลางที่ราบ ตลาดเปลี่ยนนิดหน่อยก็ยังมีที่ว่างรองรับ
ช่อง ข. น่ากังวลกว่า 127.2 กำไร 3,526 ดอลลาร์ แต่ 120 เท่าทุน และ 144 ขาดทุน 1,895 ดอลลาร์ รอบนั้นเราลอง 6 ระดับ × 2 แบบจุดทำกำไร = 12 ชุด คาดว่าจะมีผู้ชนะปลอม 12 × 5% = 0.6 ชุด จุดบวกที่โผล่มาเดี่ยว ๆ จึงยังเชื่อไม่ได้
เราจึงขยับค่าอื่นรอบ 127.2 ทั้ง Stop loss จุดทำกำไร ระดับข้างเคียง และช่วงเวลา รวมตัวตั้ง 10 แบบ บวก 8 ขาดทุน 2 แล้วรันปีอื่นด้วยข้อมูลราย 1 นาที ได้ 2025 +2,914 และ 2024 +1,641 ดอลลาร์ ผ่านเกณฑ์ แต่อ่อนกว่าช่อง ก. ชัดเจน และข้อมูลราย 1 นาทีมักให้ผลดีเกินจริง ปี 2026 ข้อมูลแบบนี้ให้ +5,366 เทียบกับ tick จริง +3,526 สูงกว่า 1.52 เท่า ผลทดสอบย้อนหลังไม่ได้บอกผลในอนาคต และไม่ใช่ผลตอบแทนที่ควรคาดหวัง
ค่าที่ดีที่สุดในตารางไม่ใช่ค่าที่ควรเลือกเสมอไป ค่าที่ควรเลือกคือค่าที่อยู่กลางกลุ่มค่าที่ดีใกล้ ๆ กัน
กับดัก in-sample: เลือกจากปีไหน ห้ามยืนยันกับปีนั้น
In-sample คือข้อมูลช่วงที่ใช้เลือกค่า Out-of-sample คือช่วงที่ไม่ได้แตะตอนเลือก ผล in-sample ดีเกินจริงเสมอ สมุดวิจัยของเราจึงเขียนกติกาไว้ตั้งแต่ต้น ค้นหาในปี 2022–2024 ยืนยันในปี 2025–2026 ห้ามเลือกสูตรจากปียืนยัน
แต่เราเองก็หลุดกติกานี้ ปี 2026 มี tick จริงและตลาดผันผวน ไอเดียใหม่จึงถูกลองกับปี 2026 ก่อนแทบทุกครั้ง ผลคือ
- ระบบรวมหลายชุดรับย่อตัวบนคลื่น ZigZag หลายขนาด ทุกค่าเลือกจากปี 2026 ได้ +43,963 ดอลลาร์ Profit factor 1.47 พอรันค่าเดิมกับปี 2025 (tick จำลอง) ได้ −694 ดอลลาร์ และ Drawdown 61.2% เกือบหมดพอร์ต ปี 2024 −197 ดอลลาร์
- ระบบตามคลื่น ZigZag ใหญ่ เข้าจังหวะด้วยคลื่นเล็ก (tick จำลองทุกปี lot 0.10 ทุน 100,000 ดอลลาร์) ปี 2026 กำไร +22,810 ดอลลาร์ แต่ปี 2022–2025 รวม 2,189 ไม้ ชนะ 48.61% ขณะที่ต้องชนะ 51.88% จึงจะเท่าทุน ห่างเกินกว่าจะเป็นแค่ดวงไม่ดี (บทอัตราชนะกับจุดคุ้มทุน)
ผลทั้งหมดเป็นผลทดสอบย้อนหลัง ผลในอดีตไม่ได้บอกผลในอนาคต และไม่ใช่ผลตอบแทนที่ควรคาดหวัง
บทเรียนคือ ปีล่าสุดใช้หาไอเดีย และเชื่อได้เมื่อมันบอกว่า “ตัวนี้ตาย” แต่จะใช้ค่าไหนต้องตัดสินจากหลายปี (ทำไมแต่ละช่วงต่างกันมาก อ่านในบทตลาดเปลี่ยนนิสัย)
ตัวกรองที่ดีแค่ปีเดียว
ตัวกรอง (filter) คือเงื่อนไขเพิ่มที่ตัดบางไม้ทิ้ง เป็นที่ที่ overfitting ซ่อนเก่งที่สุด เพราะแทบทุกตัวกรองทำให้ปีที่ใช้ปรับดูดีขึ้นได้
เราใส่ตัวกรองความผันผวน (ATR ชั่วโมงสูงกว่าค่าเฉลี่ย 20 วัน) และแท่งยืนยัน M15 ให้ระบบในช่อง ก. ปี 2026 Profit factor (กำไรรวมหารขาดทุนรวม) ขึ้นจาก 1.44 เป็น 4.02 ดูเหมือนเจอของดี จนรันปีอื่น
| ปี | ไม่กรอง | กรอง ATR + แท่งยืนยัน M15 |
|---|---|---|
| 2026 (tick จริง) | +5,320 | +3,412 |
| 2025 | +2,091 | +465 |
| 2024 | +1,178 | −845 |
| 2023 | +221 | −87 |
ทองคำ M1 lot 0.10 ทุน 10,000 ดอลลาร์ ปี 2023–2025 ใช้ข้อมูลราย 1 นาที หน่วยดอลลาร์ ผลทดสอบย้อนหลัง ไม่ได้บอกผลในอนาคต
สามปีที่ไม่ได้ใช้ปรับ ไม่กรองรวม 2,091 + 1,178 + 221 = +3,490 ดอลลาร์ กรองแล้ว 465 − 845 − 87 = −467 ดอลลาร์ ตัวกรองนี้จูนกับปี 2026 ล้วน ๆ เราจึงใช้แบบไม่กรอง
Profit factor สูงขึ้น ไม่ได้แปลว่าดีขึ้น
ตัวกรองที่เข้มขึ้นมักดัน Profit factor ขึ้น เพราะตัดจนเหลือแต่ไม้ที่บังเอิญดีในข้อมูลชุดนั้น ตัวอย่างจากระบบรับย่อตัวที่ระดับ 50% ของคลื่น ZigZag ขนาดกลาง (ทองคำ M1 tick จริง ม.ค.–ก.ย. 2026 lot 0.10 ทุน 10,000 ดอลลาร์)
| ไม่กรอง | กรองคลื่นเล็กซ้อน | |
|---|---|---|
| Profit factor | 1.48 | 2.14 |
| กำไรสุทธิ | +10,927 | +1,492 |
| จำนวนไม้ | 406 | 27 |
Profit factor ขึ้น 45% แต่กำไรเหลือ 1,492 ÷ 10,927 = 13.7% ของเดิม และไม้เหลือ 27 ÷ 406 = 6.7% ตัวอย่าง 27 ไม้น้อยเกินจะบอกอะไรได้ ผลทดสอบย้อนหลัง ไม่ได้บอกผลในอนาคต
ต้องชนะ “เพิ่ม lot เฉย ๆ” ที่ Drawdown เท่ากัน
การเพิ่ม lot เป็นการปรับที่ถูกที่สุด ไม่เพิ่มไม้ ไม่จ่าย spread เพิ่ม ไม่ซับซ้อนขึ้น ในการทดสอบของเรา กำไรและ Drawdown ที่เป็นเงินขยายตาม lot แทบเป็นเส้นตรง การปรับที่ทำให้กำไรและ Drawdown เพิ่มพร้อมกัน จึงต้องชนะการเพิ่ม lot ให้ Drawdown เท่ากันก่อน
ตัวอย่างจริง ระบบรับย่อตัว 61.8% อีกตัวหนึ่ง ทองคำ M1 tick จริง ปี 2026 lot 0.01 ทุน 3,000 ดอลลาร์ เราลองเปลี่ยนจาก lot คงที่เป็น lot ตามความเสี่ยง 12 ดอลลาร์ต่อไม้
- lot คงที่: กำไร +2,532 Drawdown 265 ดอลลาร์
- lot ตามความเสี่ยง: กำไร +2,817 Drawdown 375 ดอลลาร์
กำไรเพิ่ม 285 ดอลลาร์ ดูเหมือนดีขึ้น ลองคิดว่าถ้าแค่ขยาย lot คงที่ให้ Drawdown เท่ากัน
- ตัวคูณ lot = 375 ÷ 265 = 1.415 เท่า
- กำไรที่คาดว่าจะได้ = 2,532 × 1.415 ≈ 3,583 ดอลลาร์
- เทียบกัน 3,583 กับ 2,817 การขยาย lot เฉย ๆ ได้มากกว่า 766 ดอลลาร์ ที่ Drawdown เท่ากัน
ตรวจกลับ 265 × 1.415 ≈ 375 ดอลลาร์ ตรงกับ Drawdown ของอีกแบบ ปี 2025 และ 2024 (ข้อมูลราย 1 นาที) ก็ออกทางเดียวกัน วิธีนี้จึงไม่ได้เพิ่มฝีมือ แค่เพิ่มขนาดแบบไม่คุ้ม ผลทดสอบย้อนหลัง ไม่ได้บอกผลในอนาคต
การปรับที่ทำให้กำไรเพิ่มแต่ Drawdown เพิ่มเร็วกว่า ไม่ใช่การปรับที่ดีขึ้น เป็นแค่การเพิ่ม lot ทางอ้อมที่แพงกว่า
ข้อผิดพลาดที่เจอบ่อย
- หยิบแถวบนสุดของตาราง Optimization แถวนั้นมักเป็นชุดที่โชคดีที่สุด ไม่ใช่ชุดที่ดีที่สุด ให้เลือกค่ากลางที่ราบ
- เลือกค่าและยืนยันจากช่วงเดียวกัน ผลสวยเสมอ เพราะคำตอบถูกเลือกมาให้ตรงข้อสอบ แบ่งช่วงไว้ก่อนเริ่ม และรันช่วงยืนยันครั้งเดียว
- ยืนยันด้วยปีที่เลือกมาเอง สองปีที่บังเอิญดีทั้งคู่ก็หลอกได้ ใช้ทุกปีที่มีและดูรายปี
- ลืมดูคุณภาพข้อมูล ข้อมูลราย 1 นาทีกับ tick จริงให้ผลต่างกันได้มาก (บทคุณภาพข้อมูล tick ใน MT5)
- ปรับทุกครั้งที่ขาดทุนติดกัน ขาดทุนติดกันเป็นเรื่องปกติ (บทขาดทุนติดกันเป็นเรื่องปกติ) ไล่จูนตามช่วงล่าสุดคือการ overfit กับข้อมูลชุดล่าสุด
คำถามที่พบบ่อย
ใช้ Optimization ใน MT5 ได้ไหม
ได้ ใช้หาว่าบริเวณไหนของค่าตั้งให้ผลดี แต่อย่าหยิบแถวบนสุดของตาราง ให้ดูว่าค่าข้าง ๆ ดีด้วยไหม แล้วทดสอบค่าที่เลือกกับช่วงเวลาที่ไม่ได้ใช้ optimize ก่อนเชื่อ
ผลปียืนยันแย่กว่าปีที่ใช้เลือก แปลว่าระบบพังไหม
แย่ลงบ้างเป็นเรื่องปกติ เพราะค่าที่เลือกมามักได้โชคของช่วงนั้นติดมาด้วย ที่ต้องระวังคือกลับเป็นขาดทุน หรือ Drawdown กระโดดขึ้นหลายเท่า แปลว่าค่าเหล่านั้นจับแค่ลักษณะเฉพาะของช่วงที่ใช้เลือก
ต้องทดสอบกี่ปีถึงพอ
ไม่มีตัวเลขตายตัว อย่างน้อยต้องมีช่วงที่ไม่ได้ใช้เลือกค่า และควรมีทั้งช่วงที่ตลาดวิ่งแรงกับช่วงที่ตลาดนิ่ง การยืนยันด้วยสองปีที่บังเอิญดีทั้งคู่ก็หลอกเราได้เหมือนกัน
เนื้อหานี้เป็นความรู้ทั่วไป ไม่ใช่คำแนะนำการลงทุน การเทรดมีความเสี่ยง อาจสูญเสียเงินลงทุนทั้งหมด