เขียนเกณฑ์ผ่าน/ตก
▶ clip: https://youtu.be/BXRWLZY2pI8 — B2 · เขียนเกณฑ์ผ่าน/ตก ก่อน run (บทเสริม · 9 นาที · ดูหลัง S4-LAB ก่อนทดสอบ EA ของตัวเอง)
หน้านี้ใช้ก่อนกด run ทุกครั้ง · มันไม่ได้ให้ข้อความไป copy แต่สอนว่าเกณฑ์แต่ละข้อถามอะไร ทำไมต้องถาม ค่าตัวเลขมาจากไหน ส่วนไหนเป็นสถิติ ส่วนไหนเป็นการตัดสินใจของคุณเอง และเขียนยังไงให้ตรวจได้จริงหลัง run
อ่านก่อน: แนะนำระบบ backtest · ใช้คู่กับ: ทดสอบ EA ของตัวเอง ขั้นที่เขียนเกณฑ์ · ตัวเลขในหน้านี้มาจาก docs\ea-screen-criteria.md ของ kit, รายงานใน lab\reports\ และ output จริงของ bt\ea-bt.exe
1 · ทำไมต้องเขียนก่อน run
ลองนึกว่า run เสร็จแล้วค่อยตัดสิน: E[R] เป็นบวกแต่ CI คร่อมศูนย์ · DD 33% · ชนะ 46% — ถ้ายังไม่มีเกณฑ์ คุณจะเริ่มหาเหตุผลให้มันผ่านโดยไม่รู้ตัว "DD 33% ก็ไม่ได้แย่มาก" · "CI คร่อมนิดเดียว" · "ลองดูแค่ช่วงหลังดีกว่า" — ผลเป็นตัวเลือกเกณฑ์แทนคุณ แล้วทุก EA จะผ่าน
เกณฑ์ที่เขียนก่อน run ทำหน้าที่อย่างเดียว: ทำให้คำตัดสินไม่ขึ้นกับว่าคุณอยากให้ผลออกมาแบบไหน
case จริงใน docs\ea-screen-criteria.md: EA ชื่อ Zerqon เคย "ผ่าน" เพราะเกณฑ์เดิมเขียนแค่ "E[R] เป็นบวก" · พอเปลี่ยนเกณฑ์เป็น "CI ล่าง > 0" มันกลายเป็น "ยังตัดสินไม่ได้" (CI −0.156 ถึง +1.119) — ข้อมูลไม่ได้เปลี่ยน เกณฑ์เปลี่ยน · เอกสารจึงจดไว้ว่านี่คือการเปลี่ยนเกณฑ์ ไม่ใช่การเจอข้อมูลใหม่ และการเปลี่ยนแบบนี้ใช้กับรอบถัดไปเท่านั้น
กติกา: เขียนก่อน run · ห้ามแก้หลังเห็นผล · ถ้าพบว่าเกณฑ์ตั้งผิด ให้เขียนเพิ่มว่าผิดตรงไหน (ห้ามลบของเดิม) แล้วใช้เกณฑ์ใหม่กับรอบถัดไป
2 · เกณฑ์ที่ดีหน้าตาเป็นยังไง
| ต้องมี | ตัวอย่างที่ใช้ไม่ได้ | ตัวอย่างที่ใช้ได้ |
|---|---|---|
| เป็นตัวเลข | "drawdown ไม่สูงเกินไป" | Equity DD Relative ≤ 30% |
| บอกว่าวัดจากไหน | "กำไรดี" | E[R] จาก mc --daily บรรทัด bootstrap 95% |
| วัดได้จาก output ที่มีจริง | "EA ไม่ overfit" | ตัด 3 trade กำไรสูงสุดจากตาราง Deals แล้วยังบวก |
| แยกผลได้สามทาง | ผ่าน / ไม่ผ่าน | ผ่าน · ตก · ยังตัดสินไม่ได้ (ข้อ 6) |
| ไม่ใช้ตัวเลขที่ขึ้นกับขนาด lot | Profit Factor ≥ 1.5 · กำไร ≥ 1,000 | E[R] (หน่วย R ไม่ขึ้นกับ lot · บท S5–S6) |
ทำไม Profit Factor, win rate และกำไรเป็นเงินใช้เป็นเกณฑ์ไม่ได้: บท S5 มี case partial close ที่ Profit Factor ขึ้นจาก 2.02 เป็น 2.30, win rate ขึ้นจาก 62% เป็น 80%, DD ลดจาก 15.1% เหลือ 9.7% — ดีขึ้นทุกตัว แต่กำไรจริงลดลง 42%
3 · เริ่มจากคำถามข้อเดียว
หัวข้อแรกของ research\3-prereg\prereg-template.md คือ "คำถามข้อเดียว" · เกณฑ์ทุกข้อต้องตอบคำถามนี้ ไม่ใช่ตอบเรื่องอื่น
| คำถามที่ดี | ทำไมดี |
|---|---|
| "BreakoutLab V0.01 ค่า default มี E[R] > 0 บน XAUUSD H1 ช่วง IS 2026 ไหม" | ระบุ EA · version · preset · สินค้า · TF · ช่วง ครบ · ตอบได้ด้วยใช่/ไม่ใช่/ยังไม่รู้ |
| "SL 10 USD กับ 15 USD ตัวไหนให้ E[R] สูงกว่า บน IS 2026" | เปรียบเทียบสองตัว · นับเป็น 2 การทดสอบใน ledger |
| คำถามที่ไม่ดี | ปัญหา |
|---|---|
| "EA นี้ดีไหม" | "ดี" วัดไม่ได้ · ไม่บอกช่วง ไม่บอก TF |
| "หา setting ที่ดีที่สุด" | ไม่ใช่คำถาม คือการค้นหา · ทุก setting ที่ลองต้องนับใน ledger (ข้อ 5) |
ประโยคที่สองของหัวข้อนี้คือ "ผลแบบไหนจะเปลี่ยนการตัดสินใจ" — เขียนไว้เลยว่า ผ่านแล้วจะทำอะไร ตกแล้วจะทำอะไร เช่น "ผ่าน → run OOS 2026 · ตก → ปิด case · ยังตัดสินไม่ได้ → run IS 2025 เพิ่ม" · ถ้าเขียนไม่ได้ว่าผลจะเปลี่ยนอะไร แปลว่าไม่จำเป็นต้อง run
4 · เกณฑ์หกข้อ S1–S6 ทีละข้อ
ชุดตั้งต้นของคอร์สอยู่ใน docs\ea-screen-criteria.md · ตารางของแต่ละข้อแยกให้เห็นว่า ส่วนไหนมาจากคณิต/สถิติ (เปลี่ยนตามใจไม่ได้) และ ส่วนไหนเป็นค่าที่ตั้งขึ้น (คุณเลือกเองได้ แต่ต้องเลือกก่อน run)
ตรงไปตรงมา: เอกสารเกณฑ์ของ kit เขียนไว้เองว่า ตัวเลข 10 วัน · 10% · DD 30% · ตัด 3 trade ถูกเลือกขึ้น ไม่ได้มาจากการวัด · ใช้เป็นจุดเริ่มได้ แต่ถ้าคุณมีเหตุผลที่จะใช้ค่าอื่น ให้ใช้และเขียนเหตุผลไว้ก่อน run
S1 · ข้อมูลใช้ได้ — History Quality ≥ 90%
| ถามว่า | รายงานนี้ใช้ tick จริงหรือ tick ที่ MT5 ปั้นขึ้นเอง |
| ทำไม | ถ้าช่วงที่ขอไม่มี tick จริง MT5 สร้าง tick จากแท่ง M1 โดยไม่เตือน ผลออกมาดูปกติแต่ไม่บอกอะไรเกี่ยวกับ EA · case ใน lab: รายงาน Inter มี real ticks 17% แต่ Profit Factor 15.12 สูงสุดในสามใบ |
| ค่าตั้งต้น | 90% · ค่าที่ตั้งขึ้น |
| ปรับเมื่อไร | แทบไม่ต้องปรับ · EA ที่ SL แคบหรือ trail ใกล้ไวต่อ tick ปลอมมาก ควรเข้มขึ้น ไม่ใช่หลวมลง |
| วัดจาก | .htm บรรทัด History Quality · summary.csv column history_quality |
| ไม่ผ่าน | ไม่อ่านต่อ · ดึง tick ใหม่ (tick_depth --from) หรือเปลี่ยนช่วง/broker |
S2 · หลักฐานกระจายพอ — วันที่มี trade ≥ 10 วัน และ ≥ 10% ของวันที่ตลาดเปิด
| ถามว่า | ผลมาจากหลายเหตุการณ์ หรือแค่ไม่กี่วัน |
| ทำไม | trade ในวันเดียวกันมักโดนตลาดชุดเดียวกัน ไม่ใช่หลักฐานอิสระ · ตัวอย่างจริง: EA บน M1 ยิง 696 trade ใน 2 วัน = 2 เหตุการณ์ (บัญชีแตก) · EA บน H4 ยิง 15 trade ใน 12 วัน = 12 เหตุการณ์ (ผลดี) · สิ่งที่นับคือ วัน ไม่ใช่ trade (บท S6 หัวข้อ 2) |
| ค่าตั้งต้น | 10 วัน · 10% · ค่าที่ตั้งขึ้น |
| ปรับเมื่อไร | EA ที่ TF สูง (H4) ยิงน้อยเป็นเรื่องปกติ — ไม่ต้องลดเกณฑ์ ให้ใช้ช่วงยาวขึ้นแทน · TF ต่ำ (M1) ที่ยิงน้อยมากต้องสงสัยว่ามีตัวกรองซ่อนหรือ EA พัง |
| วัดจาก | mc --daily → days N · ส่วน 10% ยังไม่มีคำสั่งนับวันที่ตลาดเปิด (นับจากปฏิทินเอง: IS 2026 มี 102 วันที่ตลาดเปิดตาม docs\ea-screen-criteria.md → 10% ≈ 11 วัน) |
| ไม่ผ่าน | ยังตัดสินไม่ได้ (ไม่ใช่ตก) · run ช่วงเพิ่ม |
S3 · มี edge จริงไหม — E[R] > 0 และ CI ล่าง > 0 และ t ≥ เส้นจาก ledger
นี่คือข้อหลัก และเป็นข้อเดียวที่มาจากสถิติ
| ถามว่า | mean ของกำไรต่อหน่วยความเสี่ยงเป็นบวกจริง หรือบวกเพราะโชค |
| R คืออะไร | กำไร/ขาดทุนของ trade ÷ เงินที่เสี่ยงในไม้นั้น · แพ้เต็ม SL = −1R · ไม่ขึ้นกับขนาด lot จึงเทียบข้าม broker / ทุนได้ |
| E[R] > 0 | mean เป็นบวก — ไม่พอ mean จากข้อมูลน้อยแกว่งมาก |
| CI ล่าง > 0 | ช่วงความเชื่อมั่น 95% จาก bootstrap สุ่มทั้งวัน อยู่เหนือศูนย์ทั้งช่วง · ถ้าช่วงคร่อมศูนย์ = ข้อมูลยังไม่พอจะบอกว่าบวก (สุ่มรายวัน ไม่ใช่ราย trade เพราะ trade วันเดียวกันไม่อิสระ — สุ่มราย trade ให้ CI แคบเกินจริง) |
| t ≥ เส้น | t ≈ E[R] ÷ (sd ÷ √n) = mean ห่างจากศูนย์กี่เท่าของความแกว่ง · เส้นขึ้นกับจำนวนการทดสอบที่คุณทำไปแล้ว (ข้อ 5) |
| ค่าตั้งต้น | ระดับความเชื่อมั่น 95% (α 5%) · ค่ามาตรฐานทางสถิติ · เส้น t ขึ้นกับ k จาก ledger — คำนวณ ไม่ได้เลือก |
| วัดจาก | mc ... --daily → E[R] ... (bootstrap 95% a..b) และ t |
| ไม่ผ่าน | E[R] ≤ 0 = ตก · E[R] > 0 แต่ CI คร่อมศูนย์ = ยังตัดสินไม่ได้ |
ตัวอย่างจริงจาก lab (รายงาน Robo): mc ให้ E[R] +0.163 ช่วง −0.054 ถึง +0.400 → คร่อมศูนย์ = ยังตัดสินไม่ได้ แม้ mean จะบวก
S4 · ไม่พึ่งไม่กี่ trade — ตัด 3 trade กำไรสูงสุดแล้วยังบวก
| ถามว่า | กำไรทั้งรอบมาจาก trade ส่วนใหญ่ หรือมาจากโชคไม่กี่ไม้ |
| ทำไม | ถ้าตัด 3 ไม้ออกแล้วติดลบ แปลว่าผลขึ้นกับเหตุการณ์ที่อาจไม่เกิดซ้ำ · จากกองจริง: EA ที่กำไร +7,661 พอตัด 5 วันดีสุดเหลือ −1,781 |
| ค่าตั้งต้น | 3 trade (หรือ 5 วันดีสุดสำหรับ EA ที่ยิงถี่) · ค่าที่ตั้งขึ้น |
| ปรับเมื่อไร | EA ที่ออกแบบให้กินหางยาว (trail ไกล ชนะน้อยแต่ชนะใหญ่) จะตกข้อนี้ง่ายโดยธรรมชาติ — ถ้าตั้งใจทดสอบแบบนั้น ให้เขียนไว้ก่อน run ว่าใช้ช่วงยาวขึ้นแทน ไม่ใช่ตัดข้อนี้ทิ้งหลังเห็นผล |
| วัดจาก | ตาราง Deals ใน .htm (ยังไม่มีคำสั่งทำให้) · รวมกำไรสุทธิ ลบ 3 ไม้กำไรมากสุด |
| ไม่ผ่าน | ตก |
S5 · ความเสี่ยงอยู่ในกรอบ — Equity DD Relative ≤ 30%
| ถามว่า | ระหว่างทางทุนร่วงลึกสุดกี่ % |
| ทำไม | กำไรสุดท้ายไม่บอกว่าระหว่างทางคุณต้องทนอะไร · DD ลึกมากคือจุดที่คนจริงจะปิด EA ทิ้ง หรือ prop firm ตัดบัญชี |
| ใช้แถวไหน | Relative ไม่ใช่ Maximal · บนเส้นที่ compounding แถว Maximal ต่ำกว่าความจริงเสมอ (lab Robo: Maximal 24.67% แต่ Relative 33.70%) · บท S5 |
| ค่าตั้งต้น | 30% · ค่าที่ตั้งขึ้น ตามความเสี่ยงที่รับได้ |
| ปรับเมื่อไร | ตั้งจากกติกาที่คุณต้องอยู่ใต้มันจริง เช่น ถ้าบัญชีปลายทางมีเพดาน DD 10% เกณฑ์ต้องต่ำกว่านั้น · DD ขึ้นกับ risk% ต่อไม้ใน config — เปลี่ยน risk แล้ว DD เปลี่ยน เกณฑ์ต้องเขียนคู่กับ risk ที่ใช้ |
| ระวัง | DD ในรายงานคือลำดับ trade ที่เกิดจริงครั้งเดียว ไม่ใช่เพดาน · ลำดับอื่นลึกกว่าได้ ดู DD p95 จาก shuffle ใน mc (บท S6 หัวข้อ 3) |
| วัดจาก | .htm แถว Equity Drawdown Relative (MT5 พิมพ์ % (เงิน)) · summary.csv column equity_dd_rel_pct |
| ไม่ผ่าน | ตก |
S6 · ชนะมากพอสำหรับรูปทรงของมัน — win% > 1 ÷ (1 + payoff)
| ถามว่า | win rate ที่เห็นสูงพอจะคุ้มกับขนาดที่ชนะ/แพ้หรือไม่ |
| payoff | กำไรเฉลี่ยของไม้ชนะ ÷ ขาดทุนเฉลี่ยของไม้แพ้ |
| สูตรมาจากไหน | คณิตล้วน · ถ้าชนะ w ของเวลา ได้ payoff P เท่าของที่เสีย กำไรเฉลี่ยต่อไม้ = w·P − (1−w)·1 · จะเป็นบวกเมื่อ w > 1 ÷ (1 + P) · เช่น payoff 1.5 → ต้องชนะเกิน 40% |
| ทำไม | win rate สูงไม่ได้แปลว่าดี · TP แคบ + SL กว้าง ได้ win 80% ฟรี ๆ จากรูปทรง แต่แพ้ไม้เดียวกินกำไรหลายไม้ |
| ค่าตั้งต้น | ไม่มีค่าให้เลือก — คำนวณจาก payoff ที่วัดได้ |
| วัดจาก | .htm: Profit Trades (% of total) · Average profit trade · Average loss trade · หรือ verdict column win% เทียบ need% |
| ตัวอย่าง | lab Robo: verdict ให้ win 45.7% · need 39.3% → ผ่านข้อนี้ |
5 · จำนวนการทดสอบ — เส้น t ใน ledger
ยิ่งลองหลายตัว ยิ่งมีโอกาสเจอตัวที่ "ผ่าน" เพราะโชคล้วน
โอกาสเจอ "ผ่าน" อย่างน้อยหนึ่งตัวจากโชค = 1 − (1 − α)^k
α = 5% · k = 10 → 40%
ทางแก้คือขยับเส้นให้สูงขึ้นตามจำนวนการทดสอบ k (วิธี Šidák) · ทุกการทดสอบที่ "มีสิทธิ์ถูกเลือก" ต้องลงหนึ่งบรรทัดใน research\3-prereg\sidak-ledger.md ก่อนกด run
| k (จำนวนการทดสอบสะสม) | α ต่อการทดสอบ | t ที่ต้องได้ |
|---|---|---|
| 1 | 0.05000 | 1.96 (ระบบใช้ 2.00) |
| 2 | 0.02532 | 2.24 |
| 3 | 0.01695 | 2.39 |
| 5 | 0.01021 | 2.57 |
| 10 | 0.00512 | 2.80 |
| 15 | 0.00341 | 2.93 |
| 20 | 0.00256 | 3.02 |
| 50 | 0.00103 | 3.28 |
คำนวณจาก α_k = 1 − 0.95^(1/k) แล้วหา z สองข้าง · ค่า k = 15 ตรงกับที่ verdict --trials 15 พิมพ์ (2.00 -> 2.93)
นับอะไรบ้าง (จากหัว sidak-ledger.md):
| นับ | ไม่นับ |
|---|---|
| ทุก setting / ทุก EA ที่ได้ตัวเลขและมีสิทธิ์ถูกเลือกเป็นผู้ชนะ | ตัวที่ถูกหยุดก่อนมีรายงาน (เส้นทุนดิ่ง) |
| คำถามเดียวกันที่ run หลายปี / หลาย broker = 1 | การ run ซ้ำเพื่อเทียบ (control) · การทดสอบวินิจฉัยกลไก |
ทำไมต้องซื่อสัตย์กับ ledger: ถ้าลอง 20 setting แล้วจดแค่ตัวที่ดีที่สุด เส้นจะเป็น 2.00 ทั้งที่ควรเป็น 3.02 · ตัวที่ "ผ่าน" แบบนี้คือโชคที่ถูกคัดมา
⚠
verdict --trialsยังมี bug: พิมพ์เส้นที่ขยับแล้ว แต่ columnresultยังตัดสินด้วย 2.00 · เทียบ t กับเส้นด้วยตาเอง
6 · ต้องใช้กี่ trade — คิดก่อน run ด้วย power
ก่อน run ให้ถามว่า ช่วงนี้จะได้ข้อมูลพอให้ S3 ตอบได้ไหม · ถ้าไม่พอ ผลจะออก "ยังตัดสินไม่ได้" แทบแน่นอน และคุณควรรู้ตั้งแต่ก่อนกด
n ≈ 7.84 × (σ ÷ δ)² δ = edge ที่คาด (R ต่อ trade) · σ = ความแกว่ง (R)
| คำสั่ง (output จริง) | อ่านว่า |
|---|---|
bt\ea-bt.exe power --edge 0.3 → needs 88 trades |
ถ้า edge จริง 0.3R ต้องมี ~88 trade ถึงจะเห็นได้ 80% ของครั้ง |
bt\ea-bt.exe power --edge 0.2 → needs 197 trades |
edge เล็กลง ต้องการข้อมูลมากขึ้นแบบยกกำลังสอง |
bt\ea-bt.exe power --edge 0.1 → needs 785 trades |
edge 0.1R ต้องใช้ ~785 trade |
bt\ea-bt.exe power --from lab\reports\tick-quality\Robo\A1-base.htm → 256 trade · edge 0.128R -> power 54% · needs 478 trades for power 80% — short by 222 |
รายงาน lab มีข้อมูลไม่พอ: ถ้า edge จริงเท่าที่เห็น การทดสอบแบบนี้จับได้แค่ 54% ของครั้ง |
δ เอามาจากไหน: ไม่มีใครรู้ edge จริงก่อน run · ให้เลือกค่า "edge ที่เล็กที่สุดที่คุ้มจะใช้" (เช่น 0.2R) แล้วถามว่าช่วงนี้ให้ trade ถึงไหม · ถ้า EA บน H1 ช่วง 4 เดือนน่าจะยิง ~30 trade แต่ต้องการ 197 → เขียนไว้ใน prereg ล่วงหน้าเลยว่า "รอบนี้คาดว่าจะยังตัดสินไม่ได้ ต้องใช้หลายช่วงรวมกัน"
7 · ผลสามแบบ — เขียนไว้ก่อนว่าแต่ละแบบจะทำอะไร
ตรวจ "ตก" ก่อน แล้วค่อย "ยังตัดสินไม่ได้" แล้วค่อย "ผ่าน"
| ป้าย | เมื่อไร | ทำอะไรต่อ |
|---|---|---|
| ตก | ตก S5 · หรือ E[R] ≤ 0 · หรือตก S4 · หรือ DD ≥ 30% พร้อมกำไร ≤ 0 | ปิด case · status.yaml state ตก |
| ยังตัดสินไม่ได้ | E[R] > 0 แต่ CI คร่อมศูนย์ · หรือตก S2 | run ช่วงเพิ่ม (ช่วงที่ยังไม่เคยใช้) · ไม่ใช่ตก |
| ผ่าน | ครบ S1–S6 | เปิด case วิจัยต่อ → OOS → R1–R6 · ไม่ใช่ "มี edge" |
ตก S1 = ไม่อ่านต่อตั้งแต่แรก
8 · ตัวอย่างเต็ม — prereg ของ BreakoutLab ทีละข้อ พร้อมเหตุผล
EA ตัวอย่างใน kit (lab\inbox-sample\BreakoutLab) · เหตุผลอยู่ใต้แต่ละข้อ — ตัวเลขที่ต้องรู้จากจริงเขียนว่า <...>
1 · คำถามข้อเดียว
BreakoutLab V0.01 ค่า default มี E[R] > 0 บน XAUUSD H1 บัญชี RoboForex demo ช่วง IS 2026 ไหม · ผ่าน → run OOS 2026 · ตก → ปิด case · ยังตัดสินไม่ได้ → run IS 2025 เพิ่ม
ทำไม: ระบุทุกตัวแปร (EA · version · preset · สินค้า · TF · broker · ช่วง) และเขียนว่าแต่ละผลพาไปไหน
2 · ช่วงทดสอบ
tick_depth --from 2026-01→ yes ·is_oos --year 2026 --yaml→ 2026-01-01 ถึง 2026-04-30 · ช่วงนี้ยังไม่เคยใช้เลือก BreakoutLab
ทำไม: ช่วงมาจากเครื่องมือ ไม่ได้เลือกเอง · ถ้าเคยใช้ช่วงนี้ตัดสินใจเรื่อง EA นี้มาก่อน ต้องเขียนว่า "ช่วงข้อมูลที่ใช้ไปแล้ว"
3 · power
edge เล็กสุดที่สนใจ 0.2R →
power --edge 0.2= 197 trade · คาดว่า H1 4 เดือนจะได้<ไม่รู้ก่อน run — ประมาณจาก LAB_MACROSS ที่ได้ 29 trade>→ คาดว่ารอบนี้ trade ไม่พอ ผลมีแนวโน้ม "ยังตัดสินไม่ได้"
ทำไม: เขียนไว้ก่อนว่าคาดอะไร พอผลออกมาว่า CI คร่อมศูนย์ จะไม่ตีความว่า "เกือบผ่าน" · ตัวเลข 29 trade เป็นค่าประมาณจาก EA อีกตัวบน TF/ช่วงเดียวกัน ไม่ใช่ของ BreakoutLab — ติดป้ายไว้แบบนี้
4 · เกณฑ์ (ใช้ชุดตั้งต้น เพราะยังไม่มีเหตุผลให้ใช้ค่าอื่น)
| ข้อ | ผ่านเมื่อ | ทำไมใช้ค่านี้ |
|---|---|---|
| S1 | History Quality ≥ 90% | ค่าตั้งต้น · EA ใช้ SL 10 USD ไม่แคบมาก |
| S2 | ≥ 10 วันที่มี trade และ ≥ 11 วัน (10% ของ 102 วัน) | ค่าตั้งต้น |
| S3 | E[R] > 0 · CI ล่าง > 0 · t ≥ <จาก ledger> |
สถิติ · เส้นตาม k |
| S4 | ตัด 3 trade กำไรสูงสุดแล้วยังบวก | ค่าตั้งต้น · EA ใช้ TP คงที่ 1.5R ไม่ได้ออกแบบให้กินหาง |
| S5 | Equity DD Relative ≤ 30% ที่ risk 1% ต่อไม้ | ค่าตั้งต้น · เขียน risk คู่กัน |
| S6 | win% > 1 ÷ (1 + payoff) | คณิต · TP 1.5R → ถ้าไม่มี slippage จุดคุ้มทุนอยู่ราว 40% |
5 · ledger
ledger มี LAB_MACROSS 1 แถว → BreakoutLab เป็นการทดสอบที่ 2 · k = 2 · t ≥ 2.24
ทำไม: EA ใหม่ที่ไม่เกี่ยวกับตัวเดิม เริ่มนับใหม่ได้ (เขียนเหตุผลไว้) — แต่ถ้าคุณกำลังเลือก "EA ที่ดีที่สุดจากกอง" ทุกตัวในกองต้องนับรวม
6 · สิ่งที่รอบนี้ตอบไม่ได้
broker เดียว · ช่วงเดียว 4 เดือน · ค่า default ชุดเดียว · tester ไม่จำลอง slippage จริง
ทำไม: ต่อให้ผ่าน ก็ไม่ได้แปลว่ามี edge · ข้อนี้กันไม่ให้คุณเขียนสรุปเกินข้อมูล
จุดที่มักพลาด
| พลาด | ผลที่ตามมา | ทางกัน |
|---|---|---|
| เขียนเกณฑ์หลังเห็นผล | ทุก EA ผ่าน | เขียนก่อน run · ใส่วันที่ไว้ในหัว config |
| ใช้ Profit Factor / win rate / กำไรเป็นเงิน เป็นเกณฑ์ | ผ่านทั้งที่แย่ลง (case partial close) | ใช้ E[R] + CI |
| เกณฑ์ที่ไม่ใช่ตัวเลข ("DD ไม่สูง") | ตีความได้ตามใจ | เขียนเป็นตัวเลขพร้อมแหล่งที่วัด |
| ไม่ลง ledger หรือจดแค่ตัวที่ดีที่สุด | เส้น t ต่ำเกินจริง ผ่านเพราะโชค | ลงทุกการทดสอบก่อน run |
| ตีความ "CI คร่อมศูนย์" ว่าตก หรือว่าเกือบผ่าน | ทิ้งของที่ยังไม่รู้ / เชื่อของที่ยังไม่รู้ | ป้าย "ยังตัดสินไม่ได้" → run ช่วงเพิ่ม |
| ลด S2 ลงเพราะ EA ยิงน้อย | หลักฐานบางแต่ผ่าน | ใช้ช่วงยาวขึ้นแทน |
| เปลี่ยน risk% แต่ไม่เปลี่ยนเกณฑ์ DD | DD เกินจริงหรือต่ำเกินจริง | เขียน DD คู่กับ risk ที่ใช้ |
ทวน
- EA ตัวหนึ่ง E[R] +0.25 ช่วง +0.02 ถึง +0.48 · t 2.10 · คุณทดสอบไปแล้ว 5 ตัวรวมตัวนี้ · ผ่าน S3 ไหม
- EA ชนะ 82% · payoff 0.2 · ผ่าน S6 ไหม
- EA บน H4 ได้ 9 วันที่มี trade ใน IS 2026 · E[R] บวก CI บวก · ป้ายอะไร
- run เสร็จแล้วเห็น DD 32% · อยากเปลี่ยนเกณฑ์ S5 เป็น 35% ได้ไหม
เฉลย
- ไม่ผ่าน · E[R] และ CI ล่างผ่าน แต่ k = 5 ต้องการ t ≥ 2.57 · 2.10 ต่ำกว่าเส้น → ยังตัดสินไม่ได้
- ไม่ผ่าน · จุดคุ้มทุน = 1 ÷ (1 + 0.2) = 83.3% · ชนะ 82% ต่ำกว่า → win rate สูงมาจากรูปทรง ไม่ใช่ edge
- ยังตัดสินไม่ได้ · ตก S2 (ต่ำกว่า 10 วัน) · run ช่วงเพิ่ม ไม่ใช่ตก
- ไม่ได้ · รอบนี้ตก S5 · ถ้าคิดว่า 30% เข้มเกิน เขียนเหตุผลไว้แล้วใช้ 35% กับรอบถัดไปเท่านั้น
ดูต่อ
- ทดสอบ EA ของตัวเอง — ขั้นที่เขียนเกณฑ์ลงหัว config
- S5 — อ่านรายงาน · DD Relative · case partial close
- S6 — R · E[R] · n คือจำนวนวัน · DD จาก shuffle · win rate จากรูปทรง
- S7 — ตัดสินผลด้วย S1–S6 พร้อม lab