S5 · อ่านรายงาน .htm และ summary.csv
▶ clip: https://youtu.be/feYH9bGsaZY
จบบทนี้แล้วทำได้:
- อ่านรายงาน backtest ของ MT5 ตามลำดับที่ถูก และรู้ว่าเมื่อไรต้องทิ้งรายงานทั้งใบโดยไม่อ่านต่อ
- บอกได้ว่า drawdown สองแถวในรายงานต่างกันยังไง และต้องใช้แถวไหน
- แยกตัวเลขที่ใช้ตัดสินได้ ออกจากตัวเลขที่ใช้เป็นข้อมูลประกอบเท่านั้น
- ใช้
summary.csvกรองรายงานหลายใบในครั้งเดียว
ต้องมีก่อน: ติดตั้ง kit ตาม M0-LAB แล้ว · รายงานที่ใช้ในบทนี้อยู่ใน kit ที่ lab\reports\ ไม่ต้อง run backtest เอง
1 · ลำดับการอ่านรายงาน

คนส่วนใหญ่เปิดรายงานแล้วดู Total Net Profit ก่อน นี่คือลำดับที่ผิด เพราะถ้าข้อมูลที่ใช้ test เชื่อไม่ได้ ตัวเลขทุกตัวหลังจากนั้นก็เชื่อไม่ได้ทั้งหมด อ่านตามลำดับนี้แทน
| ลำดับ | ดูบรรทัด | ถามว่า | ถ้าไม่ผ่าน |
|---|---|---|---|
| 1 | History Quality | real ticks ถึง 90% ไหม | ทิ้งรายงานทั้งใบ ไม่ต้องอ่านต่อ |
| 2 | Symbol · Period · Initial Deposit และ leverage | ตรงกับแผนที่ตั้งไว้ไหม | run ผิด config ต้อง run ใหม่ |
| 3 | Equity Drawdown Relative | ร่วงหนักสุดกี่ % | ดูหัวข้อ 2 |
| 4 | ราย trade | ผลมาจาก trade ส่วนใหญ่ หรือมาจากไม่กี่ trade | ดูใน S6 |
| สุดท้าย | Total Net Profit | — | — |
ทำไม History Quality ต้องมาก่อน: ถ้าในช่วงที่ขอไม่มี tick จริง MT5 จะไม่เตือนอะไร มันสร้าง tick จากแท่ง M1 ขึ้นมาแทนเงียบ ๆ ตั้ง model เป็น "Every tick based on real ticks" ก็ไม่ช่วย ทางเดียวที่จะรู้ว่าเกิดขึ้นคือบรรทัด History Quality ในรายงาน ถ้าต่ำกว่า 90% แปลว่ามี tick จำนวนมากที่ MT5 สร้างขึ้นเอง ผลของ EA ที่ไวต่อราคาในแท่ง เช่น EA ที่ใช้ trailing หรือ SL แคบ จะผิดไปจากของจริงได้มาก
ทำไมกำไรเป็นเงินดูท้ายสุด: ตัวเลขนี้ขึ้นกับขนาด lot การ compounding และ contract size ของ symbol (XAUUSD กับ XAUUSDc ต่างกัน 100 เท่า) จึงไม่ได้บอกคุณภาพของกลยุทธ์โดยตรง
2 · Drawdown: ใช้แถว Relative ไม่ใช่ Maximal

รายงาน MT5 มี Equity Drawdown สองแถว และสองแถวนี้วัดคนละอย่าง
| แถว | วัดอะไร | ปัญหา |
|---|---|---|
| Maximal | ขาดทุนเป็นเงินก้อนใหญ่ที่สุด แล้วคิดเป็น % ณ จุดนั้น | บนเส้นที่ compounding เงินก้อนใหญ่สุดมักเกิดตอนทุนโตแล้ว % จึงดูเล็ก |
| Relative | ร่วงเป็น % มากที่สุด | — นี่คือตัวที่ใช้ และเป็นตัวที่ prop firm วัด |
บรรทัดจริงจากรายงาน Robo ใน lab (lab\reports\tick-quality\Robo\A1-base.htm):
Equity Drawdown Maximal: 6 480.00 (24.67%)
Equity Drawdown Relative: 33.70% (4 776.00)
อ่านแบบนี้:
- Maximal บอก 24.67% เพราะเงิน 6,480 หายไปตอนทุนโตแล้ว
- Relative บอก 33.70% เกิดตอนทุนยังเล็ก เงินหายแค่ 4,776 แต่คิดเป็น % แล้วมากกว่า
- ถ้าเกณฑ์คือ DD ไม่เกิน 30% อ่าน Maximal จะผ่าน อ่าน Relative จะตก คำตอบที่ถูกคือตก
ระวัง: MT5 พิมพ์สองแถวนี้กลับด้านกัน แถว Maximal เป็น
เงิน (%)แต่แถว Relative เป็น% (เงิน)ถ้าอ่านเร็ว ๆ จะหยิบตัวเลขผิดตำแหน่ง
case จริงจากงานวิจัยของผู้สอน: รายงานหนึ่งขึ้น Maximal 12.8% แต่ของจริงคือ 99.8% ปัญหานี้กระทบ 463 จาก 4,375 run และเคยต้องถอนข้อสรุปที่ publish ไปแล้ว
3 · ตัวเลขที่ห้ามใช้ตัดสิน

| ดูเป็นข้อมูลประกอบได้ | ตัดสินด้วย |
|---|---|
| Profit Factor | ค่าเฉลี่ย R ต่อ trade (E[R]) |
| win rate | พร้อมช่วงความเชื่อมั่น (CI) |
| กำไรเป็นเงิน | — สอนใน S6 |
ตัวเลขฝั่งซ้ายขึ้นกับ lot การ compounding และ contract size จึงเทียบข้าม broker หรือข้ามบัญชีไม่ได้
ถ้าเป็นบัญชี cent ต้องหาร 100 ก่อนทำอย่างอื่น กำไรในรายงานบัญชี cent เป็นหน่วย cent ถ้าเอาไปคิด R หรือเทียบกับบัญชี USD ตรง ๆ ตัวเลขจะพองขึ้น 100 เท่าโดยไม่มีอะไรเตือน
case partial close — ทุกตัวเลขดีขึ้น แต่กลยุทธ์แย่ลง
| ก่อน | หลังเพิ่ม partial close | |
|---|---|---|
| Profit Factor | 2.02 | 2.30 ↑ |
| drawdown | 15.1% | 9.7% ↑ |
| win rate | 62% | 80% ↑ |
| E[R] ต่อ trade | +0.169 | +0.017 ↓ |
| กำไรจริง | ลดลง 42% ↓ |
ทำไมเป็นแบบนี้: partial close ปิดกำไรบางส่วนเร็วขึ้น trade ที่เคยจบเสมอหรือแพ้นิดหน่อยจึงกลายเป็นชนะนิดหน่อย win rate เลยขึ้น และ drawdown ลด แต่ trade ที่เคยวิ่งไปได้ไกลก็ถูกปิดไปบางส่วนก่อนถึงเป้าด้วย กำไรต่อ trade เฉลี่ยจึงหายไปเกือบหมด ถ้าดูแค่ตัวเลขฝั่งซ้ายจะสรุปผิดว่าดีขึ้น
4 · summary.csv — column ที่ใช้จริง

เมื่อมีรายงานหลายใบ bt\ea-bt.exe run รวมตัวเลขไว้ให้ใน summary.csv (และ summary.html) ที่ folder backtest_root ใน config ของคุณ หนึ่งแถวต่อหนึ่งรายงาน
| column | ใช้ทำอะไร |
|---|---|
history_quality |
กรองก่อนอย่างอื่น ต่ำกว่า 90% ทิ้งแถว |
equity_dd_rel_pct |
drawdown แถว Relative ความเสี่ยงที่ prop firm วัด |
payoff · win_rate_pct |
ใช้คู่กัน ดูใน S6 |
exit_sl_pct · sl_win_pct |
% ของ trade ที่ปิดด้วย SL · และ % ของ trade ที่ปิดด้วย SL แล้วยังกำไร บอกว่า trailing lock กำไรได้แค่ไหน |
profit_factor · profit |
ข้อมูลประกอบ เทียบข้ามแถวไม่ได้ ถ้าทุนต่างกัน |
ตัวอย่างบนจอ: แถว Inter ตกตั้งแต่ column แรก ทั้งที่ Profit Factor 15.12 สูงสุดในตาราง ส่วน column profit เทียบกันไม่ได้ เพราะ Inter ทุน 1,000 แต่อีกสองใบทุน 10,000
summary ไม่มีทุกอย่าง เช่น drawdown รายวัน และ lot ที่ถูกตัดเพราะชน volume_max ต้องใช้เครื่องมืออื่น
Lab · คัดรายงานที่ใช้ไม่ได้ทิ้ง

รายงานสามใบใน lab\reports\tick-quality\ เป็น EA ตัวเดียวกัน (TWISTER_CLONE) preset A1-base เดียวกัน ต่างกันแค่ broker
ขั้นที่ 1 เปิดแต่ละใบใน browser แล้วจดบรรทัดตามลำดับในหัวข้อ 1
lab\reports\tick-quality\Inter\A1-base.htm
lab\reports\tick-quality\Robo\A1-base.htm
lab\reports\tick-quality\Exness\A1-base.htm
ขั้นที่ 2 ตัดสินว่าใบไหนทิ้ง และใบที่เหลือต้องอ่าน drawdown แถวไหน ทุกคำตอบต้องอ้างบรรทัดจริงใน file
ขั้นที่ 3 (ทำต่อใน S6) run mc กับทั้งสามใบ แล้วจด E[R] กับ bootstrap 95%
bt\ea-bt.exe mc lab\reports\tick-quality\Inter\A1-base.htm
bt\ea-bt.exe mc lab\reports\tick-quality\Exness\A1-base.htm
bt\ea-bt.exe mc lab\reports\tick-quality\Robo\A1-base.htm
ส่งคำตอบเป็น file research\4-backtest\_lab\<ชื่อคุณ>\L1.md
เฉลย — ทำเองก่อนแล้วค่อยเปิด
ค่าจากรายงานจริงทั้งสามใบ:
| Inter | Robo | Exness | |
|---|---|---|---|
| Symbol | XAUUSD.v | XAUUSD | XAUUSDc |
| Period | M5 · 2026.01.01–07.26 | M5 · 2026.01.01–07.29 | M5 · 2026.01.01–07.29 |
| Initial Deposit | 1 000.00 | 10 000.00 | 10 000.00 |
| History Quality | 17% real ticks | 100% real ticks | 100% real ticks |
| Profit Factor | 15.12 | 1.30 | 3.06 |
| Total Trades | 253 | 256 | 244 |
| Equity DD Maximal | 12.20 (0.57%) | 6 480.00 (24.67%) | 11.28 (0.11%) |
| Equity DD Relative | 0.57% (12.20) | 33.70% (4 776.00) | 0.11% (11.28) |
- Inter — ทิ้งทันที real ticks 17% ต่ำกว่า 90% ไม่ต้องอ่านบรรทัดอื่น แม้ Profit Factor 15.12 จะสูงสุดในสามใบ ตัวเลขจากข้อมูลที่ MT5 สร้างขึ้นเองบอกอะไรเกี่ยวกับ EA ไม่ได้
- Robo — ใช้ได้ แต่ drawdown คือแถว Relative 33.70% ไม่ใช่ Maximal 24.67% ใบนี้คร่อมเส้น 30% พอดี อ่าน Maximal จะผ่าน อ่าน Relative จะตก
- Exness — ใช้ได้ Relative 0.11% สองแถวเท่ากันเพราะ drawdown ต่ำมาก · symbol
XAUUSDcเป็นบัญชี cent ก่อนเอากำไรไปเทียบกับ Robo ต้องหาร 100 - ทั้งสามใบอยู่ในช่วง ม.ค.–ก.ค. 2026 ซึ่งเป็นช่วงข้อมูลที่ใช้ไปแล้ว ผลที่ได้จึงตอบไม่ได้ว่า EA จะทำได้แบบนี้ในช่วงข้อมูลใหม่
จุดที่มักพลาด
| พลาด | ผลที่ตามมา | ทางกัน |
|---|---|---|
| ดู Total Net Profit ก่อน | เชื่อรายงานที่ข้อมูลปลอม | อ่าน History Quality ก่อนทุกครั้ง |
| ใช้ DD แถว Maximal | DD ต่ำกว่าความจริง ผ่านเกณฑ์ทั้งที่ควรตก | ใช้แถว Relative เสมอ |
| หยิบตัวเลขผิดตำแหน่งในแถว Relative | ได้เงินแทน % | จำว่าแถว Relative พิมพ์ % (เงิน) |
เทียบ profit ข้ามแถวใน summary |
สรุปว่าใบที่ทุนใหญ่กว่าดีกว่า | เทียบด้วย E[R] ใน S6 |
| ลืมหาร 100 บนบัญชี cent | ตัวเลขพอง 100 เท่า | ดู symbol / สกุลเงินบัญชีก่อน |
| เห็นทุกตัวเลขดีขึ้นแล้วสรุปว่าดีขึ้น | พลาดแบบ case partial close | ตัดสินด้วย E[R] ต่อ trade |
ทวนท้ายบท

- รายงานสามใบ EA เดียวกัน ใบที่ Profit Factor สูงสุด 15.12 ควรเป็นใบที่เชื่อมากที่สุดไหม ต้องดูอะไรก่อน
- รายงานขึ้น Maximal 24.67% แต่ Relative 33.70% เกณฑ์ drawdown คือ 30% ผ่านหรือตก
- เพิ่ม partial close แล้ว Profit Factor, drawdown และ win rate ดีขึ้นหมด สรุปว่าดีกว่าได้ไหม
เฉลย
- ไม่ ต้องดู History Quality ก่อน ใบนั้นมี real ticks 17% ต่ำกว่า 90% ทิ้งเลย และทุนก็ไม่เท่ากัน (1,000 กับ 10,000) เทียบเป็นเงินไม่ได้
- ตก ต้องใช้แถว Relative 33.70% เพราะบนเส้น compounding แถว Maximal ต่ำกว่าความจริงเสมอ
- ไม่ได้ E[R] ต่อ trade ตกจาก +0.169 เหลือ +0.017 และกำไรจริงลดลง 42%