คุณภาพข้อมูลราคาในการทดสอบ EA: tick จริง ช่องว่าง และ Spread ในประวัติ

EA ตัวเดียวกัน ค่าตั้งเดียวกัน ทดสอบช่วงเวลาเดียวกัน แต่ได้ผลต่างกันเมื่อเปลี่ยนเครื่องหรือเปลี่ยนบัญชี สาเหตุส่วนใหญ่ไม่ได้อยู่ที่ EA แต่อยู่ที่ข้อมูลราคาที่ใช้ทดสอบ บทความนี้อธิบายว่าข้อมูลประวัติต่างกันได้อย่างไร และควรตรวจอะไรก่อนเชื่อผล Backtest
ตัวเลขเป็นตัวอย่างเพื่อประกอบบทความ · ตรวจเงื่อนไขของโบรกเกอร์ก่อนเทรดจริง
สรุปสาระสำคัญ
- tick จริงกับ tick ที่สร้างจากแท่งให้ลำดับราคาต่างกัน และเปลี่ยนผลของไม้เดียวกันได้
- ช่วงที่ข้อมูลหายไปคือช่วงที่ EA ไม่ได้ถูกทดสอบ ผลรวมจึงดูดีหรือแย่กว่าความจริงได้
- Spread ในข้อมูลประวัติอาจไม่สะท้อนช่วงข่าวและช่วงรอยต่อของวันที่ EA เทรดจริง
- เวลาของเซิร์ฟเวอร์กำหนดว่าแท่ง D1 เริ่มและจบเมื่อไร อินดิเคเตอร์บนกรอบใหญ่จึงต่างกันได้
- ทดสอบด้วยข้อมูลของโบรกเกอร์ที่จะใช้จริง และเทียบกับข้อมูลอีกแหล่งเมื่อทำได้
ข้อมูลที่ Strategy Tester ใช้มาจากไหน
MT5 ดาวน์โหลดข้อมูลประวัติจากเซิร์ฟเวอร์ของโบรกเกอร์ที่ล็อกอินอยู่ ข้อมูลมีสองระดับ คือแท่ง M1 ที่เก็บราคาเปิด สูง ต่ำ ปิด ของแต่ละนาที และ tick ซึ่งเป็นราคาทุกครั้งที่เปลี่ยน แต่ละโบรกเกอร์มีแหล่งราคาของตัวเอง ข้อมูลจึงยาวและครบไม่เท่ากัน โหมดจำลองราคาที่เลือกใน Strategy Tester กำหนดว่าจะใช้ข้อมูลระดับไหน
tick จริงกับ tick ที่สร้างจากแท่ง
โหมด Every tick based on real ticks ใช้ tick ที่บันทึกไว้จริง ส่วนโหมด Every tick สร้าง tick ขึ้นจากแท่ง M1 ซึ่งรู้แค่สี่ราคาของแต่ละนาที ไม่รู้ว่าราคาไปถึงจุดสูงหรือจุดต่ำก่อน ภาพด้านล่างรวมสามเรื่องที่ทำให้ข้อมูลต่างกัน เริ่มจากช่องที่ 1 ซึ่งเป็นแท่ง M1 แท่งเดียวในช่วงข่าว

ตัวอย่างเปิด Buy ที่ราคาเปิดของแท่ง วาง Stop 5 pips และเป้า 7.5 pips แท่งนี้กว้าง 15 pips ตามลำดับราคาจริง ราคาขึ้นไปแตะเป้าก่อน ไม้นี้ได้ +1.5R แต่ tick ที่สร้างจากแท่งเดียวกันลงไปแตะ Stop ก่อน ผลจึงเป็น −1R ระบบที่วาง Stop แคบหรือเข้าออกเร็วจึงควรทดสอบด้วย tick จริง
แม้เลือกโหมด real ticks แล้ว ถ้าช่วงไหนโบรกเกอร์ไม่มี tick จริงเก็บไว้ ตัวทดสอบอาจใช้ข้อมูลที่สร้างจากแท่ง M1 แทนในช่วงนั้น รายงานผลของ MT5 มีบรรทัด History Quality ที่บอกคุณภาพของข้อมูลที่ใช้ ควรดูทุกครั้งก่อนอ่านตัวเลขอื่น
ช่องว่างในข้อมูลประวัติ
ช่องที่ 2 ของภาพเป็นข้อมูล M1 หนึ่งสัปดาห์ตามเวลาเซิร์ฟเวอร์ ซึ่งควรมี 5 × 1,440 = 7,200 แท่ง แต่มีสามช่วงที่ข้อมูลหายไป คือ 90, 108 และ 90 นาที รวม 288 แท่ง เหลือ 6,912 แท่ง หรือครอบคลุม 96.0% ตัวเลขดูสูง แต่ในสามช่วงนั้น EA ไม่ได้เห็นราคาเลย ถ้าเป็นช่วงข่าวแรง ผลทดสอบจะพลาดเหตุการณ์สำคัญไป
- ดูบนกราฟ — เลื่อนกราฟ M1 ไปช่วงที่สงสัย ช่องว่างผิดปกติระหว่างแท่งมักเห็นได้ด้วยตา
- ดูในหน้าต่าง Symbols — แท็บ Bars และ Ticks ใช้ขอข้อมูลและตรวจว่ามีช่วงไหนบ้าง
- อ่านแท็บ Journal ของตัวทดสอบ — มักมีข้อความเมื่อข้อมูลบางช่วงไม่พร้อม
ช่วงตลาดเงียบอาจขาดแท่งบางนาทีได้ตามปกติ ที่ต้องระวังคือช่องว่างยาวเป็นชั่วโมงในวันทำการ
Spread ในข้อมูลประวัติ
โหมดที่สร้างราคาจากแท่ง M1 ใช้ค่า Spread ที่บันทึกไว้กับแท่งนั้น ซึ่งเป็นค่าตัวแทนเพียงค่าเดียวต่อนาที ส่วนโหมด real ticks ใช้ราคา Bid และ Ask ของแต่ละ tick จึงเห็นช่วงที่ Spread ถ่างออกตอนข่าวหรือตอนรอยต่อของวันได้ใกล้ความจริงกว่า EA ที่มีตัวกรอง Max spread จะทำงานต่างกันมากระหว่างสองแบบนี้
ข้อมูลเก่ายังสะท้อนเงื่อนไขของบัญชีในช่วงนั้น ถ้าประเภทบัญชีที่ใช้จริงต่างออกไป Spread และค่าคอมมิชชันก็ต่างกัน ควรเผื่อต้นทุนไว้ตาม ต้นทุนการเทรด
เวลาของเซิร์ฟเวอร์เปลี่ยนแท่ง D1
ช่องที่ 3 ของภาพแสดงว่าตลาดเปิดราว 120 ชั่วโมงต่อสัปดาห์ แต่แบ่งเป็นแท่ง D1 ตามเวลาของเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้ GMT+0 จะมีแท่งวันอาทิตย์สั้นเพียง 2 ชั่วโมง รวมเป็น 6 แท่งต่อสัปดาห์ ส่วนเซิร์ฟเวอร์ GMT+2 ในช่วงเวลาเดียวกันได้ 5 แท่งที่ยาวเท่ากัน ค่าเฉลี่ยเคลื่อนที่ 20 แท่งบน D1 ของสองโบรกเกอร์จึงครอบคลุมเวลาไม่เท่ากัน
EA ที่ใช้ราคาเปิดของวัน จุดสูงต่ำของวันก่อน หรืออินดิเคเตอร์บนกรอบ D1 จะให้สัญญาณต่างกันตามเวลาเซิร์ฟเวอร์ ตัวกรองเวลาของ EA ก็อ้างอิงเวลาเซิร์ฟเวอร์เช่นกัน เรื่องช่วงเวลาของตลาดอ่านเพิ่มได้ใน เวลาเปิดปิดตลาด Forex
ทำไมข้อมูลของแต่ละโบรกเกอร์ให้ผลต่างกัน
- แหล่งราคาต่างกัน — ราคาเสนอซื้อขายและจำนวน tick ต่อนาทีไม่เท่ากัน จุดสูงต่ำของแท่งจึงต่างกันเล็กน้อย
- Spread และค่าคอมมิชชันต่างกัน — กระทบระบบที่เทรดบ่อยหรือวาง Stop แคบมากที่สุด
- ความยาวและความครบของประวัติ — บางแห่งมี tick จริงย้อนหลังสั้นหรือมีช่วงขาดหาย
- เวลาเซิร์ฟเวอร์ — เปลี่ยนแท่ง D1 และช่วงเวลาที่ตัวกรองเวลาทำงาน
- เงื่อนไขสัญญา — จำนวนทศนิยม ขนาดสัญญา และขั้นต่ำของ lot ต่างกันได้ ตรวจได้จาก Specification ของสัญลักษณ์
ตรวจข้อมูลก่อนเชื่อผลทดสอบ
- ดู History Quality ในรายงาน — ถ้าต่ำกว่าที่คาด หาสาเหตุก่อนอ่านกำไรหรือ Drawdown
- รันซ้ำด้วยโหมด real ticks — เทียบกับโหมดที่เร็วกว่า ถ้าต่างกันมาก ให้เชื่อผลที่ละเอียดกว่า
- ตรวจช่วงข่าวสำคัญ — ว่ามีข้อมูลครบและ Spread ถ่างออกตามจริงหรือไม่
- ทดสอบกับข้อมูลอีกแหล่ง — ระบบที่ผลพลิกเมื่อเปลี่ยนแหล่งข้อมูลมักพึ่งรายละเอียดที่ควบคุมไม่ได้
ความผิดพลาดที่พบบ่อย
- เทียบผลทดสอบจากต่างโบรกเกอร์โดยตรง — ข้อมูล เวลาเซิร์ฟเวอร์ และต้นทุนไม่เหมือนกัน
- คิดว่าเลือก real ticks แล้วข้อมูลครบเสมอ — ต้องดูว่าช่วงที่ทดสอบมี tick จริงอยู่เท่าไร
- ไม่สนใจช่องว่างสั้น ๆ — ช่องว่างไม่กี่ชั่วโมงในวันข่าวอาจซ่อนไม้ที่เสียหนักที่สุด
สรุป
ผล Backtest เชื่อถือได้เท่ากับข้อมูลที่ใช้ ตรวจลำดับราคา ช่องว่าง Spread และเวลาเซิร์ฟเวอร์ก่อน แล้วจึงอ่านตัวเลขในรายงานตามวิธีใน อ่านรายงาน Backtest สุดท้ายตรวจกับตลาดจริงด้วย Forward Test


