Backtest กลยุทธ์เทรดคืออะไร และทดสอบอย่างไรก่อนใช้เงินจริง
Backtest คือการนำกฎการเข้าและออกออเดอร์ของกลยุทธ์หนึ่งไปทดสอบย้อนหลังกับข้อมูลราคาจริงในอดีต เพื่อประเมินว่ากลยุทธ์นั้นให้ผลลัพธ์ในลักษณะใดก่อนนำเงินจริงเข้าไปรับความเสี่ยง ปัญหาที่พบบ่อยในกลุ่มผู้เริ่มต้นคือการนำกลยุทธ์ใหม่ไปใช้กับบัญชีจริงทันทีโดยไม่เคยทดสอบย้อนหลัง จึงไม่ทราบว่ากลยุทธ์มีจุดอ่อนแบบใดเมื่อสภาวะตลาดเปลี่ยนไป บทความนี้อธิบายขั้นตอนการทดสอบ ตัวเลขที่ควรบันทึก และวิธีอ่านผลที่ได้
Backtest คืออะไร ต่างจาก Forward Test หรือ Demo Trade อย่างไร
ความต่างหลักอยู่ที่ทิศทางของเวลาและสถานะของข้อมูล Backtest ใช้ข้อมูลราคาที่เกิดขึ้นไปแล้ว ผู้ทดสอบจึงเห็นภาพรวมทั้งช่วงและสามารถย้อนกลับไปดูจุดเข้าออกซ้ำได้ ส่วน Forward Test คือการรันกฎเดิมไปข้างหน้าตามเวลาจริงโดยยังไม่ใช้เงินจริง บันทึกผลทีละออเดอร์เมื่อสัญญาณเกิดขึ้น และ Demo Trade คือการส่งคำสั่งบนบัญชีทดลองที่ใช้ราคาเรียลไทม์แต่เป็นเงินจำลอง ซึ่งเพิ่มเรื่องการกดคำสั่งและการจัดการออเดอร์เข้ามา แต่ยังไม่มีแรงกดดันทางอารมณ์แบบการใช้เงินจริง
ลำดับการทดสอบที่พบทั่วไปมี 3 ขั้น ขั้นที่ 1 ทำ Backtest ย้อนหลังเพื่อคัดกรองกลยุทธ์ที่ผลลัพธ์ไม่สอดคล้องกับเกณฑ์ที่กำหนด โดยยังไม่นำเงินจริงไปรับความเสี่ยง ขั้นที่ 2 ทำ Forward Test หรือ Demo ตามจำนวนตัวอย่างที่กำหนดไว้ล่วงหน้า เช่น 20–30 ออเดอร์สำหรับการตรวจสอบเบื้องต้น เพื่อดูว่าตัวเลขที่ได้ยังใกล้เคียงกับผลย้อนหลังหรือไม่ ขั้นที่ 3 เปรียบเทียบตัวเลขทั้งสองชุด หากค่าต่างกันมาก อาจหมายความว่ากฎบางข้อยังกำกวมเกินกว่าจะทำซ้ำได้ในเวลาจริง
โปรแกรม MetaTrader 5 (MT5) มีโหมด Strategy Tester สำหรับทดสอบระบบอัตโนมัติหรือ Expert Advisor กับข้อมูลย้อนหลัง ส่วนกลยุทธ์ที่ใช้ดุลยพินิจควรกำหนดวิธีบันทึกและตรวจสอบด้วยมือให้สม่ำเสมอ
ข้อมูลที่ต้องเตรียมก่อนเริ่ม Backtest เช่น ช่วงเวลาและจำนวนแท่งเทียน
ก่อนเริ่มทดสอบ ควรกำหนดขอบเขตให้แคบและชัดเจน เพราะการทดสอบหลายสินทรัพย์และหลายไทม์เฟรมพร้อมกันทำให้แยกได้ยากว่าผลลัพธ์เกิดจากตัวแปรใด รายการที่ควรเตรียมมีดังนี้
- สินทรัพย์เดียวก่อน เช่น EUR/USD หรือ XAU/USD และไทม์เฟรมเดียว
- ช่วงเวลาย้อนหลังที่แน่นอน เช่น 6 เดือน
- กฎเข้าและกฎออกที่เขียนเป็นข้อความ พร้อมระบุเงื่อนไขอินดิเคเตอร์และเงื่อนไขราคาให้ครบ
- ขนาดสถานะคงที่ตลอดการทดสอบ เช่น Micro Lot 1,000 หน่วย หรือ Mini Lot 10,000 หน่วย
- ต้นทุนต่อออเดอร์ ได้แก่ ส่วนต่างราคา (Spread) ค่าคอมมิชชันต่อ Lot และค่า Swap หากบัญชีหรือสินทรัพย์นั้นมีการเรียกเก็บ
จำนวนแท่งเทียนคำนวณได้โดยประมาณ ตลาดฟอเร็กซ์ซื้อขายราว 5 วันต่อสัปดาห์ ตลอด 24 ชั่วโมง ช่วง 6 เดือนคิดเป็นประมาณ 26 สัปดาห์ ดังนั้นไทม์เฟรม H1 จะมีข้อมูลราว 26 × 5 × 24 = 3,120 แท่ง ส่วนไทม์เฟรม M15 จะมีข้อมูลราว 3,120 × 4 = 12,480 แท่ง ตัวเลขนี้ช่วยประเมินล่วงหน้าว่าการทดสอบด้วยมือจะใช้เวลามากน้อยเพียงใด คุณภาพข้อมูลราคาย้อนหลังและเงื่อนไขต้นทุนอาจต่างกันตามแหล่งข้อมูล จึงควรระบุแหล่งข้อมูลที่ใช้ทดสอบไว้ในบันทึกด้วย
ต้นทุนเป็นตัวแปรสำคัญที่ควรรวมไว้ในการทำ Backtest เนื่องจาก Spread ค่าคอมมิชชัน และ Swap ล้วนส่งผลต่อผลลัพธ์สุทธิ ค่าที่ใช้ทดสอบจึงควรใกล้เคียงกับประเภทบัญชีและช่วงเวลาซื้อขายที่ต้องการจำลองมากที่สุด
ค่าคอมมิชชัน Spread และเงื่อนไขการส่งคำสั่งที่ใส่ใน Backtest ควรใกล้เคียงกับบัญชีที่จะใช้จริง หากกำลังทดสอบบน MT5 และนำเงื่อนไขของผู้ให้บริการมาเป็นสมมติฐาน บทความ GOC Prime รีวิว ใช้เป็นเช็กลิสต์สำหรับตรวจประเภทบัญชี แพลตฟอร์ม และรายการต้นทุนได้ จากนั้นจึงนำค่าล่าสุดจากเว็บไซต์ทางการไปตั้งในแบบทดสอบ
ตัวชี้วัดหลักที่ควรบันทึกระหว่าง Backtest เช่น Win Rate และ Maximum Drawdown
การบันทึกเฉพาะกำไรหรือขาดทุนรวมทำให้มองไม่เห็นลักษณะความเสี่ยงของกลยุทธ์ ตัวชี้วัดที่ควรเก็บควบคู่กันมีดังนี้
- Win Rate คือจำนวนออเดอร์ที่ชนะหารด้วยจำนวนออเดอร์ทั้งหมด เช่น ชนะ 42 จาก 100 ออเดอร์ เท่ากับ 42%
- Maximum Drawdown คือระยะที่มูลค่าพอร์ตลดลงจากจุดสูงสุดถึงจุดต่ำสุดของช่วงนั้น เช่น พอร์ตขึ้นไปสูงสุด 50,000 บาท แล้วลดลงเหลือ 43,000 บาท คิดเป็น 7,000 ÷ 50,000 = 14%
- อัตราส่วน Risk:Reward เฉลี่ย คำนวณจากระยะจุดเข้าไปถึง Stop Loss เทียบกับระยะจุดเข้าไปถึง Take Profit ของแต่ละออเดอร์ โดยจุดออกควรมาจากกฎของระบบที่กำหนดไว้ล่วงหน้า ไม่ว่าจะอ้างอิงโครงสร้างราคาหรืออัตราส่วนคงที่
- จำนวนออเดอร์ที่ขาดทุนติดต่อกันสูงสุด เช่น ขาดทุนติดต่อกัน 7 ออเดอร์ ขณะกำหนดความเสี่ยงออเดอร์ละ 1% ของพอร์ต อาจทำให้มูลค่าพอร์ตลดลงประมาณ 7% ก่อนพิจารณาผลของการเปลี่ยนแปลงฐานทุน
- ต้นทุนรวมสะสมตลอดการทดสอบ
หน้าต่างส่งคำสั่งซื้อขายของ MetaTrader 5 (MT5) มีช่องกำหนด Stop Loss และ Take Profit จึงสามารถบันทึกระดับทั้งสองค่าไว้ตั้งแต่ตอนวางแผนออเดอร์ ทำให้ตรวจสอบย้อนหลังได้ว่าจุดออกที่ตั้งไว้อ้างอิงจากโครงสร้างราคาหรือมาจากการประมาณ
ตัวอย่างสรุปผล Backtest 100 ออเดอร์ย้อนหลัง 6 เดือน
สมมติกลยุทธ์หนึ่งถูกทดสอบย้อนหลัง 6 เดือน ได้สัญญาณทั้งหมด 100 ออเดอร์ ชนะ 42 ออเดอร์ และแพ้ 58 ออเดอร์ คิดเป็น Win Rate 42% แม้สัดส่วนออเดอร์ที่ชนะจะต่ำกว่าครึ่ง แต่ผลรวมตามสมมติฐานอาจเป็นบวกเมื่ออัตราส่วน Risk:Reward เฉลี่ยสูงเพียงพอ สมมติพอร์ตเริ่มต้น 50,000 บาท และกำหนดความเสี่ยงออเดอร์ละ 500 บาท หรือ 1% ของพอร์ต ซึ่งเป็นแนวทางที่พบได้ทั่วไป ไม่ใช่กฎตายตัว หากจุด Take Profit ที่เลือกจากแนวรับและแนวต้านทำให้ค่าเฉลี่ยของออเดอร์ที่ชนะอยู่ที่ประมาณ 2 เท่าของระยะเสี่ยง ผลตอบแทนเฉลี่ยของออเดอร์ที่ชนะจะเท่ากับ 1,000 บาท
ผลรวมของออเดอร์ที่ชนะคือ 42 × 1,000 = 42,000 บาท ส่วนออเดอร์ที่แพ้รวม 58 × 500 = 29,000 บาท ผลต่างเท่ากับ 42,000 − 29,000 = 13,000 บาท เมื่อหักต้นทุนสมมติออเดอร์ละ 60 บาท จำนวน 100 ออเดอร์ รวม 6,000 บาท จะเหลือผลต่างประมาณ 7,000 บาท หรือราว 14% ของพอร์ตเริ่มต้น ในทางกลับกัน หากอัตราส่วนเฉลี่ยอยู่ที่ 1:1 ผลลัพธ์จะเป็น 42 × 500 − 58 × 500 = −8,000 บาทก่อนหักต้นทุน ตัวเลขทั้งหมดเป็นกรณีสมมติเพื่อแสดงวิธีอ่านผล ไม่ใช่สถิติจริงของกลยุทธ์ใด และสะท้อนว่า Win Rate เพียงตัวเดียวไม่เพียงพอสำหรับประเมินกลยุทธ์
ข้อจำกัดของ Backtest เมื่อเทียบกับสภาวะตลาดจริง
ผลจาก Backtest ในอดีตไม่ได้เป็นหลักประกันผลลัพธ์ในอนาคต ข้อจำกัดสำคัญข้อแรกคือต้นทุนที่มักถูกประเมินต่ำเกินไป หากการทดสอบละเลยส่วนต่างราคาเฉลี่ย 2 Pip ต่อออเดอร์ เมื่อครบ 100 ออเดอร์จะสะสมเป็น 200 Pip สำหรับ Mini Lot 10,000 หน่วยของคู่เงินที่มี USD เป็นสกุลอ้างอิง มูลค่า 1 Pip อยู่ที่ประมาณ 1 ดอลลาร์สหรัฐ จึงคิดเป็นต้นทุนประมาณ 200 ดอลลาร์สหรัฐ
ข้อจำกัดถัดมาคือช่วงข้อมูลที่แคบ ระยะเวลา 6 เดือนอาจครอบคลุมเพียงสภาวะตลาดรูปแบบเดียว กลยุทธ์ที่ให้ผลลัพธ์เป็นบวกในช่วงราคาเป็นแนวโน้มอาจให้ผลต่างออกไปในช่วงที่ราคาแกว่งในกรอบ นอกจากนี้ยังมีความเสี่ยงจากการปรับพารามิเตอร์ซ้ำหลายรอบจนตัวเลขพอดีกับข้อมูลชุดเดิมมากเกินไป แต่ใช้กับข้อมูลชุดใหม่ไม่ได้ รวมถึงความคลาดเคลื่อนจากการเลื่อนของราคาขณะส่งคำสั่งในช่วงตลาดผันผวนสูง ซึ่งข้อมูลย้อนหลังแบบราคาปิดอาจไม่สะท้อนทั้งหมด ปัจจัยด้านอารมณ์ก็แตกต่างเช่นกัน เพราะการทดสอบข้อมูลในอดีตไม่เหมือนกับการถือออเดอร์ที่กำลังขาดทุนด้วยเงินจริง ผู้ลงทุนควรศึกษาข้อมูลก่อนการลงทุน
สรุปแล้ว Backtest เป็นเครื่องมือคัดกรองเบื้องต้นที่ช่วยให้เห็นจุดแข็ง จุดอ่อน และลักษณะความเสี่ยงของกลยุทธ์ก่อนนำไปทดสอบในขั้นถัดไป ไม่ใช่เครื่องมือยืนยันผลลัพธ์ในอนาคต ค่าที่ได้จะมีประโยชน์เมื่อกฎถูกเขียนไว้อย่างชัดเจนและสามารถทำซ้ำด้วยเงื่อนไขเดียวกัน ขั้นตอนถัดไปคือจัดทำตารางบันทึกที่มีคอลัมน์วันที่ ทิศทาง จุดเข้า Stop Loss, Take Profit, ผลลัพธ์ และต้นทุน แล้วเก็บข้อมูลให้ได้จำนวนตัวอย่างตามที่กำหนดไว้ล่วงหน้าก่อนสรุปผล โดยอาจใช้ 100 ออเดอร์เป็นจุดเริ่มต้นสำหรับการเปรียบเทียบเบื้องต้น ไม่ใช่เกณฑ์รับรองความน่าเชื่อถือของกลยุทธ์
Categories
Hashtags