Backtest ใน MT4 กับ MT5 ไม่เท่ากัน เกิดจากหลายสาเหตุหลัก ๆ ดังนี้ครับ:
1. **โครงสร้างข้อมูลราคาที่ต่างกัน**
* MT4 ใช้ข้อมูลราคาแบบ 1 นาที (M1) เป็นหลัก และจะสร้างแท่งเทียนจากข้อมูล M1
* MT5 รองรับข้อมูลราคาที่ละเอียดกว่ามาก เช่น Tick by Tick (ราคาทุกการเคลื่อนไหว) ทำให้การคำนวณบางอย่างละเอียดกว่า MT4
2. **วิธีการจำลองคำสั่งและกลไกการเทรดต่างกัน**
* MT5 รองรับคำสั่งที่ซับซ้อนกว่า เช่น การเปิดคำสั่งแบบ partial fills, pending orders หลายแบบ และรองรับระบบ order matching แบบ FIFO (First In First Out)
* MT4 ใช้ระบบคำสั่งง่ายกว่า และไม่มี FIFO ทำให้บางครั้งผลลัพธ์การเทรดอาจต่างกัน
3. **ความแม่นยำของข้อมูล Tick**
* MT5 สามารถใช้ข้อมูล tick ที่แม่นยำกว่าและสมบูรณ์กว่า MT4 ทำให้ backtest มีความละเอียดและใกล้เคียงกับการเทรดจริงมากกว่า
* MT4 บางครั้งจะประมาณ tick จากราคานาที ทำให้เกิดความคลาดเคลื่อน
4. **กลไกการคำนวณคอมมิชชั่นและสเปรด**
* MT5 อาจมีการคำนวณคอมมิชชั่นหรือค่าสเปรดที่ละเอียดกว่า หรือแตกต่างกับ MT4
* หากตั้งค่าไม่เหมือนกัน เช่น สเปรด, คอมมิชชั่น, slippage ก็ส่งผลต่อผล backtest
5. **ความแตกต่างของโค้ด EA หรือ Indicator**
* บางครั้งโค้ดที่เขียนสำหรับ MT4 และ MT5 มีการทำงานต่างกัน เพราะภาษาที่ใช้ (MQL4 กับ MQL5) และฟังก์ชันในตัวต่างกัน
* ส่งผลให้ logic การเข้าออกออร์เดอร์อาจต่างกัน
6. **ข้อมูลเริ่มต้น (History Data) ที่ใช้ไม่เหมือนกัน**
* หากข้อมูลราคาใน MT4 กับ MT5 ไม่เหมือนกัน (เวลาเริ่มต้น, ความสมบูรณ์ของข้อมูล) จะทำให้ผลลัพธ์ต่างกัน
---
**สรุป**
การ backtest ใน MT5 มักจะแม่นยำกว่าเพราะใช้ข้อมูล tick ที่ละเอียดกว่าและระบบเทรดที่สมจริงกว่า แต่ก็ต้องตั้งค่าและตรวจสอบข้อมูลให้เหมือนกันในทั้งสองแพลตฟอร์ม หากต้องการผลที่ใกล้เคียงกันมาก ๆ ควรใช้ข้อมูลและตั้งค่าที่เหมือนกัน และเขียน EA ให้ทำงานเหมือนกันทั้งสองแพลตฟอร์มครับ