แม้ใช้งาน EA เดียวกันในระยะเวลาเดียวกัน ผลลัพย์กลับต่างกัน ── เรื่องที่ MT4 จำ “การตั้งค่าล่าสุด” ไว้
กำลังตรวจสอบ EAนี้อยู่ แล้วคุณเคยพบประสบการณ์แบบนี้ไหม
หลังจากที่รัน backtest ด้วย EA เดียวกัน คู่สกุลเงินเดียวกัน และช่วงเวลาเดียวกันเมื่อวานนี้ ผลลัพธ์ด้านจำนวนการเทรดและกำไร/ขาดทุนกลับต่างกัน ถึงแม้จะตรวจดูการตั้งค่าแล้วก็ไม่จำได้ว่าเปลี่ยนอะไร
เมื่อไม่นานมานี้ ผมพบเรื่องนี้ตลอดหนึ่งวันเต็ม เหตุผลไม่ได้มาจาก EA หรือข้อมูลตลาดแต่ MT4 จำค่า parameter ครั้งก่อนและให้ความสำคัญกับมันมากกว่าซึ่งทำให้ค่าที่แสดงในหน้าจรทดสอบกลยุทธ์ไม่ตรงกับค่าที่ส่งไปในไฟล์
ถ้าไม่รู้จะคิดว่า “ EA นี้ไม่มีความสามารถในการทำซ้ำได้” ซึ่งเป็นพฤติกรรมที่อาจทำให้สรุปผิดๆ ได้ ผมจึงนำตัวเลขจริงมาประกอบการแชร์ด้วย
เกิดอะไรขึ้น
สำหรับ EA หนึ่งตัว ผมกำลังตรวจสอบว่าเวอร์ชันที่เรียบเรียงใหม่กับเวอร์ชันดั้งเดิมมีการเทรดตรงกันทั้งหมดหรือไม่ โดยไม่แตะโครงสร้างตรรกะใดๆ เพิ่มเพียงพารามิเตอร์ที่ถูกเปลี่ยนจากภายนอก เข้ากันดั้งเดิมถ้าใช้งานในค่าดีฟอลต์ จะทำการเทรดเหมือนกันทั้งหมด
เงื่อนไขมีดังนี้
- USDJPY / M5
- 1 มกราคม 2019 ถึง 1 มกราคม 2026 (7 ปี)
- ค่าเปิดเท่านั้น / สเปรด 20
ผลลัพธ์รอบแรกเป็นไปตามคาด
- เวอร์ชันเดิม1345 การเทรด/ เวอร์ชันที่เรียบเรียง1345 การเทรด
- ตรงกับทุกกรอบการจับถ่วงตามลำดับการเกิดแทนที่1345 รายการตรงทั้งหมด (100.0%)
- Profit Factor และ Maximum Drawdown ก็ตรงกันทั้งหมด
ปัญหาคือด้านถัดไป เมื่อผมปรับค่า parameter หลายชุดเพื่อทดสอบความรู้สึก แล้วกลับไปเปรียบเทียบกับค่าเริ่มต้นอัตราความสอดคล้องลดลงเหลือ 17.9%นั่นคือผลลัพธ์
โค้ดไม่ได้ถูกเปลี่ยนเลย ระยะเวลาและสเปรดก็เหมือนเดิม แต่ใน 1345 รายการการเทรด หลักขวาประมาณ 80% ไม่ตรงกัน
ถ้าคิดแบบทั่วไปจะสรุปว่า “การดัดแปลงที่เพิ่มพารามิเตอร์มีผลข้างเคียง” ซึ่งจริงๆ ผมก็สงสัยตอนแรกเช่นกัน
แต่เป็นการกล่าวหาที่ไม่เป็นธรรมอย่างสิ้นเชิงเลย
ผู้ร้ายจริงไม่ใช่ EA แต่เป็นฝั่ง MT4
เมื่อเปิดเผยความลับ พบว่าในระหว่างการค้นหาก่อนหน้านี้ ผมได้ตั้งค่า “ส่วนต่างเวลาของเซิร์ฟเวอร์ (GMT)” เป็น 1 เพียงครั้งเดียว แล้วรัน หลังจากนั้น ค่าจะถูกถ่ายทอดไปในการรันถัดไปเวอร์ชันเดิมยังคง GMT=1 ในขณะที่เวอร์ชันที่เรียบเรียงถูกเรียกใช้งานด้วย GMT=0นั่น
สำหรับ EA ที่มีตัวกรองเวลา การที่เวลาของเซิร์ฟเวอร์คลาดเคลื่อน 1 ชั่วโมง ถือเป็นการเปลี่ยนแปลงตลาดอย่างมาก ความสามารถในการเข้าเทรดอาจเปลี่ยนไป ผลที่ตามมาคือ position ที่เกิดขึ้นจะคลาดเคลื่อนไปด้วย ความสอดคล้องร้อยละ 80 จึงไม่ใช่เรื่องแปลก
สิ่งที่น่ากลัวคือสถานะนี้ไม่มีการแสดงออกที่ไหนหน้าจอ Tester ปกติไม่มีข้อผิดพลาดหรือคำเตือน คู่มือทั้งสองรายงานมีตัวเลขที่ดูน่าเชื่อถือ จึงมีคนที่เปรียบเทียบคิดว่า “ EA เป็นต้นเหตุ”
นี่คือเหตุการณ์ทั้งหมด ตั้งแต่เกิดขึ้นจนถึงตอนนี้ ต่อไปจะอธิบายว่ทำไม MT4 ถึงเป็นสาเหตุ และจะทำการทดสอบซ้ำอย่างมีความเป็นจริงได้อย่างไรบ้าง