# RESULT-L1-filters — ตัวกรองระดับ 1 เพิ่มค่าจริงไหม (leave-one-in ทีละตัว)

> รัน 30 ส.ค. 2026 · ต่อจาก `RESULT-L0.md` · XAUUSD H4
> เครื่องมือ: `ea/MaePla_L1.mq5` (= L0 + คอลัมน์บริบท) + `ea/analyze_l1_filters.py` + `ea/summarize_l1.py`
> ชั้นข้อมูล: **B/C** — คำแปลเป็นโค้ด + ข้อสังเกตของ FIN · ไม่ใช่คำโค้ช

---

## 🔴 คำตัดสิน

> **ไม่มีตัวกรองตัวไหนผ่านเกณฑ์ EA-SPEC §4.2 — รวมทั้ง "เกิดที่กรอบ" ซึ่งเป็นตัวที่โค้ชบอกว่าคือ 80% ของระบบ**
>
> และที่หนักกว่านั้น: **ทิศทางของผลตัวกรองพลิกไปมาเมื่อเปลี่ยนแหล่งข้อมูล** (Exness ↔ MetaQuotes ช่วงเวลาเดียวกัน)
> → นั่นคือลายเซ็นของ noise ไม่ใช่ลายเซ็นของเปรียบ

| ตัวกรอง | ผ่าน §4.2 ครบ 4 ข้อ? | ตัวเลขที่ตัดสิน |
|---|---|---|
| **F1 เกิดที่กรอบ** | ❌ | เปรียบหลังกรอง **−0.72pp** (SIG 16.7% vs สุ่มที่กรอบ 17.4%) · t(Δ)=+1.00 |
| **F2 เทรนด์ Day** | ❌ | เปรียบ **−4.88pp** (t=−2.40) — ไม่ใช่แค่ไม่ช่วย แต่มีสัญญาณว่า**ทำให้แย่ลง** |
| **F3 เทรนด์ H4** | ❌ | เปรียบ **−5.29pp** · N เหลือ 30.6% (ต่ำกว่าเกณฑ์ 35%) |
| **F4 ไม่อยู่ใน SW** | ❌ | เปรียบ −1.72pp · Δ +0.037R (ต่ำกว่าเกณฑ์ +0.05R) · t=+1.22 |
| **F5 กรอบวัน 1,000 จุด** | ❌ | เปรียบ −4.44pp · N เหลือ 27.2% |

---

## 1. ทำไมงานนี้ไม่ใช่ overfit (และวิธีที่ทำให้มันไม่ใช่)

`EA-SPEC §4.1` สั่งว่า "A ไม่ผ่าน = หยุด ห้ามหวังพึ่งตัวกรอง" — งานนี้ทำต่อเพราะเป็น **การทดสอบคำกล่าวอ้างของโค้ชที่ระบุไว้ล่วงหน้าก่อนเห็นข้อมูล**:
*"เทรนด์ ชนะ กรอบ · กรอบ ชนะ SIG"* `[ปลา3 p.63]` และ *"กรอบ 80% : SIG 20%"* `[แก้ว1 p.19]`

**กันการ overfit ด้วย 4 ข้อ (ทำครบทุกข้อ):**

1. 🔴 **ทุกตัวกรองเทียบกับ "การเข้าไม้สุ่มที่ผ่านตัวกรองเดียวกัน"** ไม่ใช่ baseline รวม
2. **ล็อกค่าพารามิเตอร์ตามหนังสือ** — ไม่มีการจูนตัวเลขใดๆ เพื่อให้ผลสวย (รายการค่าล็อกอยู่ข้อ 3)
3. **ทีละตัว** — ไม่มีการเอาตัวกรองมารวมกันเพื่อหาชุดที่สวย (ชุดรวม 32 แบบทำแค่เพื่อวัด "เพดาน" ข้อ 6)
4. **นิยามที่กำกวมรายงานทุกทางเลือกคู่กัน** — ไม่ได้เลือกเฉพาะอันที่ผลออกมาดี

### ⭐ ข้อค้นพบเชิงวิธีการที่ทำให้การเทียบนี้แม่นเป็นพิเศษ

แถว `CTRL` กับ `SIG` ที่ **แท่งเดียวกัน + ทิศเดียวกัน** มีผลลัพธ์ **ตรงกันทุกหลัก** (entry เดียวกัน เรขาคณิต TP1500/SL300 เดียวกัน)
→ แปลว่าทั้งระบบแม่ปลา **อ้างได้อย่างเดียวคือ "เลือกแท่งเก่ง"** และตัวกรองก็เช่นกัน
→ คำถามจึงกลายเป็นคำถามเดียวที่คมมาก: **`P(ชนะ | มี SIG และผ่านตัวกรอง)` สูงกว่า `P(ชนะ | ผ่านตัวกรองเฉยๆ)` ไหม**
→ ถ้าตัวกรองทำให้ทั้งสองฝั่งดีขึ้นเท่ากัน = ตัวกรองไม่มีค่า มันแค่ไปเลือกช่วงที่ตลาดวิ่งดี

CTRL ถูก **ถ่วงน้ำหนักตามสัดส่วน BUY/SELL ของ SIG ที่ผ่านตัวกรองนั้น** เสมอ (ทองขาขึ้น 2019-26 ทำให้ BUY ได้เปรียบฟรี 2.6pp — ไม่ถ่วงจะสรุปผิดทันที)
CTRL ตัดแท่งที่มี SIG ออกแล้ว (23,396 → 22,951) เพื่อให้สองกลุ่มไม่ทับกัน

---

## 2. เครื่องมือ — `MaePla_L1.mq5`

ก็อป `MaePla_L0.mq5` มาเติม **คอลัมน์บริบท 14 ตัว** เท่านั้น ไม่แตะตรรกะ PA/ไส้หลังซิกเลย

| ตรวจสอบ | ผล |
|---|---|
| L1 ให้ค่าคอลัมน์เดิมของ L0 ตรงกันทุกช่องไหม | ✅ **30,134 แถว × 36 คอลัมน์ ต่างกัน 0 ช่อง** |
| บริบทคำนวณจากแท่งที่ปิดแล้วเท่านั้นไหม | ✅ ผ่าน `Hi/Lo/Op/Cl` ที่มี `GuardIdx` — ไม่มีการละเมิด |
| CTRL กับ SIG ที่แท่งเดียวกันได้บริบทชุดเดียวกันไหม | ✅ คำนวณครั้งเดียวต่อแท่ง แล้วแจกให้ทุกแถวของแท่งนั้น |
| ตรรกะ swmask สอดคล้องกันเองไหม | ✅ ค่า 3/7/8/12 ไม่เคยโผล่ — ตรงกับที่คณิตศาสตร์บังคับ (bit0∧bit1 ⟹ bit3) |

---

## 3. นิยามตัวกรองที่ใช้ (ค่าล็อกทั้งหมด — ไม่มีการจูน)

### F1 เกิดที่กรอบ — เส้นสถิติลงท้าย 0/5

ใช้นิยาม **"ไส้แตะเส้น + เนื้อปิดกลับ"** ตาม `EA-SPEC §1.4.3` (ช่อง G4)
⚠️ **ไม่ได้ใช้ "±300 จุด = ใกล้กรอบ"** เพราะเส้นห่าง 500 จุด หน้าต่าง 600 จะคลุมทั้งกราฟ ตัวกรองตายเงียบ

```
BUY:  มีเส้น f = ทวีคูณของ $5.00 ที่  f >= low − 50 จุด   (ไส้ลงมาถึงเส้น)
                              และ  f <= low + 300 จุด  (ทะลุลงได้ไม่เกิน OVL)
                              และ  f <  bodyBottom     (เนื้อของแท่งปิดกลับเหนือเส้น)
SELL: กลับข้างทั้งหมด
```

| ค่า | ใช้ | ที่มา |
|---|---|---|
| ระยะเส้นสถิติ = **$5.00** (500 จุด ลงท้าย 0/5) | ล็อก | `[ปลา3 p.20]` |
| `OverlapPts` = **300** | ล็อก | `[ปลา3 p.2]` |
| `TouchInPts` = **50** | ค่า default ของ EA-SPEC §3 | `[SPEC-เดา G4]` |
| ตัวคัด "ปลายไส้สัมผัส 7-14 จุด" | **ไม่ได้ใช้** | `§1.6` บอกว่าเส้นเลข 0/5 เป็นกรอบได้ในตัวเอง ("**หรือ**") · การใส่ต้องเดาเพิ่ม 3 ตัว (ช่อง G5) — ดูข้อ 8 |

### F2-F5

| # | นิยาม | ค่าล็อก | ที่มา |
|---|---|---|---|
| **F2** | เข้าเฉพาะทางเดียวกับ **สีแท่ง D1 ที่ปิดแล้ว** | `BiasMode = DAY_CANDLE` | `[ปลา3 p.52]` |
| **F3** | เข้าเฉพาะทางเดียวกับ **โครงสร้าง swing H4** (HH+HL = ขึ้น / LH+LL = ลง) | fractal ซ้าย-ขวา 2 แท่ง · ย้อน 150 แท่ง | `[SPEC-เดา]` (§1.5.1 SWING_STRUCTURE) |
| **F4** | ไม่อยู่ใน SW — checklist `[โม2 p.36]` 4 ข้อที่โค้ดได้ (High ไม่สูงกว่าเดิม · Low ไม่หลุดเดิม · แท่งสลับสี · range ไม่ขยาย) เทียบ 6 แท่งล่าสุด vs 6 แท่งก่อนหน้า | ครบ 4 ข้อ = SW | ข้อ Volume ตัดทิ้ง (volume XAU ไม่น่าเชื่อถือ) |
| **F5** | เกิดที่ **กรอบวัน**: `anchor` = ราคาเปิดแท่ง H4 07:00 ปัดเข้าเส้น $5.00 → กรอบ = {anchor, anchor±$5.00} | ใช้เกณฑ์ไส้แตะ/เนื้อปิดกลับชุดเดียวกับ F1 | `[ปลา3 p.27]` |

> 🔴 **F5 มีข้อเดาบังคับ:** ดาต้าชุดนี้แท่ง H4 เปิด 00/04/08/12/16/20 — **ไม่มีแท่ง 07:00** ตามที่ระบบออกแบบ
> เลือกใช้ **08:00** (ใกล้ 07:00 ที่สุด) เป็นตัวหลัก และรายงาน **04:00** คู่กันเสมอ (ข้อ 5)
> **F5 ⊂ F1 โดยคณิตศาสตร์** — anchor เป็นทวีคูณของ 5.00 อยู่แล้ว กรอบวันจึงเป็นเส้นสถิติ 3 เส้นที่เจาะจง

---

## 4. ผลหลัก — MetaQuotes-Demo XAUUSD 2019.01–2026.08 (SIG 445 / CTRL 22,951)

**เกณฑ์ B** `tp1_before_sl` = ไป +1,500 จุดก่อนลง −300 จุด · เกณฑ์ผ่านของ EA-SPEC = **22%**

| ตัวกรอง | N เหลือ | %ของ 445 | SIG | สุ่มที่ผ่านตัวกรองเดียวกัน | **เปรียบ** | t | ขอบบน 95% ของเปรียบ | เปรียบเป็น R | Δเปรียบ (R) | t ของ Δ | ช่วยกี่ปี |
|---|---|---|---|---|---|---|---|---|---|---|---|
| *(ไม่มีตัวกรอง)* | 445 | 100% | 14.6% | 16.9% | −2.24pp | −1.32 | +1.08pp | −0.110R | — | — | — |
| **F1 กรอบ** | 252 | 56.6% | 16.7% | **17.4%** | **−0.72pp** | −0.30 | **+3.95pp** | −0.025R | +0.085R | +1.00 | 6/8 |
| **F2 เทรนด์ Day** | 262 | 58.9% | 11.8% | 16.7% | **−4.88pp** | **−2.40** | −0.90pp | −0.257R | −0.147R | −1.69 | 2/8 |
| **F3 เทรนด์ H4** | 136 | 30.6% | 12.5% | 17.8% | −5.29pp | −1.83 | +0.37pp | −0.312R | −0.202R | −1.35 | 3/8 |
| **F4 ไม่อยู่ใน SW** | 395 | 88.8% | 14.9% | 16.7% | −1.72pp | −0.95 | +1.84pp | −0.072R | +0.037R | +1.22 | 6/8 |
| **F5 กรอบวัน** | 121 | 27.2% | 13.2% | 17.7% | −4.44pp | −1.42 | +1.71pp | −0.225R | −0.116R | −0.69 | 5/8 |

**Forward excursion (เกณฑ์ A) หลังกรองด้วย F1:** SIG +0.129 ATR vs สุ่มที่กรอบ −0.007 ATR → เปรียบ +0.136 ATR (t=+1.27)
ยังห่างจากเกณฑ์ +0.20 ATR · t ≥ 2.5 มาก

### 🔴 กับดักที่ต้องอ่านให้ออก

**F1 ทำให้ตัวเลข SIG ดูดีขึ้นจริง: 14.6% → 16.7%** — ถ้าดูแค่นี้จะสรุปว่า "กรอบช่วย!"
แต่ **การเข้าไม้สุ่มที่กรอบก็ขึ้นจาก 16.9% → 17.4% ด้วย** และ SIG ยัง**แพ้**สุ่มอยู่ดี
สิ่งที่ F1 ทำจริงคือ **โยนไม้ที่แย่ที่สุดทิ้ง** (ไม้ที่ถูกทิ้งมีเปรียบ −0.230R) — ไม่ใช่ **สร้างเปรียบ**

> ⚠️ นี่คือเหตุผลที่เกณฑ์ §4.2 ข้อ 1 (Δexpectancy ≥ +0.05R) **ผ่านได้โดยไม่มีเปรียบเลย**
> ตัวกรองที่ทิ้งไม้แย่ ๆ ออกจะได้ Δ บวกเสมอ แม้ตัวที่เหลือจะยังแพ้การสุ่ม
> **ตัวเลขที่ตัดสินจริงคือ "เปรียบหลังกรอง" ไม่ใช่ "Δ จากไม่มีตัวกรอง"** — และตัวนั้น ≤ 0 ทุกตัวกรอง

### กำลังของการทดสอบ (จะพลาดเปรียบจริงไหม)

F1 เหลือ N=252 → **ขอบบน 95% ของเปรียบ = +3.95pp**
ถ้าจะไปถึงเกณฑ์ 22% ต้องมีเปรียบ **+4.6pp** เหนือ CTRL 17.4%
→ **เกณฑ์ที่ต้องการอยู่นอกช่วงความเชื่อมั่น 95%** = ปฏิเสธได้ว่ากรอบให้เปรียบมากพอ ไม่ใช่แค่ "วัดไม่เจอ"

---

## 5. ความไวต่อนิยาม (รายงานทุกทางเลือกคู่กัน — ไม่ได้เลือกอันที่สวย)

| นิยามทางเลือก | N | SIG | สุ่มที่ผ่านตัวกรองเดียวกัน | เปรียบ | สรุป |
|---|---|---|---|---|---|
| F1 (หลัก) ไส้แตะเส้น + เนื้อปิดกลับ | 252 | 16.7% | 17.4% | −0.72pp | ไม่ผ่าน |
| **F1b** span = ความยาวชุด PA จริง (1-3 แท่ง) | 287 | 16.0% | 17.4% | −1.37pp | ไม่ผ่าน |
| **F1c** เกณฑ์อ่อนตามตัวหนังสือ §1.4.3 เป๊ะ (`close > f−300`) | 300 | 16.7% | 17.1% | −0.47pp | ไม่ผ่าน |
| **F1d** เข้มสุด — เส้นอยู่ "ใน" ไส้จริง + เนื้อปิดกลับ | 213 | 16.0% | 17.6% | −1.67pp | ไม่ผ่าน |
| **F4b** SW = ครบ ≥3 จาก 4 ข้อ | 228 | 13.2% | 16.7% | −3.50pp | ไม่ผ่าน |
| **F4c** SW = ราคาอยู่ในกรอบเดิม (bit0∧bit1) | 380 | 15.0% | 16.6% | −1.62pp | ไม่ผ่าน |
| **F5b** กรอบวัน anchor 04:00 แทน 08:00 | 123 | 9.8% | 17.2% | **−7.42pp** (t=−2.72) | ไม่ผ่าน |

> **นิยามกรอบทั้ง 4 แบบ ตั้งแต่หลวมสุดถึงเข้มสุด ให้คำตอบเดียวกัน: เปรียบ ≤ 0**
> ข้อสรุปนี้จึงไม่ได้มาจากการที่เราตีความ "เกิดที่กรอบ" ผิดจุดใดจุดหนึ่ง

### ตรวจซ้ำบนกติกาไส้หลังซิกของลูกแก้ว (`InpPostWickCloseRule=1`, N=461 — ตัวที่ L0 บอกว่าดีกว่า)

| ตัวกรอง | N | SIG | สุ่มที่ผ่านตัวกรองเดียวกัน | เปรียบ | Δเปรียบ (R) |
|---|---|---|---|---|---|
| *(ไม่มีตัวกรอง)* | 461 | 18.0% | 16.8% | +1.22pp (t=+0.67) | — |
| F1 กรอบ | 287 | 17.8% | 17.2% | +0.53pp | **−0.035R** |
| F2 เทรนด์ Day | 269 | 17.1% | 16.6% | +0.45pp | −0.043R |
| F3 เทรนด์ H4 | 131 | 17.6% | 17.8% | −0.22pp | −0.087R |
| F4 ไม่อยู่ใน SW | 425 | 17.9% | 16.6% | +1.25pp | +0.003R |
| F5 กรอบวัน | 132 | 16.7% | 17.4% | −0.72pp | −0.116R |

> บนกติกาลูกแก้ว **ทุกตัวกรองมี Δเปรียบ ≤ 0** — กรองแล้ว**แย่ลง** ไม่ใช่ดีขึ้น
> ไม่มีตัวไหนพา rate ไปแตะ 22% ได้เลย

---

## 6. ทดสอบคำอ้าง "กรอบ 80% : SIG 20%" **โดยตรง** (ไม่ต้องมี SIG เลย)

ถ้ากรอบและเทรนด์คือ 80% ของระบบจริง มันต้องทำให้แม้แต่ **การเข้าไม้สุ่ม** ดีขึ้นอย่างเห็นได้
ทดสอบบน CTRL 22,951 แถว — **กำลังทางสถิติสูงมาก ถ้ามีของจริงต้องเห็น**

| ตัวกรอง | BUY (ฐาน 18.09%, N=11,465) | SELL (ฐาน 15.49%, N=11,486) |
|---|---|---|
| **F1 กรอบ** | 18.65% · **Δ +0.56pp** (t=+0.89) | 15.90% · **Δ +0.41pp** (t=+0.69) |
| F2 เทรนด์ Day | 17.73% · Δ −0.36pp | 15.49% · Δ −0.00pp |
| F3 เทรนด์ H4 | 19.41% · Δ +1.32pp (t=+1.81) | 15.67% · Δ +0.18pp |
| F4 ไม่อยู่ใน SW | 17.88% · Δ −0.21pp | 15.38% · Δ −0.11pp |
| F5 กรอบวัน | 19.21% · Δ +1.12pp (t=+1.38) | 15.60% · Δ +0.11pp |

> **ขอบบน 95% ของผลกรอบต่อการเข้าไม้สุ่ม = +1.8pp (BUY) / +1.6pp (SELL)**
> เกณฑ์ต้องการ **+5.3pp** → **ตัดทิ้งได้ที่ความเชื่อมั่น 95%**
>
> 🔴 **แปลตรงๆ:** ในโค้ดชุดนี้ บนดาต้าชุดนี้ ที่ TF H4 ด้วยเรขาคณิต 300/1500
> **"เกิดที่กรอบ" มีค่าอยู่จริงนิดเดียว (≈ +0.5pp) แต่เล็กกว่าที่จำเป็นราว 10 เท่า**
> ตัวเลขนี้ **ไม่ขัดกับที่โค้ชสอน** ว่ากรอบสำคัญกว่า SIG — มันแค่บอกว่า **ทั้งสองอย่างเล็กเกินกว่าจะจ่ายค่าสเปรดได้**

---

## 7. เพดาน — ต่อให้โกงด้วยการรวมตัวกรองก็ไปได้แค่ไหน

ลองครบ **32 การรวม** ของ F1-F5 (เก็บเฉพาะชุดที่ N ≥ 40 → 24 ชุด) แล้วดูชุดที่ดีที่สุด
⚠️ **นี่ไม่ใช่ข้อเสนอ** — เป็นการวัดว่า "ต่อให้เลือกชุดที่ดีที่สุดหลังเห็นข้อมูลแล้ว มันยังอยู่ในระดับ noise ไหม"

| ดาต้า | ชุดที่ดีที่สุด | N | SIG | สุ่มที่ผ่านชุดเดียวกัน | เปรียบ | t |
|---|---|---|---|---|---|---|
| โมจา default | F1+F4 | 225 | 16.9% | 17.2% | −0.29pp | −0.12 |
| ลูกแก้ว | F1+F3+F4 | 78 | 23.1% | 18.1% | +4.95pp | **+1.02** |

> เลือกที่ดีที่สุดจาก 24 ชุด **หลังเห็นข้อมูล** แล้วยังได้ t สูงสุดแค่ **+1.02**
> การลอง 24 ชุดคาดหวังจะเจอ t สูงสุด ~2.0-2.5 โดยบังเอิญอยู่แล้ว → **เพดานเองก็คือ noise**

---

## 8. 🔴 การค้นพบใหม่ที่สำคัญกว่าตัวกรอง — ~~ผลพลิกตามแหล่งข้อมูล~~ → **ที่จริงคือ bar alignment**

> ⚠️ **แก้ไข 30 ส.ค. 2026 (หลังทำ `RESULT-L2-robustness.md`) — ห้ามลบของเดิม อ่านคู่กัน**
> ข้อสรุปของหัวข้อนี้ **ตั้งอยู่บนข้อเท็จจริงที่ผิด**: สองเทอร์มินัลนี้ **นาฬิกาไม่ตรงกัน 2–3 ชม.**
> (MetaQuotes-Demo = GMT+2/+3 มี DST · Exness-MT5Trial17 = GMT+0) — ทั้งคู่ติดป้าย 00/04/08 เหมือนกันก็จริง แต่คนละนาฬิกา
> ⇒ **แท่ง H4 ของ Exness = แท่ง H4 ของ MetaQuotes ที่ offset +2/+3** ไม่ใช่ feed คนละคุณภาพ
> ⇒ เอาดาต้า MetaQuotes มาแบ่งด้วยกริดของ Exness แล้วรันซ้ำ ได้ **+6.56pp (t=+2.18)** เท่าของจริงทุกหลัก
> ⇒ หัวข้อนี้วัด **bar alignment** มาตั้งแต่ต้น ไม่ใช่ "คุณภาพแหล่งข้อมูล" · รายละเอียด: `RESULT-L2-robustness.md` ข้อ 3-4


ระหว่างทำงานนี้ มีดาต้า **Exness XAUUSDm** โผล่ในโฟลเดอร์ (งานคู่ขนาน) จึงรัน L1 ซ้ำบนดาต้านั้นด้วย
L1 บน Exness รันได้แค่ **2023.09 – 2026.06** (ประวัติ M1 ของเทอร์มินัลสั้นกว่า) → **จึงเทียบ MetaQuotes ช่วงเดียวกันคุมตัวแปรเวลา**

| ดาต้า (ช่วงเดียวกัน 2023.09–2026.06) | N (SIG) | rate | สุ่มตรงทิศ | **เปรียบ** | t |
|---|---|---|---|---|---|
| **Exness XAUUSDm** | 199 | **23.6%** | 17.1% | **+6.56pp** | **+2.15** |
| **MetaQuotes XAUUSD** | 177 | 16.4% | 17.5% | −1.13pp | −0.40 |

**การเข้าไม้สุ่มของสองโบรกให้ผลเกือบเท่ากัน (17.1% vs 17.5%)** — ตลาดเดียวกัน
**ต่างกันแค่ "PA ไปเกิดที่แท่งไหน"** เพราะ OHLC ของแท่ง H4 ไม่ตรงกัน → นี่คือ gotcha `[แก้ว1 p.72]` ที่เป็นจริง
> ✅ *ข้อนี้ถูก — แต่สาเหตุที่ OHLC ไม่ตรงกันคือ **นาฬิกาต่างกัน 2-3 ชม.** ไม่ใช่คุณภาพ feed (แก้ 30 ส.ค.)*

### และตัวกรองก็พลิกทิศตามไปด้วย (DiD = Δเปรียบ)

| ตัวกรอง | Exness 23.09-26.06 | MetaQuotes ช่วงเดียวกัน | MetaQuotes เต็มช่วง |
|---|---|---|---|
| **F1 กรอบ** | **−0.168R** (t=−0.45) | +0.376R (t=+1.12) | +0.205R (t=+1.00) |
| **F2 เทรนด์ Day** | **+0.517R** (t=+1.41) | **−0.802R** (t=−2.25) | −0.364R (t=−1.69) |
| F3 เทรนด์ H4 | +0.281R (t=+0.68) | −0.664R (t=−1.96) | −0.291R (t=−1.35) |
| F5 กรอบวัน | +0.011R (t=+0.02) | −0.464R (t=−1.34) | −0.156R (t=−0.69) |

> 🔴 **F2 พลิกจาก −0.80R เป็น +0.52R เพียงเพราะเปลี่ยนโบรก ช่วงเวลาเดียวกันเป๊ะ**
> `EA-SPEC §4.3` เขียนไว้เองว่า *"เลื่อนเวลาเปิดแท่ง H4 ±1 ชม. แล้วผลพลิกจากบวกเป็นลบ = ระบบเปราะกับ bar alignment เกินกว่าจะเทรดจริง 🔴"*
> ~~**นี่ไม่ได้เลื่อนเวลาด้วยซ้ำ** (ทั้งคู่เปิด 00/04/08/12/16/20) — แค่เปลี่ยน feed ผลก็พลิก~~
> 🔴 **ผิด (แก้ 30 ส.ค. 2026): มัน "เลื่อนเวลา" อยู่แล้ว 2-3 ชม.** — ป้ายเวลาเหมือนกัน แต่นาฬิกาเซิร์ฟเวอร์คนละเรือน
> ⇒ กรณีนี้ **เข้าเงื่อนไข 🔴 ของ `§4.3` ตรงๆ** และ `RESULT-L2` ยืนยันด้วยการเลื่อนแท่งบนดาต้าชุดเดียว
>
> **สิ่งเดียวที่มั่นคงข้ามทั้ง 3 ชุด: F1 (กรอบ) ไม่เคยมี t ถึง 1.5 และบน Exness มันยัง "ลดค่า" ของสัญญาณด้วยซ้ำ**

⚠️ **ห้ามสรุปว่า "Exness ดีกว่า จบ"** — ดาต้า Exness ในเทอร์มินัลนี้ปี 2019-2021 บางมาก (2019 มีแค่ ~309 แท่ง H4) และ L1 รันได้แค่ 2.8 ปี
ต้องได้ดาต้า Exness ที่สมบูรณ์ ≥ 6 ปีก่อน ถึงจะเอาผลนั้นมาตัดสินอะไรได้

---

## 9. ตอบคำถามหลักของงานนี้

| คำถาม | คำตอบ |
|---|---|
| **F1 "เกิดที่กรอบ" เพิ่มค่าไหม** | 🔴 **ไม่** — เปรียบหลังกรองยังติดลบ (−0.72pp) · Δ ไม่ถึง t 1.5 · บนดาต้า Exness มันติดลบด้วยซ้ำ (−0.168R) · นิยาม 4 แบบให้คำตอบเดียวกัน |
| **มีตัวกรองไหนเพิ่มค่าจริงบ้าง** | **ไม่มีสักตัว** — ไม่ผ่านเกณฑ์ §4.2 ครบ 4 ข้อเลยแม้แต่ตัวเดียว บนทั้ง 3 ชุดข้อมูล |
| **ระบบนี้มี edge ที่วัดได้ไหม** | **บนดาต้า MetaQuotes: ไม่มี (สรุปได้)** · **บนดาต้า Exness: ยังตอบไม่ได้** — เห็น +6.56pp (t=+2.15) แต่ N=199 ช่วงแค่ 2.8 ปี ไม่มี holdout และผลไม่ทนต่อการเปลี่ยน feed |
| **คำสอน "กรอบ 80% : SIG 20%" ถูกไหม** | **ลำดับถูก แต่ขนาดผิด** — กรอบมีค่ามากกว่า SIG จริง (+0.5pp vs ~0) แต่ทั้งคู่เล็กกว่าที่ต้องใช้ ~10 เท่า `[ชั้น C]` |

---

## 10. ข้อจำกัดที่ต้องรู้ก่อนเชื่อผลนี้

1. **ยังไม่ได้ใส่ตัวคัด "ปลายไส้สัมผัส 7-14 จุด"** (ช่อง G5) — ต้องเดาเพิ่ม 3 พารามิเตอร์ ถ้าใส่ N จะเหลือน้อยกว่า 252 มาก ซึ่ง**ตีความไม่ได้อยู่ดี** (เกณฑ์ N ≥ 35%)
2. **F3 เป็น `[SPEC-เดา]` ทั้งก้อน** — โค้ชไม่ได้ให้นิยาม swing structure เป็นตัวเลข
3. **F5 มีข้อเดาบังคับเรื่องเวลา 07:00** — ทดสอบ 2 ค่า (08:00 / 04:00) ผลเป็นลบทั้งคู่
4. **ยังไม่ได้ทดสอบ leave-one-out** (`§4.2` ขอ 2 การทดสอบ) — ทำไม่ได้เพราะไม่มีตัวกรองไหนผ่าน leave-one-in ให้ประกอบเป็น "ชุดเต็ม"
5. **ยังไม่ได้ทดสอบเงื่อนไขห้ามเข้า 9 ข้อ `§1.7`** และ **risk guard 15 ข้อ `[โม2 p.84-89]`** — พวกนี้เป็นตัวคุมความเสี่ยง ไม่ใช่ตัวสร้างเปรียบ
6. **ผลทั้งหมดวัดบนเรขาคณิต SL 300 / TP 1500 จาก entry** (เกณฑ์ B) เพราะเป็นเรขาคณิตเดียวที่มี control เชิงประจักษ์เทียบได้ · เรขาคณิตท่า A2 จริง (SL = ไส้ Sig) เทียบได้แค่กับ null ทฤษฎี ตามที่ L0 ทำไว้

---

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

| # | ทำอะไร | ทำไม |
|---|---|---|
| ~~1~~ | ~~🔴 หาดาต้า Exness (หรือ GBE) H4+M1 ที่สมบูรณ์ ≥ 6 ปี แล้วรัน L0+L1 ซ้ำทั้งชุด~~ | ❌ **ยกเลิก 30 ส.ค. 2026** — `RESULT-L2` ข้อ 4 พิสูจน์แล้วว่าตัวแปรที่ทำให้ผลต่างคือ **กริดแท่ง ไม่ใช่แหล่งข้อมูล** · หาดาต้าเพิ่มก็ได้คำตอบเดิม |
| ~~2~~ | ~~**เทสความเปราะโดยตรง** — เลื่อนเวลาเปิดแท่ง H4 ±1 ชม. บนดาต้าชุดเดียวกัน (`§4.3` ข้อ 3)~~ | ✅ **ทำแล้ว 30 ส.ค. 2026 → `RESULT-L2-robustness.md`** · ผลพลิกเครื่องหมายที่ ±1 ชม. จริง = 🔴 |
| **3** | **ถามโค้ช: Pin/Doji และ "สัมผัส 7-14 จุด" มีเกณฑ์ตัวเลขไหม** | ถ้าตอบ "ดูเอา" = ระบบเป็น discretionary จริง โค้ดได้แค่โครง — เป็นคำตอบเชิงระบบที่สำคัญที่สุดและได้มาฟรี |
| ~~4~~ | ~~เอา F1+F2+F3 มารวมกันแล้วจูนให้ผ่าน~~ | ❌ **ห้าม** — ข้อ 7 แสดงแล้วว่าเพดานของการรวมทุกแบบยังอยู่ในระดับ noise |
| ~~5~~ | ~~ลง M5/M1 หา entry สวยขึ้น~~ | ❌ **ห้าม** — `CLAUDE.md` เขียนไว้เอง: กรอบ D/H4 ไม่มีเปรียบ ลงไป entry สวยแค่ไหนก็ไม่ช่วย |

---

## ไฟล์

| ไฟล์ | คืออะไร |
|---|---|
| `ea/MaePla_L1.mq5` | L0 + คอลัมน์บริบท 14 ตัว (ตรรกะ PA เดิมทุกบรรทัด — พิสูจน์แล้ว 0 diff) |
| `ea/bt_l1.ini` · `bt_l1_kaew.ini` · `bt_l1_exness.ini` | config 3 รอบ |
| `ea/run_l1.sh` · `run_l1_exness.sh` | runner |
| `ea/analyze_l1_filters.py` | leave-one-in ทีละตัว + ตรวจความไวของนิยาม + รายปี |
| `ea/summarize_l1.py` | ตารางสรุป + เพดาน 32 การรวม + ทดสอบตัวกรองบนการเข้าไม้สุ่มล้วน |
| `ea/data/maepla_l1_{all,kaew,exness}.csv` | ผลดิบ (36+14 คอลัมน์) |
| `ea/data/l1_analysis_{default,kaew}.txt` · `l1_summary.txt` | ผลวิเคราะห์เต็ม |
