ทดสอบระบบเทรดทองย้อนหลัง (Backtest) ด้วยตัวเอง: แยกฝีมือออกจากดวง
เทรดทอง 201 ตอนที่ 7: ทดสอบระบบกับราคาทอง 20 ปีจริงในเบราว์เซอร์ เทียบผลกับการสุ่มเข้า ดูว่า 30 ไม้แยกฝีมือกับดวงไม่ได้อย่างไร และหลบกับดัก Overfitting ก่อนใช้เงินจริง
สารบัญบทความ · 8 หัวข้อ
- Backtest คือการเอากติกาเทรดไปเล่นกับราคาในอดีต เพื่อดูว่าก่อนเสี่ยงเงินจริง ระบบนั้นเคยได้หรือเสียอย่างไร
- ระบบซื้อเมื่อทองทะลุจุดสูงสุด 20 วัน ทดสอบ 20 ปีได้เฉลี่ย +0.44R ต่อไม้ แต่ การสุ่มวันซื้อก็ได้ +0.33R เพราะทองเป็นขาขึ้น สัญญาณจริง ๆ เพิ่มให้แค่ราว 0.1R
- สุ่มซื้อแค่ 30 ไม้ มีโอกาสราว 1 ใน 3 ที่ผลออกมาดีเท่าระบบ ผลทดสอบไม่กี่สิบไม้จึงแยกฝีมือกับดวงไม่ออก
- จูนตัวเลขให้เข้ากับอดีตมากเกินไป (Overfitting) ทำให้ระบบ Sell ที่ชนะ 70% ในปี 2566–2567 ทำผลขาดทุนในปี 2568–2569
ตอนที่ 1–6 เราสร้างเครื่องมือครบแล้ว ทั้งอ่านปัจจัย อ่านกรอบเวลา อ่านโครงสร้าง และวาง Stop ตาม ATR คำถามต่อไปคือ เอามาประกอบเป็นระบบแล้ว ระบบนั้นใช้ได้จริงไหม ตอนนี้จะทดสอบด้วยข้อมูลทอง 20 ปีจริง และชี้กับดักที่ทำให้ผลทดสอบสวยกว่าความจริง
Backtest คืออะไร ทำไมต้องทำ
Backtest (การทดสอบย้อนหลัง) คือการนำกติกาเข้าออกที่เขียนไว้ชัดเจนไปใช้กับราคาในอดีต แล้วจดผลทุกไม้ เหมือนซ้อมกับข้อสอบเก่าก่อนสอบจริง สิ่งที่ได้คือ
เขียนกติกาให้ชัดก่อนทดสอบ
ถ้ากติกาเขียนว่า “เข้าเมื่อดูแล้วน่าจะขึ้น” ทดสอบไม่ได้ เพราะทุกครั้งที่ย้อนดูกราฟ เรารู้แล้วว่าราคาไปทางไหน กติกาที่ทดสอบได้ต้องตอบ 6 ข้อนี้โดยไม่ต้องตีความ
| คำถาม | ระบบตัวอย่างในบทนี้ |
|---|---|
| เข้าเมื่อไร | ราคาปิด XAUUSD สูงกว่าราคาปิดสูงสุดของ 20 วันก่อนหน้า (Breakout 20 วัน) เข้า Buy ที่ราคาปิดวันนั้น |
| Stop อยู่ไหน | ต่ำกว่าจุดเข้า 1.5 เท่าของ ATR 14 วัน (ตอนที่ 6) |
| ทำกำไรเมื่อไร | ราคาไปถึง 2 เท่าของระยะ Stop (2R) |
| ถือนานสุดกี่วัน | 40 วันทำการ ถ้ายังไม่ถึง Stop หรือเป้า ปิดที่ราคาปิดวันที่ 40 |
| ขนาดไม้ | เสี่ยงเท่ากันทุกไม้ (1R) ถือได้ทีละ 1 ไม้ |
| ต้นทุน | หัก $0.40 ต่อออนซ์ต่อไม้ แทน Spread และค่าธรรมเนียม |
ลองทดสอบระบบกับทอง 20 ปี
เครื่องมือนี้ใช้ราคาปิด XAUUSD รายวันจากคลังข้อมูลของเว็บ ตั้งแต่ พ.ค. 2549 ถึงวันล่าสุด เปลี่ยนสัญญาณ ฝั่ง ระยะ Stop เป้ากำไร ต้นทุน และช่วงปีได้ ผลคำนวณในเบราว์เซอร์ของคุณทันที
กำลังโหลดข้อมูล…
Profit Factor = กำไรรวมของไม้ที่ชนะ ÷ ขาดทุนรวมของไม้ที่แพ้ มากกว่า 1 แปลว่ากำไร “ถ้าสุ่มวันเข้าแทน” คือผลเฉลี่ยถ้าเข้าทุกวันในช่วงเดียวกันด้วย Stop เป้า และต้นทุนเดียวกัน ข้อจำกัด: ข้อมูลเป็นราคาปิดรายวัน จึงตรวจ Stop และเป้าด้วยราคาปิด และสมมติว่าออกได้ที่ราคา Stop หรือเป้าพอดี ในการเทรดจริง ราคาในวันอาจแตะ Stop ก่อน และอาจมีราคากระโดด
ผลของระบบตัวอย่าง (ค่าเริ่มต้นของเครื่องมือ) แยกตามฝั่งและช่วงเวลา
| ฝั่ง | 2549–2558 | 2559–2569 | ทั้ง 20 ปี | สุ่มวันเข้าทั้ง 20 ปี |
|---|---|---|---|---|
| Buy | 116 ไม้ · 47% · +0.39R | 150 ไม้ · 50% · +0.47R | +0.44R | +0.33R |
| Sell | 86 ไม้ · 36% · +0.05R | 81 ไม้ · 36% · +0.03R | +0.04R | −0.07R |
| ทั้งสองฝั่ง | 198 ไม้ · 43% · +0.27R | 227 ไม้ · 45% · +0.33R | +0.30R | +0.13R |
คำนวณโดย TradeRocket จากราคาปิด XAUUSD 1 พ.ค. 2549 – 8 ต.ค. 2569 (5,183 วันทำการ) แต่ละช่องเรียงเป็น จำนวนไม้ · อัตราชนะ · ผลเฉลี่ยต่อไม้
ฝั่ง Buy ทั้ง 20 ปี: 266 ไม้ ชนะ 49% Profit Factor 1.83 แพ้ติดกันนานสุด 6 ไม้ พอร์ตลดลงสูงสุด 8.3R (ก.ย. 2555 – ม.ค. 2557 ช่วงทองขาลง) ปีที่แย่ที่สุดคือ 2556, 2564 และ 2566 ติดลบปีละราว 3R ส่วนปี 2568 ได้ +18.8R
ผลดีเพราะฝีมือ หรือเพราะดวง
ลองคิดกลับด้าน ถ้าไม่มีระบบเลย แค่สุ่มวันซื้อ 30 ครั้ง ผลจะออกมาเป็นอย่างไร เราสุ่ม 4,000 รอบจากข้อมูลจริง แต่ละแท่งในกราฟคือจำนวนรอบที่ได้ผลเฉลี่ยต่อไม้ในช่วงนั้น แท่งสีทองคือรอบที่ได้ผลเท่ากับหรือดีกว่าระบบ Breakout
| จำนวนไม้ต่อรอบ | อัตราชนะ 90% ของรอบ | ผลเฉลี่ยต่อไม้ 90% ของรอบ | รอบที่ได้ผลเท่าระบบหรือดีกว่า |
|---|---|---|---|
| 30 ไม้ | 30–60% | −0.13R ถึง +0.77R | 37% |
| 100 ไม้ | 37–54% | +0.08R ถึง +0.59R | 26% |
| 300 ไม้ | 41–50% | +0.19R ถึง +0.47R | 12% |
คำนวณโดย TradeRocket จากราคาปิด XAUUSD สุ่มวันเข้า Buy 4,000 รอบต่อแถว ต้นทุน $0.40 ต่อไม้ ตัวเลขในเครื่องมือด้านบนอาจต่างเล็กน้อยตามข้อมูลวันล่าสุด
ความหมาย: ถ้าคุณทดสอบระบบด้วยมือได้ 30 ไม้ แล้วชนะ 55% ได้เฉลี่ย +0.5R ยังสรุปไม่ได้ว่าระบบดี เพราะการสุ่มซื้อทองให้ผลแบบนี้ได้บ่อย ต้องทดสอบให้ได้ อย่างน้อย 100 ไม้ และเทียบกับการสุ่มเข้าในช่วงเดียวกันเสมอ
กับดัก Overfitting: จูนให้เข้ากับอดีตเกินไป
Overfitting คือการลองตัวเลขหลายชุด แล้วเลือกชุดที่ผลย้อนหลังดีที่สุด ชุดนั้นมักดีเพราะบังเอิญเข้ากับความผันผวนของช่วงนั้น ไม่ใช่เพราะจับพฤติกรรมจริงของตลาด เราทดลองให้ดู: สร้างระบบ Sell 83–147 แบบ (Breakout และเส้นค่าเฉลี่ยตัดกัน ด้วย Stop และเป้าต่าง ๆ) เลือกแบบที่ดีที่สุดในช่วงหนึ่ง แล้วนำไปใช้ในช่วงถัดไปที่ไม่ได้ใช้เลือก
| การทดลอง | ช่วงที่ใช้เลือก | ช่วงถัดไป (ไม่ได้ใช้เลือก) |
|---|---|---|
| Sell แบบที่ดีที่สุด เลือกจาก 2 ปี (2566–2567) SMA 5 ตัด 50 · Stop 1 เท่า · เป้า 2R | 10 ไม้ · ชนะ 70% · +1.07R · PF 4.42 | 6 ไม้ · ชนะ 33% · −0.02R · PF 0.98 |
| Sell 10 แบบแรก เลือกจาก 2 ปี | เฉลี่ย +0.53R | เฉลี่ย −0.10R · ติดลบ 7 จาก 10 แบบ |
| Sell 10 แบบแรก เลือกจาก 10 ปี (2549–2558) | เฉลี่ย +0.33R | เฉลี่ย +0.14R · ติดลบ 4 จาก 10 แบบ |
| Buy 10 แบบแรก เลือกจาก 10 ปี (2549–2558) | เฉลี่ย +0.76R | เฉลี่ย +0.83R · ติดลบ 0 จาก 10 แบบ |
คำนวณโดย TradeRocket จากราคาปิด XAUUSD นับเฉพาะแบบที่มีอย่างน้อย 8 ไม้ในช่วงที่ใช้เลือก ต้นทุน $0.40 ต่อไม้ “ช่วงถัดไป” คือ 2568–2569 และ 2559–2569 ตามลำดับ
บทเรียนจากตาราง:
- ข้อมูลน้อยกับตัวเลือกเยอะ คือสูตรของ Overfitting เลือก 1 จาก 83 แบบด้วย 10 ไม้ ได้ระบบที่ชนะ 70% ซึ่งหายไปทันทีในปีถัดไป
- ระบบที่อยู่รอดมีเหตุผลรองรับ Buy ตามเทรนด์ทองยังใช้ได้ในช่วงใหม่ เพราะมีเหตุผลเชิงตลาด (ทองเป็นขาขึ้นระยะยาว จากปัจจัยในตอนที่ 1) ไม่ใช่เพราะตัวเลขพอดี
- แบ่งข้อมูลเสมอ ใช้ช่วงแรกตั้งค่า เก็บช่วงหลังไว้ทดสอบครั้งเดียว ถ้าผลช่วงหลังแย่ อย่ากลับไปจูนใหม่ด้วยข้อมูลช่วงหลัง เพราะจะกลายเป็นข้อมูลที่ใช้เลือกไปแล้ว
ทดสอบระบบของคุณเองทีละขั้น
- เขียนกติกา 6 ข้อให้ครบ ตามตารางในหัวข้อที่ 2 ถ้าข้อไหนต้องใช้ความรู้สึก ให้เปลี่ยนเป็นตัวเลขหรือเงื่อนไขที่ตรวจได้
- เลือกช่วงข้อมูลที่มีทั้งขาขึ้น ขาลง และไซด์เวย์ สำหรับทอง ควรรวมช่วงขาลงปี 2556 และไซด์เวย์ปี 2564–2566 ไม่ใช่แค่ช่วงทองขึ้นแรง แบ่งไว้ทดสอบภายหลังอย่างน้อย 30%
- เลือกเครื่องมือ เทรดด้วยมือใช้ TradingView Bar Replay ซ่อนแท่งอนาคตแล้วเลื่อนทีละแท่ง ระบบอัตโนมัติ (EA) ใช้ Strategy Tester ของ MT5 ที่มีโหมด Visualization ดูการเข้าออกบนกราฟ ระบบง่าย ๆ จากราคาปิดใช้ Excel หรือ Google Sheets ได้
- จดทุกไม้ อย่าเลือกจด วันที่ ราคาเข้า Stop เป้า ราคาออก ผลเป็น R ใช้แบบฟอร์มสมุดบันทึกใน ตอนที่ 10 ของคอร์ส 101 ได้
- หักต้นทุนจริง ใส่ Spread และค่าคอมมิชชั่นของบัญชีที่ใช้ (ดู หน้าเทียบต้นทุน) ยิ่ง Stop แคบ ต้นทุนยิ่งกินผล: Stop $5 บนกรอบเล็ก ต้นทุน $0.40 คือ 0.08R ต่อไม้
- ให้ได้ 100 ไม้ขึ้นไป แล้วเทียบกับการสุ่ม ดูผลเฉลี่ย Profit Factor พอร์ตลดลงสูงสุด และแพ้ติดกันนานสุด แล้วตั้งขนาดไม้ให้ทนช่วงลดลงนั้นได้ 2 เท่า
- ทดสอบกับช่วงที่เก็บไว้ แล้วเทรดบัญชีทดลอง Forward Test บนบัญชี Demo อย่างน้อย 1–3 เดือน ถ้าผลใกล้เคียง Backtest จึงเริ่มด้วยเงินจริงขนาดเล็ก
ทั้งสองโบรกมี Strategy Tester ใน MT5 ให้ใช้ทดสอบ EA · เทียบเงื่อนไขในตอนที่ 4 ของคอร์ส 101
ทดสอบความเข้าใจ
1. ระบบ Buy ทองทดสอบ 20 ปีได้ +0.44R ต่อไม้ ควรถามอะไรต่อ?
2. ทดสอบด้วยมือได้ 30 ไม้ ชนะ 55% สรุปได้ไหมว่าระบบดี?
3. เลือกระบบที่ดีที่สุดจาก 83 แบบ ได้ชนะ 70% ใน 10 ไม้ แต่ปีถัดไปขาดทุน เกิดจากอะไร?
4. ผลกับช่วงข้อมูลที่เก็บไว้ทดสอบออกมาแย่ ควรทำอย่างไร?
คำถามที่พบบ่อย
Backtest กับ Forward Test ต่างกันอย่างไร?
Backtest ใช้ข้อมูลในอดีตที่รู้ผลแล้ว ทำได้เร็วและได้หลายร้อยไม้ Forward Test คือเทรดตามกติกากับราคาที่เกิดขึ้นจริงจากวันนี้ไป ปกติบนบัญชีทดลอง ช้ากว่าแต่ได้เจอ Spread จริง การดำเนินคำสั่งจริง และอารมณ์ตัวเอง ควรทำทั้งสองแบบ
ต้องทดสอบกี่ไม้ถึงพอ?
ไม่มีตัวเลขตายตัว จากการสุ่มในบทนี้ 30 ไม้ยังแยกฝีมือกับดวงไม่ได้เลย 100 ไม้ดีขึ้น และแม้ 300 ไม้ ระบบที่ได้เปรียบแค่ 0.1R ก็ยังมีโอกาสราว 1 ใน 8 ที่ผลเท่ากันจะมาจากดวง ยิ่งระบบได้เปรียบน้อย ยิ่งต้องใช้ไม้มาก ถ้าระบบเกิดสัญญาณน้อย ให้ใช้ช่วงข้อมูลยาวขึ้น หรือทดสอบกับหลายตลาด
ทำไมผล Backtest มักดีกว่าเทรดจริง?
สาเหตุหลักคือ Overfitting, ไม่ได้หักต้นทุนครบ, ใช้ข้อมูลที่ยังไม่เกิดในขณะนั้นโดยไม่ตั้งใจ (เช่น ใช้ราคาปิดของแท่งที่ยังไม่ปิด), ราคากระโดดข้าม Stop และการที่คนไม่ทำตามกติกาตอนแพ้ติดกัน ควรคาดว่าผลจริงจะแย่กว่า Backtest
ใช้เครื่องมือในบทนี้แทนการทดสอบเองได้ไหม?
เครื่องมือนี้เหมาะกับการเรียนรู้แนวคิด เพราะใช้ราคาปิดรายวันอย่างเดียวและมีสัญญาณให้เลือกไม่กี่แบบ ระบบที่คุณจะใช้จริงควรทดสอบบนข้อมูลของโบรกที่เทรด ในกรอบเวลาที่ใช้จริง ด้วย Bar Replay หรือ Strategy Tester
แหล่งข้อมูลและเอกสารอ้างอิง (6)
- สมาคมค้าทองคำ — ต้นทางคลังข้อมูลราคาของ TradeRocket ซึ่งบันทึกราคา XAUUSD คู่กับราคาประกาศ ผลทดสอบทั้งหมดในบทนี้คำนวณโดย TradeRocket
- Bailey, D. H., Borwein, J. M., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the AMS, 61(5)
- Harvey, C. R., & Liu, Y. (2015). Backtesting. The Journal of Portfolio Management, 42(1)
- Sullivan, R., Timmermann, A., & White, H. (1999). Data-Snooping, Technical Trading Rule Performance, and the Bootstrap. The Journal of Finance, 54(5)
- TradingView — Bar Replay: how and why to test a strategy in the past
- MetaTrader 5 Help — Testing Visualization
บทความนี้เพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน ระบบในบทความเป็นตัวอย่างประกอบการสอน ผลทดสอบย้อนหลังคำนวณจากราคาปิดรายวัน และผลในอดีตไม่รับประกันอนาคต TradeRocket มีลิงก์พันธมิตรกับโบรกเกอร์ที่กล่าวถึง ผลิตภัณฑ์ที่มี Leverage มีความเสี่ยงสูงและอาจสูญเสียเงินลงทุนทั้งหมด