# RESULT-L0 — ผลทดสอบระดับ 0 (baseline เปลือย) ระบบแม่ปลาปากกาเขียว

> รัน 30 ส.ค. 2026 · XAUUSD H4 · MetaQuotes-Demo · history quality 99%
> เครื่องมือ: `ea/MaePla_L0.mq5` + `ea/analyze_l0.py` + `ea/compare_variants.py`
> ชั้นข้อมูล: **B/C** (คำแปลเป็นโค้ด + ข้อสังเกตของ FIN) — ไม่ใช่คำโค้ช

---

## 🔴 คำตัดสิน

> **ไม่ผ่านระดับ 0**
> ตัวสัญญาณของระบบแม่ปลา (PA 5 รูปแบบ + ไส้หลังซิก) เมื่ออยู่เดี่ยวๆ ไม่มีตัวกรองใดๆ
> **ไม่มีเปรียบเชิงสถิติเหนือการเข้าไม้สุ่มที่แท่ง H4 ใดก็ได้**

| เกณฑ์ EA-SPEC §4.1 | ต้องได้ | ได้จริง (default) | ได้จริง (variant ดีสุด) | ผล |
|---|---|---|---|---|
| **A** Forward excursion | ≥ +0.20 ATR · t ≥ 2.5 | +0.032 ATR · t=0.39 | +0.065 ATR · t=0.73 | ❌ |
| **B** การแข่ง TP/SL | ≥ 22% · CI ขอบล่าง > 18% | 14.6% · ขอบล่าง 11.5% | 18.0% · ขอบล่าง 14.5% | ❌ |
| **C** Expectancy | ≥ +0.05R · PF ≥ 1.10 | −0.219R · PF 0.77 | −0.053R | ❌ |
| **D** สม่ำเสมอ | บวก ≥ 4 จาก 6 ปี | ชนะ 2/8 ปี | 4/8 ปี | ❌/⚠️ |
| **E** แยกฝั่ง | BUY และ SELL ผ่านทั้งคู่ | BUY 16.3% / SELL 12.7% | 19.8% / 16.0% | ❌ |
| **F** N หลัง dedupe | ≥ 300 | 445 | 461 | ✅ |

**EA-SPEC §4.1 สั่งไว้ชัดสำหรับกรณี A ❌:**
> 🛑 หยุด · **ห้ามหวังว่าตัวกรองจะช่วย** — การเอาตัวกรองไปใส่สัญญาณที่เปรียบเป็นศูนย์
> จะได้ subset ที่ดูดีเสมอ นั่นคือ overfitting ล้วนๆ ไม่ใช่การค้นพบ

---

## 1. ทำอะไรไปบ้าง

**ชุดข้อมูล:** XAUUSD H4 · **2019.01.01 – 2026.08.01** (7.6 ปี, 11,718 แท่ง H4)
> ⚠️ กว้างกว่าที่โจทย์ขอ (2024.01–2026.08) โดยตั้งใจ — EA-SPEC §4.0 กำหนด ≥ 6 ปี
> และเกณฑ์ D/F ต้องการ N มากพอ · ผลของช่วง 2024–2026 ที่โจทย์ขอ **แยกรายงานไว้ในข้อ 3**

**EA ตัวนี้ไม่เทรด — เป็น census EA** (วัดอย่างเดียว) เพราะ:
- RR 1:5 ต้องใช้ ~2,000 ไม้ถึงพิสูจน์เปรียบเล็กๆ ได้ → เป็นไปไม่ได้กับ H4 (EA-SPEC §4.1)
- ถ้าเทรดจริงจะเสียสัญญาณที่ซ้อนกัน (1 position ต่อครั้ง) → sample หด สรุปไม่ได้
- → บันทึก **ทุกสัญญาณ** ลง CSV แล้ววัดจาก **เส้นทางราคาระดับ M1** แทน

**สิ่งที่เปิด:** PA 5 รูปแบบ (PAT1 Pin / PAT2 / PAT2 พิเศษ / PAT3 แบบ 1-3) ตามกฎ 50% + ไส้หลังซิก 3 ข้อ `[โม1 p.16]` + W4/W5 `[ปลา3 p.9]` + dedupe `[CASE-001]`
**สิ่งที่ปิดหมด:** กรอบ · เทรนด์ Day/Week · SW · เงื่อนไขห้ามเข้า 9 ข้อ · risk guard · MTF (`AtFrame()` return true เสมอ ตามที่ระดับ 0 กำหนด)

**เข้าไม้:** ท่า A2 จังหวะ 2 — entry = ราคาเปิดแท่งถัดจากไส้หลังซิก · **SL = ไส้ของ Sig** (ไม่ใช่ 300 จุดตายตัว — 300 เป็นของท่า A1/A3) · TP1 = ไส้หลังซิก + 1,500 จุด `[ปลา3 p.8]`

---

## 2. เครื่องวัดเชื่อถือได้ไหม (ต้องผ่านก่อน ไม่งั้นผลข้างล่างทิ้งได้เลย)

| การสอบเทียบ | ผล |
|---|---|
| baseline สุ่ม (เข้าทุกแท่ง H4) ที่ SL 300 / TP 1500 | **16.75%** vs null ทฤษฎี random walk 300/(300+1500) = **16.67%** → ต่าง +0.08pp |
| เรขาคณิตอื่นอีก 3 แบบ (500/1500, 300/3000, 500/3000) | จริง/null = 0.99 / 0.94 / 0.91 เท่า — เกาะ null ทุกจุด |
| drift ทองขาขึ้นโผล่ไหม | CTRL **BUY 18.1% vs SELL 15.4%** — โผล่ตรงที่ควรโผล่ ✅ |
| ตัดสินการแข่ง TP/SL ด้วยข้อมูลอะไร | **M1 100%** (30,134 เคส) ไม่มี fallback H4 เลย |
| ลำดับ intra-bar | **SL_FIRST** (ชนพร้อมกันในนาทีเดียว = SL ชนะ) ตาม G20 |
| look-ahead | EA มี assert ในตัว (`GuardIdx`) — **ไม่มีการละเมิดตลอดการรัน** |

> ✅ เครื่องวัดจับ "ของจริง" ได้ (drift ทอง) และเกาะ null ทฤษฎีเป๊ะเมื่อไม่มีของจริงให้จับ
> → ถ้าสัญญาณมีเปรียบจริง เครื่องนี้จะเห็น · ที่เห็นเป็นศูนย์คือเป็นศูนย์จริง ไม่ใช่เครื่องพัง

---

## 3. ตัวเลขหลัก — `tp1_before_sl` (เกณฑ์ B)

**นิยาม:** ราคาไปถึง +1,500 จุด **ก่อน** ลงมา −300 จุด หรือไม่ (วัดจาก entry, ตัดสินด้วย M1)
เส้นที่ต้องชนะ = **16.7%** (baseline สุ่ม) · เกณฑ์ผ่าน = **22%**

| ช่วง | N | rate | 95% CI (bootstrap) | baseline | z |
|---|---|---|---|---|---|
| **FULL 2019.01–2026.08** | 445 | **14.6%** | [11.5%, 18.0%] | 16.7% | **−1.20** |
| IN-SAMPLE 2019.01–2024.08 | 326 | 13.5% | [9.8%, 17.5%] | 16.6% | −1.48 |
| HOLDOUT 2024.08–2026.08 | 119 | 17.6% | [10.9%, 25.2%] | 17.2% | +0.11 |
| **TASK 2024.01–2026.08** (ที่โจทย์ขอ) | 170 | 15.9% | [10.6%, 21.8%] | 17.0% | −0.43 |

> **สัญญาณแพ้การเข้าไม้สุ่ม** ในทุกช่วง (ยกเว้น holdout ที่เสมอ) — ไม่ใช่แค่ "ไม่ชนะ"
> ไม่มีช่วงไหนที่ **ขอบล่างของ CI** แตะ 18% ตามเกณฑ์เลย

### แยกฝั่ง (เกณฑ์ E — สำคัญที่สุด เพราะทองปี 2019-26 ขาขึ้นแรง)

| ฝั่ง | N | SIG rate | CTRL rate (เส้นที่ต้องชนะ) | z |
|---|---|---|---|---|
| BUY | 233 | 16.3% | **18.1%** | −0.69 |
| SELL | 212 | 12.7% | **15.4%** | −1.08 |

> 🔴 **จุดที่หลอกง่ายที่สุด:** BUY 16.3% ดูใกล้ breakeven — แต่การเข้าไม้ BUY **สุ่ม**ในช่วงนี้ได้ 18.1%
> แปลว่าสัญญาณ Buy ของระบบ **แย่กว่าการซื้อมั่ว** · ถ้าไม่ทำ CTRL baseline ไว้จะสรุปผิดทันที

**ยืนยัน:** รันแยก BUY-only / SELL-only เป็นคนละ backtest → ได้ N และ rate **ตรงกันเป๊ะทศนิยม**
กับการ split ใน analysis (ระดับ 0 ไม่มี interaction ระหว่างฝั่ง — 1 run = 3 run)

### แยกตาม pattern

| pattern | N | rate | CI ขอบล่าง | z |
|---|---|---|---|---|
| PAT1 (Pin) | 42 | 16.7% | 7.1% | −0.01 |
| **PAT2 (กลืนกิน)** | **226** | 13.7% | 9.3% | −1.21 |
| PAT2S (พิเศษ) | 57 | 12.3% | 5.3% | −0.90 |
| PAT3_1 (Doji star) | 12 | 8.3% | 0.0% | −0.78 |
| PAT3_2 (Small star) | 18 | **38.9%** | 16.7% | **+2.51** |
| PAT3_3 (Three Inside) | 90 | 13.3% | 6.7% | −0.87 |

- **ดีสุด:** PAT3_2 (38.9%) — ⚠️ **แต่ห้ามเชื่อ** N=18 · ทดสอบ 6 pattern พร้อมกัน คาดว่าจะเจอตัวที่ p≈0.01 หลุดมา 1 ตัวโดยบังเอิญอยู่แล้ว · CI ขอบล่าง 16.7% = แตะ null พอดี · ถ้าจะเชื่อต้องเก็บ N ให้ถึง ~150 ก่อน
- **แย่สุด:** PAT3_1 (8.3%, N=12 — ไม่มีนัยสำคัญเช่นกัน) · ในกลุ่มที่ N พอ **PAT2 แย่สุด (13.7%, N=226)** ซึ่งเป็นตัวที่ระบบยิงบ่อยที่สุด
- **ไม่มี pattern ไหนที่ N พอ + ชนะ baseline อย่างมีนัยสำคัญ**

---

## 4. ความไวต่อการตีความ (จุดที่โค้ชขัดกัน — ห้ามข้าม)

`GLOSSARY §4.1b` โมจากับลูกแก้วพูดตรงข้ามกันเรื่อง **"แท่งไส้หลังซิกปิดไปทางไหน"** และกฎนี้ตัดสัญญาณทิ้ง ~50%
→ รันครบทั้ง 3 ทางเลือก ไม่เลือกฝั่งแทนโค้ช

| variant | N | rate | 95% CI | z vs baseline | ผ่าน 22%? |
|---|---|---|---|---|---|
| **OPPOSITE** (โมจา `[โม1 p.16]`) = default | 445 | 14.6% | [11.5, 18.0] | −1.20 | ❌ |
| **SAME** (ลูกแก้ว `[แก้ว1 p.3]`) | 461 | **18.0%** | [14.5, 21.5] | +0.72 | ❌ |
| **ANY** (ไม่บังคับ) | 907 | 16.4% | [14.1, 18.9] | −0.25 | ❌ |

> **ลูกแก้วถูกกว่าโมจาในข้อนี้** (18.0% vs 14.6%) — เป็นข้อมูลที่มีค่า แต่ **ยังไม่ถึงเกณฑ์**
> ต่อให้เลือกทางที่ดีที่สุด CI ขอบล่างก็ยังอยู่ที่ 14.5% ต่ำกว่าเส้น 18% ที่ต้องการ
> → ข้อสรุป "ไม่ผ่าน" **ไม่ได้มาจากการที่เราเดาผิดตรงจุดนี้**

### ความไวต่อกติกา "ไส้หลังซิกถูกทำลาย" (§4.1 — 3 เสียง)
วัดบนเรขาคณิตจริงของท่า A2 (SL = ไส้ของ Sig, TP = ไส้หลังซิก+1500) เทียบ null ทฤษฎี `S/(S+T)`:

| สำนัก | comparator | rate | null | ส่วนต่าง |
|---|---|---|---|---|
| แม่ปลา | `price > ไส้` | 30.1% | 29.1% | **+1.0pp** |
| ลูกแก้ว | `price >= ไส้` | 29.9% | 29.1% | +0.8pp |
| โมจา | `price > ไส้ + 300 จุด` | 38.4% | 39.9% | **−1.5pp** |

> ทั้ง 3 สำนักได้ผลเท่ากับ "โยนเหรียญที่ถ่วงตามระยะ SL/TP" — **ไม่มีสำนักไหนสร้างเปรียบเพิ่ม**
> (rate 30-38% ดูสูงแต่ไม่ได้แปลว่าดี — เพราะ SL กว้างขึ้น RR ก็ต่ำลงตามกัน: SL เฉลี่ย 798 จุด/มัธยฐาน 370 จุด vs TP 1,199 จุด)

---

## 5. MFE / MAE (20 แท่ง H4, หน่วยจุด)

| ชุด | MFE mean | MFE med | MAE mean | MAE med | MFE/MAE | bars→max |
|---|---|---|---|---|---|---|
| **SIG ทั้งหมด** | 3,681 | 2,066 | 3,335 | 1,879 | **1.10** | 9.8 |
| SIG BUY | 3,730 | 2,340 | 3,105 | 1,708 | 1.20 | 10.2 |
| SIG SELL | 3,627 | 1,647 | 3,589 | 2,125 | 1.01 | 9.3 |
| **CTRL (สุ่ม)** | 3,619 | 2,127 | 3,619 | 2,127 | 1.00 | 10.1 |
| CTRL BUY | 3,746 | 2,356 | 3,491 | 1,888 | 1.07 | 10.9 |
| PA ที่ตกด่านไส้หลังซิก | 3,755 | 2,208 | 3,719 | 2,185 | 1.01 | 10.0 |

> MFE/MAE ของสัญญาณ = 1.10 · ของ **BUY สุ่ม** = 1.07 → เกือบทั้งหมดของ "ความได้เปรียบ" ที่เห็น
> คือ **drift ทองขาขึ้น ไม่ใช่สัญญาณ** · SELL ได้ 1.01 = เท่าเหรียญเป๊ะ

---

## 6. ด่านไส้หลังซิกเพิ่มค่าไหม (ผลข้างเคียงที่น่าสนใจ)

| ชุด | N | rate B | fwd6 (ATR) |
|---|---|---|---|
| **Sig สมบูรณ์ (ผ่านครบ 5 ข้อ)** | 445 | **14.6%** | +0.032 |
| ตก W1 (ปิดผิดทาง) | 3,354 | 16.5% | +0.038 |
| ตก W2 (บอดี้เกินครึ่ง = "PA ถูกทำลาย") | 2,265 | **17.3%** | −0.016 |
| ตก W3 (ไส้เกินแท่งก่อน) | 673 | 14.4% | −0.130 |
| baseline สุ่ม | 23,396 | 16.7% | 0.000 |

> 🔴 **ด่านไส้หลังซิกคัด "ผิดทาง"** — PA ที่โค้ชบอกว่า **"ถูกทำลาย ห้ามเล่น"** (ตก W2)
> กลับทำได้ **ดีกว่า** Sig ที่ผ่านครบ (17.3% vs 14.6%)
> ตัวคัด 5 ข้อทำให้จาก 6,738 candidate เหลือ 445 (**คัดทิ้ง 93.4%**) แต่ **ผลแย่ลง**
> → นี่คือหลักฐานตรงที่สุดว่าตัวคัดกรองของระบบ ณ ชั้นนี้ ไม่ได้เลือกอะไรที่มีความหมาย
> ⚠️ ข้อสังเกตนี้เป็นชั้น **C** — อาจเป็นเพราะเราตีความ W2/W3 ผิด ไม่ใช่ข้อสรุปว่าโค้ชผิด

---

## 7. Expectancy จริง (เกณฑ์ C — มีต้นทุน 40 จุด)

| ชุด | E (R) | 95% CI | PF |
|---|---|---|---|
| SIG ทั้งหมด | **−0.219R** | [−0.413, −0.016] | 0.77 |
| SIG BUY | −0.118R | [−0.401, +0.171] | 0.87 |
| SIG SELL | −0.330R | [−0.596, −0.049] | 0.66 |
| CTRL (สุ่ม) | −0.115R | [−0.144, −0.086] | 0.88 |

> เทรดตามสัญญาณ **แย่กว่า**เข้ามั่ว (−0.219R vs −0.115R) · ทั้งคู่ติดลบเพราะต้นทุน 40 จุด
> เกณฑ์ C เป็นตัวยืนยัน ไม่ใช่ตัวตัดสิน (power ต่ำ) — แต่มันชี้ทางเดียวกับ A และ B

---

## 8. ความสม่ำเสมอรายปี (เกณฑ์ D)

| ปี | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|
| N | 63 | 63 | 53 | 39 | 57 | 90 | 47 | 33 |
| SIG rate | 11.1% | 14.3% | 15.1% | 20.5% | 10.5% | 16.7% | 12.8% | 18.2% |
| baseline | 15.1% | 17.2% | 16.2% | 17.5% | 16.7% | 17.1% | 17.2% | 17.2% |
| ผล | แพ้ | แพ้ | แพ้ | **ชนะ** | แพ้ | แพ้ | แพ้ | **ชนะ** |

**ชนะ baseline 2 จาก 8 ปี** — ไม่มีปีไหนแบกงานได้ และไม่มี regime ไหนที่ระบบเด่นชัด

---

## 9. Funnel (เก็บไว้ให้ระดับ 1 ใช้)

| ขั้น | จำนวน | % |
|---|---|---|
| PA candidates (หลัง dedupe `[CASE-001]`) | 6,738 | 100% |
| ตก W1 ปิดผิดทาง `[โม1 p.16]` | 3,354 | 49.8% |
| ตก W2 บอดี้เกินครึ่ง | 2,265 | 33.6% |
| ตก W3 ไส้เกินแท่งก่อน | 673 | 10.0% |
| ตก W5 ไส้ทะลุชุด PA | 1 | 0.0% |
| **Sig สมบูรณ์** | **445** | **6.6%** |

สัญญาณต่อปี: 2019:63 · 2020:63 · 2021:53 · 2022:39 · 2023:57 · 2024:90 · 2025:47 · 2026:33

---

## 10. สิ่งที่ผลนี้ **ไม่ได้** บอก (อ่านก่อนสรุปเกินตัว)

1. **ไม่ได้บอกว่า "ระบบแม่ปลาใช้ไม่ได้"** — บอกว่า **"ชั้นสัญญาณเปล่า ไม่มีเปรียบ"** เท่านั้น
   โค้ชบอกเองว่า **กรอบ 80% : SIG 20%** `[แก้ว1 p.11-19]` และ **เทรนด์ชนะกรอบ กรอบชนะ SIG** `[ปลา3 p.63]`
   → ผลนี้ **สอดคล้อง**กับสิ่งที่โค้ชพูด ไม่ได้ขัด · โค้ชไม่เคยอ้างว่า SIG เดี่ยวๆ ใช้ได้
2. **แต่ EA-SPEC §4.1 ก็สั่งไว้ชัดว่าห้ามข้ามไปเติมตัวกรองทันที** — เพราะการกรอง subset จากสัญญาณที่เปรียบ = 0
   จะได้ผลสวยเสมอโดยไม่มีความหมาย (overfitting) · ต้องแยกให้ออกว่า "กรอบมีเปรียบ" กับ "กรอบเลือก subset ที่บังเอิญดี"
3. **`[SPEC-เดา]` 13 ตัวถูกล็อกที่ default ตลอด** — ไม่มีการจูน ผลนี้จึงไม่ใช่ผลที่ overfit
   แต่ก็แปลว่า **อาจมีค่า Pin/Doji ชุดอื่นที่ดีกว่า** ยังไม่ได้ค้น (ช่อง G1/G2 ยังเปิดอยู่)
4. **โบรก:** ทดสอบบน MetaQuotes-Demo — ระบบแกะจาก **Exness** `[แก้ว1 p.72]`
   เวลาเปิดแท่ง H4 ต่างกัน = PA เปลี่ยนทั้งกระดาน · **กฎ backtest ของ EA-SPEC §0.3 ยังไม่ครบ**

---

## 11. ทำอะไรต่อ (เรียงตามผลตอบแทนต่อแรง)

| # | ทำอะไร | ทำไม |
|---|---|---|
| **1** | 🔴 **เทสซ้ำบนดาต้า Exness** (H4 เปิด 07:00 ตามที่ระบบออกแบบ) | จุดพังเงียบที่สุด `[แก้ว1 p.72]` — เลื่อน 1 ชม. PA เปลี่ยนหมด · ถ้าผลกลับด้าน แปลว่ารอบนี้เทสผิดโบรก ไม่ใช่ระบบไม่ดี |
| **2** | **sweep ช่อง G1/G2** (Pin/Doji) แล้วดูว่ามีค่าไหนทำให้ A ผ่านไหม | ถ้าไม่มีชุดค่าไหนช่วยเลย = ยืนยัน "สัญญาณเปล่าไม่มีเปรียบ" หนักแน่นขึ้นมาก |
| **3** | **เทสกรอบแบบ leave-one-in ทันที** (ข้ามไประดับ 1 เฉพาะตัวกรอบ) | โค้ชบอกเองว่ากรอบคือ 80% ของระบบ — ถ้ากรอบไม่เพิ่มค่าด้วย นั่นคือคำตอบจริงของทั้งงาน |
| **4** | **ถามโค้ช: Pin/Doji มีเกณฑ์ตัวเลขไหม** | ถ้าตอบ "ดูเอา" = ระบบเป็น discretionary จริง โค้ดได้แค่โครง — เป็นคำตอบเชิงระบบที่สำคัญที่สุด |
| ~~5~~ | ~~เติมตัวกรองครบชุดแล้วดูผลรวม~~ | ❌ **ห้าม** — EA-SPEC §4.1 สั่งหยุด · ทำแล้วจะได้ตัวเลขสวยที่ไม่มีความหมาย |

---

## ไฟล์

| ไฟล์ | คืออะไร |
|---|---|
| `ea/MaePla_L0.mq5` | census EA (601 บรรทัด) — PA5 + ไส้หลังซิก + MFE/MAE/race บน M1 · ไม่เทรด |
| `ea/bt_l0.ini` + `bt_l0_{kaew,any,buyonly,sellonly}.ini` | config 5 รอบ |
| `ea/run_l0.sh` | runner (sync → wine headless → เก็บ CSV+report) |
| `ea/analyze_l0.py` | วิเคราะห์ตามเกณฑ์ A-F |
| `ea/compare_variants.py` | เทียบ variant + สอบเทียบเครื่องวัด |
| `ea/data/maepla_l0_*.csv` | ผลดิบ 30,135 แถว × 5 รอบ (CTRL 23,396 / SIG 6,738) |
| `ea/data/analysis_*.txt` | ผลวิเคราะห์เต็ม |
| `ea/reports/maepla_l0_report_*.htm` | report ของ MT5 (0 trades — ตั้งใจ) |
