เรียนรู้ › EA และเทรดอัตโนมัติ
ทำไมผลรันจริงมักต่ำกว่า Backtest และควรเผื่อไว้เท่าไร
Backtest ที่สวยไม่ได้แปลว่ารันจริงจะได้เท่านั้น ดูสาเหตุหลัก ทั้งคุณภาพข้อมูล tick, spread ที่กว้างขึ้นบางช่วง, slippage และการเลือกค่าที่ดีที่สุดจากหลายร้อยแบบ
- Backtest คือการจำลอง ผลขึ้นกับคุณภาพข้อมูลที่ใช้ทดสอบมาก
- ระบบเดียวกัน ทดสอบด้วย tick จำลองกับ tick จริง ผลต่างกันได้หลายเท่า
- slippage และ spread ที่กว้างขึ้นช่วงผันผวน มักไม่อยู่ใน Backtest ครบ
- เลือกค่าที่ดีที่สุดจากหลายร้อยแบบ ตัวเลขที่ได้มักสวยเกินจริง
- วัดเป็นกำไรต่อไม้ แล้วเทียบกับผลรันจริงทีละไม้ ดีกว่าดูกำไรรวม
Backtest หรือการทดสอบย้อนหลัง คือการให้ EA เทรดบนข้อมูลราคาในอดีต เพื่อดูว่ากติกานั้นจะได้ผลอย่างไร มันเป็นเครื่องมือที่ดีที่สุดที่เรามีสำหรับคัดกติกาที่ไม่เวิร์กออก แต่ตัวเลขที่ได้ไม่ใช่ผลที่จะได้ตอนรันจริง และส่วนใหญ่ผลจริงจะต่ำกว่า บทนี้ไล่สาเหตุหลักทีละข้อ พร้อมตัวอย่างจากการทดสอบทองคำของเราเอง
1. คุณภาพข้อมูล tick
ใน MT5 Strategy Tester (เครื่องมือทดสอบย้อนหลังของ MT5) เลือกได้ว่าจะจำลองราคาแบบไหน เช่น
- Every tick based on real ticks ใช้ tick จริงที่โบรกบันทึกไว้
- Every tick สร้าง tick ขึ้นเองจากข้อมูลแท่งเทียน
- 1 minute OHLC ใช้แค่ราคาเปิด สูงสุด ต่ำสุด ปิด ของแท่ง 1 นาที
tick คือการเปลี่ยนแปลงราคาแต่ละครั้ง ถ้าใช้ tick ที่สร้างขึ้นเอง เครื่องทดสอบต้องเดาว่าภายในแท่งหนึ่ง ราคาไปแตะจุดสูงสุดก่อนหรือต่ำสุดก่อน ระบบที่ Stop loss แคบหรือลากจุดตัดขาดทุนตามใกล้ ๆ จะได้รับผลจากการเดานี้มากที่สุด
ตัวอย่างจากการทดสอบของเรา เป็นระบบ breakout บนทองคำกราฟ M1 ตั้งค่าเดียวกันทุกอย่าง ช่วงเดียวกัน (1 ม.ค. – 1 ก.ย. 2026) ขนาด 0.01 lot เปลี่ยนแค่โหมดข้อมูล
| โหมดข้อมูล | กำไรสุทธิ | จำนวนไม้ | Profit factor |
|---|---|---|---|
| tick จำลอง | +3,460.68 USD | 952 | 4.54 |
| tick จริง | +915.30 USD | 960 | 1.83 |
3,460.68 ÷ 915.30 ≈ 3.78 แปลว่าโหมดจำลองให้กำไรสูงกว่าเกือบ 4 เท่า ทั้งที่กติกาเหมือนกันเป๊ะ (Profit factor คือกำไรรวมของไม้ชนะหารด้วยขาดทุนรวมของไม้แพ้)
อีกเรื่องที่ต้องเช็คคือ เซิร์ฟเวอร์ที่ใช้ทดสอบมี tick จริงย้อนไปถึงไหน ในเซิร์ฟเวอร์ที่เราใช้ tick จริงเริ่มตั้งแต่ปี 2026 ถ้าสั่งทดสอบปีก่อนหน้า เครื่องจะสร้าง tick ให้เองโดยอัตโนมัติ ให้ดูข้อความในแท็บ Journal ของ Strategy Tester ว่าใช้ tick จริงตั้งแต่วันไหน
ผลทั้งหมดในบทนี้เป็นผลทดสอบย้อนหลัง ไม่ได้บอกผลในอนาคต และไม่ใช่ผลตอบแทนที่ควรคาดหวัง
2. spread ที่กว้างขึ้นบางช่วง
spread คือส่วนต่างราคาซื้อกับราคาขาย ในโหมด 1 minute OHLC เครื่องทดสอบใช้ spread ที่บันทึกไว้ของแท่งนั้น ซึ่งไม่เห็นช่วงที่ spread กระโดดขึ้นสั้น ๆ ระหว่างแท่ง
ในการทดสอบอีกชุดของเรา เข้าออเดอร์ทองคำวันละไม้ Stop loss 5 ดอลลาร์ ขนาด 0.10 lot ด้วยข้อมูล tick จริงปี 2026 พบว่าเข้าเวลา 07:00 น. ไทย (ตรงกับช่วงเปลี่ยนวันของเซิร์ฟเวอร์) แย่กว่าเข้าเวลา 06:30 น. ทั้งฝั่งที่ Buy ทุกวันและ Sell ทุกวัน ตัวอย่างที่เป้ากำไร 6 เท่าของ SL
| กติกา | เข้า 06:30 | เข้า 07:00 |
|---|---|---|
| Buy ทุกวัน | −150 USD | −962 USD |
| Sell ทุกวัน | +751 USD | −2,364 USD |
ทั้งสองฝั่งแย่ลงพร้อมกัน แปลว่าไม่ใช่เรื่องทิศทาง สิ่งที่เราสันนิษฐานคือ spread ที่กว้างขึ้นทันทีหลังเปลี่ยนวันไปแตะ Stop loss ที่วางไว้แคบ ซึ่งข้อมูลแบบ 1 minute OHLC มองไม่เห็นเลย
3. slippage
slippage คือการที่ออเดอร์ถูกจับคู่ที่ราคาต่างจากที่สั่งไว้ มักเกิดตอนราคาวิ่งเร็วหรือช่วงข่าว และมักออกมาแย่กว่าที่ตั้งใจ
Backtest ส่วนใหญ่ถือว่าได้ราคาตามข้อมูลเสมอ ของจริงไม่เป็นอย่างนั้น ระบบที่เข้าออเดอร์ด้วย stop order (คำสั่งรอเข้าเมื่อราคาวิ่งทะลุจุดที่ตั้ง) ตอนราคากระชาก จะเจอ slippage มากกว่าระบบที่เข้าตอนราคานิ่ง
วิธีคิดที่ใช้ได้จริง คือคิดเป็นเงินต่อไม้ ไม่ใช่เป็นเปอร์เซ็นต์รวม ตัวอย่างสมมติ
- Backtest ได้เฉลี่ย 0.80 USD ต่อไม้
- ถ้า slippage จริงเฉลี่ย 0.30 USD ต่อไม้
- เหลือ 0.80 − 0.30 = 0.50 USD ต่อไม้ คือเหลือ 0.50 ÷ 0.80 = 62.5% ของตัวเลขเดิม
ระบบที่ได้ 5 USD ต่อไม้ เจอ slippage 0.30 เท่ากัน ยังเหลือ 4.70 ÷ 5 = 94% ระบบที่ได้ต่อไม้น้อยจึงเปราะบางกว่ามาก
ก่อนเชื่อตัวเลข Backtest ให้หารกำไรด้วยจำนวนไม้ ถ้ากำไรต่อไม้ใกล้กับต้นทุนต่อไม้ ผลรันจริงมีโอกาสหายไปเกือบหมด
4. เลือกค่าที่ดีที่สุดจากหลายร้อยแบบ
เวลาปรับค่า EA (optimization) เราลองหลายร้อยชุดแล้วเลือกชุดที่ได้ผลดีที่สุด ปัญหาคือชุดที่ดีที่สุดบนข้อมูลชุดนั้น มักดีส่วนหนึ่งเพราะโชค เมื่อเจอข้อมูลใหม่ ส่วนที่เป็นโชคจะหายไป อาการนี้เรียกว่า overfitting หรือการปรับจนพอดีกับอดีตเกินไป
ตัวอย่างจากงานวิจัยของเรา กติกาเข้าที่ระดับฟิโบ 61.8 บนทองคำ ถูกคัดและจูนบนข้อมูลปี 2026 ได้ผลบวกในปีนั้น แต่พอนำไปทดสอบปี 2025 ซึ่งไม่ได้ใช้ตอนคัด ได้ −920 USD Profit factor 0.86 (ขนาด 0.10 lot ปี 2025 เป็น tick จำลอง คุณภาพข้อมูลจึงมีส่วนด้วย แต่ผลบวกของปีที่ใช้คัดก็ไม่ได้ตามไปด้วย)
อีกชุดหนึ่ง เราลองกติกาเลือกทิศวันละไม้ 7 แบบ เทียบกับกติกาที่ไม่มีเหตุผลเลยอย่าง Buy ทุกวันและ Sell ทุกวัน ทดสอบ 5 ปี ปีละราว 180–260 ไม้ แบบที่ดีที่สุดได้ผลรวม 5 ปีใกล้เคียงกับ Buy ทุกวันเมื่อเข้าตอน 07:00 และไม่มีแบบไหนชนะทั้งสองกติกาเทียบได้เกิน 2 ใน 5 ปี ผลรวมทุกแบบยังอยู่ในช่วงที่เกิดได้จากความบังเอิญ ถ้าดูแค่ตารางผลแล้วหยิบอันดับหนึ่ง ก็จะได้กติกาที่ไม่มีอะไรนอกจากโชค
วิธีป้องกันพื้นฐาน
- แบ่งข้อมูลไว้ส่วนหนึ่ง ไม่ใช้ตอนจูน แล้วทดสอบกับส่วนนั้นทีหลัง
- เทียบกับกติกาที่ไม่มีเหตุผลเลย เช่น Buy ทุกวัน ถ้าไม่ชนะชัดเจน ก็ยังไม่มีหลักฐาน
- ดูว่าค่าใกล้ ๆ กับค่าที่เลือกก็ให้ผลดีด้วย ไม่ใช่ดีอยู่ค่าเดียว
5. คนที่รันไม่เหมือนเครื่องที่ทดสอบ
Backtest ไม่เคยปิด EA ตอนขาดทุนติดกัน และไม่เคยเปลี่ยนค่ากลางทาง ผลจริงจึงขึ้นกับว่าเรารันตามแผนได้แค่ไหนด้วย
ควรเผื่อไว้เท่าไร
ไม่มีตัวเลขเดียวที่ใช้ได้ทุกระบบ ในการวางแผนของเรา เราตั้งสมมติฐานไว้ว่าผลรันจริงอาจเหลือราว 40–60% ของ Backtest สำหรับระบบที่ได้ต่อไม้น้อย ตัวเลขนี้เป็นการประเมิน ไม่ใช่ผลที่วัดได้ และควรแทนที่ด้วยตัวเลขจริงของระบบตัวเองให้เร็วที่สุด
ขั้นตอนที่แนะนำ
- ทดสอบด้วย tick จริง และเช็คใน Journal ว่าช่วงที่ทดสอบเป็น tick จริงทั้งหมด
- ดูกำไรต่อไม้ เทียบกับ spread และค่าคอมมิชชันต่อไม้
- ทดสอบกับช่วงข้อมูลที่ไม่ได้ใช้จูน
- รันบนบัญชีทดลองหรือบัญชีเล็กก่อน แล้วเทียบราคาเข้าจริงกับราคาที่ระบบตั้งใจไว้ทีละไม้
บัญชีเล็กช่วงแรกไม่ได้มีไว้หากำไร มันมีไว้วัดว่า Backtest พลาดไปเท่าไรสำหรับระบบของเรา
ข้อผิดพลาดที่เจอบ่อย
- เชื่อผลหลายปีโดยไม่เช็คว่าปีไหนใช้ tick จริง
- ตัดสินระบบจากผลรันจริงไม่กี่สัปดาห์ ทั้งดีและแย่
คำถามที่พบบ่อย
ควรหักผล Backtest ไว้กี่เปอร์เซ็นต์
ไม่มีตัวเลขเดียวที่ใช้ได้ทุกระบบ ระบบที่ได้กำไรต่อไม้น้อยและเข้าออเดอร์ตอนราคากระชาก จะเสียมากกว่าระบบที่ได้ต่อไม้มาก วิธีที่ดีที่สุดคือรันบัญชีเล็กหรือบัญชีทดลอง แล้ววัดส่วนต่างจริงของระบบตัวเอง
ทดสอบด้วยโหมด Every tick based on real ticks ก็พอแล้วใช่ไหม
ดีกว่าโหมดจำลองมาก แต่ยังไม่มี slippage จากการส่งคำสั่งจริง และต้องเช็คว่าช่วงเวลาที่ทดสอบมีข้อมูล tick จริงครบ บางเซิร์ฟเวอร์มี tick จริงเฉพาะช่วงหลัง ช่วงก่อนหน้าจะถูกสร้างขึ้นเอง
เนื้อหานี้เป็นความรู้ทั่วไป ไม่ใช่คำแนะนำการลงทุน การเทรดมีความเสี่ยง อาจสูญเสียเงินลงทุนทั้งหมด