# 🔧 gotcha: คอมไพล์ MQL5 บน Mac (wine) — `metaeditor64.exe /compile` ใช้ไม่ได้

**วันที่:** 2026-08-30 · **พบตอน:** ตั้งสนาม backtest ให้ EA ระบบแม่ปลา

## อาการ
เรียก `metaeditor64.exe /compile:"...mq5" /log` ผ่าน wine บน Mac →
- เปิด **GUI เต็ม stack** ขึ้นมา
- **ปิดตัวเองเงียบๆ ใน ~8 วินาที**
- **ไม่ compile จริง · ไม่มี log · ไม่มีไฟล์ .ex5 ออกมา**
- exit code ปกติ ไม่มี error ให้จับ ← หลอกที่สุด

## ทำไมเอกสารเดิมบอกว่าใช้ได้
`trade/ea/_doc/STATUS.md` เขียนว่าใช้ได้ — **แต่นั่นคือบน VPS Windows** คนละ environment กับ Mac+wine

## ✅ วิธีที่ใช้ได้จริง
**ปล่อยให้ `terminal64.exe /config:<ini>` โหมด Tester คอมไพล์ให้เองตอนโหลด Expert**
- ตรงกับที่ `trade/ea/FTMO_Guardian.html` §4 เขียนไว้อยู่แล้ว
- เคล็ดลับ: **ลบ .ex5 เก่าทิ้งก่อนรันทุกครั้ง** เพื่อบังคับให้ recompile จริง (ไม่งั้นมันใช้ตัวเก่า → แก้โค้ดแล้วผลไม่เปลี่ยน = หลงทางได้ง่ายมาก)
- ผลลัพธ์: compile ผ่าน · backtest จบใน <1 วิ (EA เปล่า) · ได้ report .htm ออกมาจริง

## gotcha อื่นที่เจอในรอบเดียวกัน (จาก `trade/ea/soju/soju_lane.sh`)
- ต้องมี section `[Common]` + login ใน .ini ไม่งั้น terminal ไม่ยอมรัน tester
- **พอร์ต 3000 ชนกันได้** ถ้ารันหลาย lane พร้อมกัน
- ต้อง `pkill metatester64` ก่อนรันรอบใหม่ ไม่งั้น process ค้าง
- **Mac ห้าม sleep ระหว่างรัน** — backtest จะตายกลางคัน
- อย่า hardcode password ลง repo — อ่านจาก `trade/ea/_doc/demo-account.md` ตอน runtime แล้วลบไฟล์ชั่วคราวทิ้งหลังรันเสร็จ

## ผลที่ยืนยันแล้ว
```
Symbol: XAUUSD · Period: H4 (2024.01.01–2026.08.01)
History Quality: 99% · Bars: 3,999 · Ticks: 3,630,667
```
→ **สนามพร้อม 100% เหลือแค่เติม logic**
