บทนำสู่การเพิ่มประสิทธิภาพ EA ด้วย Genetic Algorithm บน MT5
สารบัญ
- Genetic Algorithm คืออะไร
- เลือกใช้ Brute Force หรือ GA?
- การตั้งค่าใน Strategy Tester
- วิธีเลือกตัวชี้วัด (Optimization Criterion)
- การรัน Genetic Algorithm Optimization
- ข้อผิดพลาดที่พบบ่อย
- การหลีกเลี่ยง Over-Optimization
- 1. แบ่งช่วงเวลา
- 2. เปรียบเทียบ 10-20 อันดับแรก
- 3. ตรวจสอบ Parameter Sensitivity
- 4. เก็บพารามิเตอร์ที่ไม่ Optimize ไว้
- การใช้ Parallel Optimization
- แนวทาง Optimization สำหรับ EA ที่แจกจ่ายบนเว็บไซต์นี้
- ดาวน์โหลด EA ฟรี
- โบรกเกอร์แนะนำ
บทนำสู่การเพิ่มประสิทธิภาพ EA ด้วย Genetic Algorithm บน MT5
เมื่อต้องการปรับแต่งพารามิเตอร์ของ EA นั้น Strategy Tester ของ MT5 มีโหมดการเพิ่มประสิทธิภาพอยู่ 2 รูปแบบ ได้แก่ Brute Force (ทดสอบทุกชุดค่าผสมอย่างครบถ้วน) และ Genetic Algorithm (GA)
สำหรับการค้นหาชุดค่าผสมที่มีจำนวนมหาศาลให้เสร็จสิ้นในเวลาอันสมเหตุสมผลนั้น Genetic Algorithm คือวิธีมาตรฐาน บทความนี้จะอธิบายหลักการพื้นฐานของการเพิ่มประสิทธิภาพด้วย Genetic Algorithm พร้อมแนะนำจุดสำคัญที่ควรทราบในการใช้งานจริง
Genetic Algorithm คืออะไร
Genetic Algorithm (GA) คือวิธีการเพิ่มประสิทธิภาพที่ได้รับแรงบันดาลใจจากกระบวนการวิวัฒนาการทางชีววิทยา โดยดำเนินการตามขั้นตอนดังนี้
- สร้างชุดพารามิเตอร์สุ่ม (individual) ขึ้นมาหลายชุด
- รัน Backtest กับแต่ละชุด แล้วให้คะแนนตามตัวชี้วัด (PF, Recovery Factor ฯลฯ)
- คัดเลือกชุดที่มีคะแนนสูงสุดเป็น "พ่อแม่" แล้วสร้างรุ่นต่อไปด้วยการ Crossover และ Mutation
- ทำซ้ำกระบวนการนี้ และยิ่งผ่านหลาย Generation มากขึ้น พารามิเตอร์ก็จะยิ่งลู่เข้าสู่ค่าที่มีคะแนนสูงขึ้น
ขณะที่ Brute Force จะ "กวาดทดสอบทุกชุดค่าผสม" นั้น GA จะ "โฟกัสการค้นหาเฉพาะพื้นที่ที่มีแนวโน้มดี" ทำให้ใช้เวลาในการคำนวณน้อยกว่าอย่างเห็นได้ชัด
เลือกใช้ Brute Force หรือ GA?
- พารามิเตอร์น้อย ชุดค่าผสมไม่เกินหลักพัน → ใช้ Brute Force เพื่อครอบคลุมทุกความเป็นไปได้
- พารามิเตอร์มาก ชุดค่าผสมหลักหมื่นขึ้นไป → ใช้ Genetic Algorithm
ตัวอย่างเช่น หากมี 3 พารามิเตอร์ที่แต่ละตัวมี 10 ขั้น จะได้ 1,000 ชุดค่าผสม ซึ่ง Brute Force เพียงพอ แต่หากมี 5 พารามิเตอร์ที่แต่ละตัวมี 20 ขั้น จะได้ถึง 3.2 ล้านชุดค่าผสม และนั่นคือเมื่อ Genetic Algorithm กลายเป็นสิ่งจำเป็น
การตั้งค่าใน Strategy Tester
เพื่อเปิดใช้งานการเพิ่มประสิทธิภาพ ให้ตั้งค่าใน Strategy Tester ดังนี้
- Optimization: เลือก "Fast genetic based algorithm"
- Optimization criterion: เลือกตัวชี้วัด เช่น "Maximum complex criterion", "Custom max", "Maximum recovery factor"
- แท็บ Input parameters: ติ๊กถูกที่พารามิเตอร์ที่ต้องการปรับแต่ง แล้วกำหนดค่าเริ่มต้น ค่าสิ้นสุด และขั้นละเท่าไร
วิธีเลือกตัวชี้วัด (Optimization Criterion)
สิ่งที่กำหนดว่า "อะไรคือผลลัพธ์ที่ดี" ส่งผลโดยตรงต่อผลลัพธ์ที่ได้ ตัวชี้วัดที่นิยมใช้มีดังนี้
- Maximum profit (Equity): เพิ่มกำไรสูงสุด โดยไม่สนใจความเสี่ยง จึงเสี่ยงต่อ Over-Optimization สูง
- Recovery Factor: กำไรสุทธิ ÷ DD สูงสุด เน้นความสมดุล
- Sharpe Ratio: คำนึงถึงความสม่ำเสมอของผลตอบแทน
- Custom max: กำหนดเองในโค้ด EA ได้อย่างอิสระ (เช่น PF × จำนวนเทรด)
การใช้ Recovery Factor หรือ Sharpe Ratio เป็นวิธีที่ช่วยหลีกเลี่ยง Over-Optimization ในขณะที่ยังหาพารามิเตอร์ที่ใช้งานได้จริง
การรัน Genetic Algorithm Optimization
เมื่อเริ่มกระบวนการเพิ่มประสิทธิภาพ ค่าพารามิเตอร์ที่มีคะแนนสูงในแต่ละ Generation จะปรากฏใน แท็บ "Optimization Results" ของ MT5 โดย Genetic Algorithm จะวนซ้ำหลายร้อย Generation โดยอัตโนมัติ และลู่เข้าหาคำตอบที่ดีที่สุด
ข้อผิดพลาดที่พบบ่อย
- ลู่เข้าเร็วเกินไป: อาจเกิดจากช่วงการค้นหาพารามิเตอร์แคบเกินไป
- ไม่ลู่เข้าเลย: ตัวชี้วัดไม่เหมาะสม หรือมี Noise มากเกินไป
- ลู่เข้าหาค่าที่ดูผิดปกติ: ไม่ได้กรองผลลัพธ์ที่มีจำนวนเทรดน้อยเกินไปออก
การกรองผลลัพธ์ที่มีจำนวนเทรดต่ำกว่า 50 ครั้งออกจากฟังก์ชันประเมินผล จะช่วยกำจัดชุดพารามิเตอร์ที่ไม่มีนัยสำคัญทางสถิติออกไปได้
การหลีกเลี่ยง Over-Optimization
ยิ่งรัน Optimization มากขึ้น ก็จะยิ่งได้พารามิเตอร์ที่ "สมบูรณ์แบบในอดีต แต่ใช้ไม่ได้ในอนาคต" ต่อไปนี้คือกฎเชิงปฏิบัติที่ช่วยป้องกัน
1. แบ่งช่วงเวลา
หากมีข้อมูลย้อนหลัง 10 ปี ให้ Optimize บนช่วง 7 ปีแรก แล้วใช้ 3 ปีหลังเป็น Out-of-Sample (OOS) ตรวจสอบ หากผลลัพธ์แย่ลงในช่วง OOS แสดงว่า Over-Fit กับช่วงแรก
2. เปรียบเทียบ 10-20 อันดับแรก
การเลือกเพียงชุดที่ได้คะแนนสูงสุดเพียงชุดเดียวมีความเสี่ยง ให้ตรวจสอบว่า ชุดอันดับต้นๆ อยู่ในพื้นที่ใกล้เคียงกันหรือไม่ หากอยู่ใกล้กัน ให้เลือกพารามิเตอร์ที่อยู่ตรงกลางของกลุ่มนั้น
3. ตรวจสอบ Parameter Sensitivity
ลองขยับพารามิเตอร์ที่เป็นตัวเลือกอยู่ ±10-20% แล้วดูว่าผลลัพธ์พังทลายหรือไม่ หากพังทลาย แสดงว่าชุดนั้น Over-Fit กับ "จุดสูงสุดที่แหลมคม"
4. เก็บพารามิเตอร์ที่ไม่ Optimize ไว้
การคง "ค่าคงที่ที่สมเหตุสมผลตามตรรกะ ไม่ใช่จากการ Optimize" ไว้เสมอ ช่วยลดความเสี่ยงของ Over-Optimization ตัวอย่างเช่น Optimize ช่วง EMA แต่ตรึงค่าคูณ ATR ไว้คงที่
การใช้ Parallel Optimization
MT5 รองรับ Parallel Optimization โดยใช้หลาย CPU Core พร้อมกัน สามารถเพิ่มจำนวน Agent ที่ใช้ได้ใน "Tester" → "Settings" เพื่อลดเวลาคำนวณ
นอกจากนี้ยังสามารถใช้ MQL5 Cloud Network เพื่อรัน Optimization ขนาดใหญ่ด้วย Remote Agent จากทั่วโลก อย่างไรก็ตาม มีค่าใช้จ่าย ดังนั้นวิธีที่มีประสิทธิภาพกว่าคือการจำกัดช่วงพารามิเตอร์ใน Local ก่อน แล้วค่อยใช้ Cloud
แนวทาง Optimization สำหรับ EA ที่แจกจ่ายบนเว็บไซต์นี้
สำหรับ GOLD_EMA_ATR_EA (XAUUSD H1) เราจำกัดเป้าหมาย Optimization ไว้โดยเจตนา
- ช่วง EMA ระยะสั้น
- ช่วง EMA ระยะยาว
- ค่าคูณ ATR (สำหรับ SL)
พารามิเตอร์อื่นๆ ทั้งหมดถูกกำหนดเป็น "ค่าตามธรรมชาติ" เพื่อป้องกัน Over-Optimization ค่า PF 1.30 จาก Backtest 10 ปีนั้น หากรัน Optimization ต่อไปก็อาจสูงขึ้นได้ แต่ก็ยิ่งเพิ่มโอกาสที่มันจะทำงานไม่ได้ในตลาดอนาคต การเลือกตัวเลขธรรมดาๆ แล้วรันให้ยาวนาน คือคำตอบที่ใช้ได้จริงในการซื้อขาย
ดาวน์โหลด EA ฟรี
GOLD_EMA_ATR_EA ให้ดาวน์โหลดฟรีพร้อมพารามิเตอร์ที่ปรับแต่งแล้วและคู่มือการ Optimize
โบรกเกอร์แนะนำ
เพื่อให้ผลลัพธ์จาก Backtest และ Optimization ได้รับการทำซ้ำในการใช้งานจริงได้มากที่สุด เว็บไซต์นี้แนะนำโบรกเกอร์ที่ให้ความสำคัญกับคุณภาพการ Execute คำสั่ง
บทความที่เกี่ยวข้อง
2026-05-12
Backtest EA FX คืออะไร? วิธีทดสอบที่ถูกต้องและข้อควรระวัง
2026-05-22
วิธีอ่านและทำความเข้าใจรายงาน Backtest ของ MT5 【ฉบับปี 2026】อธิบายความหมายของทุกตัวชี้วัดอย่างครบถ้วน
2026-05-18
วิธีกำหนดระยะเวลาทดสอบ Demo ก่อนใช้งาน EA จริง - สิ่งที่ต้องตรวจสอบใน 3 เดือน
2026-05-18
การจัดการ Drawdown ของ EA บน MT5 - การตั้งค่าหยุดอัตโนมัติและการควบคุมจิตใจ
คอร์สอีเมล 5 วัน (ฟรี)
รับอีเมลวันละหนึ่งฉบับครอบคลุมพื้นฐานการเทรด FX อัตโนมัติ วิธีอ่านแบ็คเทสต์อย่างถูกต้อง และเคล็ดลับเลือกโบรกเกอร์
* ปกป้องความเป็นส่วนตัวอย่างเคร่งครัด คุณสามารถยกเลิกการสมัครได้ตลอดเวลา