คู่มือรหัสข้อผิดพลาด MQL5 / MT5 — รายการ ERR_NO_MONEY และ ERR_TRADE_DISABLED
สารบัญ
- วิธีตรวจสอบแท็บ Expert
- รหัสข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
- ERR_NO_MONEY (รหัสข้อผิดพลาด 134)
- ERR_TRADE_DISABLED (รหัสข้อผิดพลาด 4109)
- ERR_MARKET_CLOSED (รหัสข้อผิดพลาด 132)
- ERR_INVALID_STOPS (รหัสข้อผิดพลาด 130)
- ERR_OFF_QUOTES (รหัสข้อผิดพลาด 136)
- ERR_TRADE_TIMEOUT (รหัสข้อผิดพลาด 128)
- TRADE_RETCODE_REJECT (รหัสส่งคืน 10006)
- "Margin level too low"
- "No signal on this bar" หรือ "Wait for next bar"
- การจัดลำดับความสำคัญของข้อผิดพลาด
- วิธีตรวจสอบล็อกในแท็บ Expert อย่างมีประสิทธิภาพ
- การกรองล็อก
- ตำแหน่งไฟล์ล็อก
- สรุป
- คำถามที่พบบ่อย
- Q: ค้นหารหัสข้อผิดพลาดได้ที่ไหน?
- Q: เมื่อมีข้อผิดพลาดจำนวนมาก ควรหยุด EA หรือไม่?
- Q: มีข้อผิดพลาด "Invalid account" ขึ้นมา
- Q: ไม่มีข้อผิดพลาด แต่ EA ไม่เปิดออเดอร์เลย
คู่มือรหัสข้อผิดพลาด MQL5 / MT5 — รายการ ERR_NO_MONEY และ ERR_TRADE_DISABLED
เมื่อแท็บ Expert ของ MT5 แสดงรหัสข้อผิดพลาด MQL5 อย่าง ERR_NO_MONEY หรือ ERR_TRADE_DISABLED อาจทำให้กังวลใจ แต่ส่วนใหญ่แล้วสาเหตุและวิธีแก้ไขนั้นชัดเจนมาก บทความนี้รวบรวมรหัสข้อผิดพลาดหลักที่เกิดขึ้นจริงระหว่างใช้งาน EA และวิธีแก้ปัญหาสำหรับแต่ละรหัส
วิธีตรวจสอบแท็บ Expert
คลิกแท็บ "Expert" ที่ด้านล่างของ MT5 เพื่อดูล็อกของ EA ทั้งหมดเรียงตามเวลา
รูปแบบการแสดงผล:
2026.05.18 10:00:01.234 GOLD EMA ATR EA XAUUSD,H1: [ERROR] 130
วันที่/เวลา ชื่อ EA คู่สกุลเงิน ไทม์เฟรม ข้อความ
หากมีข้อผิดพลาดปรากฏขึ้น ให้ระบุสาเหตุจากหมายเลขรหัสข้อผิดพลาดนั้น
รหัสข้อผิดพลาดที่พบบ่อยและวิธีแก้ไข
ERR_NO_MONEY (รหัสข้อผิดพลาด 134)
ตัวอย่างข้อความ: "Order failed: not enough money"
"ERR_NO_MONEY"
สาเหตุ: มาร์จิ้นไม่เพียงพอจึงไม่สามารถเปิดโพซิชันได้
วิธีแก้ไข:
- ตรวจสอบอัตรามาร์จิ้นปัจจุบันในแท็บ "Trade" ของ MT5
- หากอัตรามาร์จิ้นใกล้ 100% ให้พิจารณาเติมเงินเพิ่ม
- ลด RiskPercent ใน EA เพื่อลดขนาดล็อต
- ปิดโพซิชันที่ถือไว้บางส่วนด้วยตนเองเพื่อคืนมาร์จิ้น
ERR_TRADE_DISABLED (รหัสข้อผิดพลาด 4109)
ตัวอย่างข้อความ: "Trade is not allowed"
"AutoTrading disabled"
สาเหตุ: การเทรดอัตโนมัติของ MT5 ถูกปิดอยู่
วิธีแก้ไข:
- คลิกปุ่ม "AutoTrading" บนแถบเครื่องมือด้านบนของ MT5 ให้เป็น ON (สีเขียว)
- ไปที่ Tools → Options → Expert Advisors → เปิดใช้งาน "Allow automated trading" แล้วรีสตาร์ท
ข้อผิดพลาดนี้มักเกิดขึ้นเมื่อ MT5 เริ่มต้นอัตโนมัติหลังจาก VPS รีสตาร์ท
ERR_MARKET_CLOSED (รหัสข้อผิดพลาด 132)
ตัวอย่างข้อความ: "Market is closed"
สาเหตุ: EA พยายามเปิดออเดอร์นอกเวลาทำการ (วันหยุดสุดสัปดาห์หรือวันหยุดนักขัตฤกษ์)
วิธีแก้ไข: โดยปกติแล้วไม่ใช่ปัญหาแต่อย่างใด ตลาดปิดในช่วงประมาณเที่ยงคืนวันเสาร์ถึงบ่าย 5 โมงวันอาทิตย์ (เวลาเซิร์ฟเวอร์) หาก EA พยายามเข้าออเดอร์ในช่วงนี้จะแสดงข้อผิดพลาดนี้ แต่จะกลับมาทำงานอัตโนมัติในวันจันทร์
ERR_INVALID_STOPS (รหัสข้อผิดพลาด 130)
ตัวอย่างข้อความ: "Invalid stops"
"Stop level violation"
สาเหตุ: ค่า SL (Stop Loss) หรือ TP (Take Profit) ที่ตั้งไว้ขัดกับข้อกำหนดระดับสต็อปของโบรกเกอร์
วิธีแก้ไข:
- ตรวจสอบ Stop Level (ระยะ SL ขั้นต่ำ) ของโบรกเกอร์ (คลิกขวาที่สัญลักษณ์ใน MT5 → Specification → ช่อง "Stop Level")
- ตรวจสอบว่าระยะ SL ของ EA กว้างกว่า Stop Level หรือไม่
- ปัญหานี้มักเกิดขึ้นในช่วงที่ค่า ATR ต่ำมาก (ความผันผวนต่ำ)
ERR_OFF_QUOTES (รหัสข้อผิดพลาด 136)
ตัวอย่างข้อความ: "Off quotes"
สาเหตุ: ไม่ได้รับราคาจากเซิร์ฟเวอร์โบรกเกอร์ มีปัญหาการเชื่อมต่อ
วิธีแก้ไข:
- ตรวจสอบสถานะการเชื่อมต่อในแถบสถานะด้านล่างของ MT5
- หากหลุดการเชื่อมต่อ ให้รีสตาร์ท MT5
- ตรวจสอบข้อมูลเซิร์ฟเวอร์ขัดข้องจากโบรกเกอร์
- ตรวจสอบการเชื่อมต่อเครือข่ายของ VPS
ERR_TRADE_TIMEOUT (รหัสข้อผิดพลาด 128)
ตัวอย่างข้อความ: "Trade timeout"
สาเหตุ: ออเดอร์หมดเวลา เกิดจากเซิร์ฟเวอร์โหลดสูงหรือความล่าช้าของเครือข่าย
วิธีแก้ไข:
- มักเกิดขึ้นในช่วงเวลาโหลดสูง เช่น ทันทีหลังประกาศตัวเลขเศรษฐกิจสำคัญ
- โดยพื้นฐานแล้ว EA จะลองใหม่อีกครั้งในติ๊กถัดไป จึงสามารถปล่อยทิ้งไว้ได้
- หากเกิดขึ้นบ่อยครั้ง ให้ตรวจสอบสภาพแวดล้อมเครือข่ายของ VPS หรือเปลี่ยนโบรกเกอร์
TRADE_RETCODE_REJECT (รหัสส่งคืน 10006)
ตัวอย่างข้อความ: "Request rejected"
สาเหตุ: ออเดอร์ถูกโบรกเกอร์ปฏิเสธ เนื่องจากสเปรดเกินกำหนดหรือราคาเคลื่อนไหวมากเกินไป
วิธีแก้ไข:
- ตรวจสอบค่า MaxSpreadPoints ที่ตั้งไว้ ปัญหานี้มักเกิดขึ้นเมื่อสเปรดกว้างขึ้น
- หลังประกาศตัวเลขเศรษฐกิจ ถือว่าเป็นการทำงานปกติและสามารถเพิกเฉยได้
- หากเกิดขึ้นบ่อยครั้ง ให้เพิ่มค่า MaxSpreadPoints ขึ้นเล็กน้อย
"Margin level too low"
ตัวอย่างข้อความ: "Margin level too low. Skip signal."
สาเหตุ: ด้วยการตั้งค่า UseMarginCheck = true ใน EA เมื่ออัตรามาร์จิ้นต่ำกว่า MinMarginLevel (เช่น 200%) EA จะหยุดเปิดออเดอร์อัตโนมัติ
วิธีแก้ไข:
- นี่คือการทำงานป้องกันปกติ (ไม่ใช่ข้อผิดพลาด)
- เมื่ออัตรามาร์จิ้นฟื้นตัว EA จะกลับมาเปิดออเดอร์อีกครั้ง
- วิธีแก้ที่ต้นเหตุ: เติมเงินเพิ่มหรือลด RiskPercent
"No signal on this bar" หรือ "Wait for next bar"
นี่ไม่ใช่ข้อผิดพลาด แต่เป็นข้อมูลดีบักปกติ
"No signal. ATR=1245, EMA(50)=1998.23"
EA ประเมินแผนภูมิทุกครั้งและแสดงล็อกปกติว่า "ครั้งนี้ไม่ตรงเงื่อนไขการเข้าออเดอร์"
การจัดลำดับความสำคัญของข้อผิดพลาด
| ความสำคัญ | ข้อผิดพลาด | การดำเนินการ |
|---|---|---|
| 🚨 เร่งด่วน | ERR_NO_MONEY (134) | เติมมาร์จิ้นทันที |
| 🚨 เร่งด่วน | ERR_TRADE_DISABLED (4109) | เปิด AutoTrading |
| ⚠️ ระวัง | ERR_INVALID_STOPS (130) | ตรวจสอบการตั้งค่า SL |
| ⚠️ ระวัง | ERR_OFF_QUOTES (136) เกิดบ่อย | ตรวจสอบสภาพแวดล้อมการเชื่อมต่อ |
| ✅ ปกติ | ERR_MARKET_CLOSED (132) เฉพาะวันหยุดสุดสัปดาห์ | ปล่อยทิ้งไว้ |
| ✅ ปกติ | ERR_TRADE_TIMEOUT (128) เป็นครั้งคราว | ปล่อยทิ้งไว้ |
| ✅ ปกติ | Margin level too low | การทำงานปกติเมื่อมาร์จิ้นต่ำ |
วิธีตรวจสอบล็อกในแท็บ Expert อย่างมีประสิทธิภาพ
การกรองล็อก
คลิกขวาในแท็บ Expert → "Filter" เพื่อแสดงเฉพาะ EA หรือข้อผิดพลาดที่ต้องการ
ตำแหน่งไฟล์ล็อก
ไฟล์ล็อกของ MT5 ถูกบันทึกที่:
C:\Users\[ชื่อผู้ใช้]\AppData\Roaming\MetaQuotes\Terminal\[ID]\MQL5\Logs\
ไฟล์จะถูกสร้างอัตโนมัติตามวันที่ เมื่อต้องการตรวจสอบข้อผิดพลาด ให้เปิดโฟลเดอร์นี้
สรุป
ข้อผิดพลาดส่วนใหญ่ของ EA แบ่งออกเป็น 4 หมวดหมู่:
- มาร์จิ้นไม่เพียงพอ: แก้ได้โดยเติมเงินหรือลดขนาดล็อต
- AutoTrading ปิดอยู่: แค่คลิกปุ่มก็แก้ได้
- ปัญหาการเชื่อมต่อ: รีสตาร์ท MT5 หรือตรวจสอบเครือข่าย VPS
- การทำงานปกติ: ปล่อยทิ้งไว้ได้ (ตลาดปิดวันหยุดสุดสัปดาห์, หลีกเลี่ยงสเปรดกว้าง เป็นต้น)
ตรวจสอบแท็บ Expert ทุกวันและสร้างนิสัยในการตรวจจับข้อผิดพลาดที่เร่งด่วน (134 และ 4109) อย่างรวดเร็ว
คำถามที่พบบ่อย
Q: ค้นหารหัสข้อผิดพลาดได้ที่ไหน?
สามารถดูรายการรหัสข้อผิดพลาดทั้งหมดได้ที่เอกสารทางการของ MQL5 (mql5.com) นอกจากนี้ยังสามารถค้นหาได้จากความช่วยเหลือของ MT5 (กดปุ่ม F1)
Q: เมื่อมีข้อผิดพลาดจำนวนมาก ควรหยุด EA หรือไม่?
หาก ERR_MARKET_CLOSED (132) หรือ ERR_TRADE_TIMEOUT (128) เกิดขึ้นเป็นครั้งคราว ไม่จำเป็นต้องหยุด EA อย่างไรก็ตาม หาก ERR_NO_MONEY (134) เกิดขึ้นซ้ำๆ ให้หยุด EA ชั่วคราวแล้วตรวจสอบสถานะมาร์จิ้นก่อนเริ่มใหม่
Q: มีข้อผิดพลาด "Invalid account" ขึ้นมา
ข้อมูลล็อกอิน MT5 (ชื่อเซิร์ฟเวอร์, Login ID, รหัสผ่าน) อาจไม่ถูกต้อง ลองล็อกอินใหม่ผ่าน File → Open an Account
Q: ไม่มีข้อผิดพลาด แต่ EA ไม่เปิดออเดอร์เลย
หากไม่มีข้อผิดพลาดและ EA ไม่เปิดออเดอร์ นั่นคือ "ไม่มีสัญญาณ ซึ่งเป็นสถานะปกติ" EA ไม่ได้เปิดออเดอร์ทุกแท่งเทียน แต่จะเปิดเฉพาะเมื่อเงื่อนไขครบถ้วนเท่านั้น ให้รอดูไปก่อน สำหรับ EA บนไทม์เฟรม H1 การเปิดออเดอร์ 1-3 ครั้งต่อวันถือว่าปกติ
บทความที่เกี่ยวข้อง
2026-05-22
วิธีอ่านและทำความเข้าใจรายงาน Backtest ของ MT5 【ฉบับปี 2026】อธิบายความหมายของทุกตัวชี้วัดอย่างครบถ้วน
2026-05-18
วิธีกำหนดระยะเวลาทดสอบ Demo ก่อนใช้งาน EA จริง - สิ่งที่ต้องตรวจสอบใน 3 เดือน
2026-05-18
การจัดการ Drawdown ของ EA บน MT5 - การตั้งค่าหยุดอัตโนมัติและการควบคุมจิตใจ
2026-05-18
EA เทรดอัตโนมัติต้องใช้ทุนขั้นต่ำเท่าไร? ตัวอย่างจริงของมาร์จิ้นและการออกแบบล็อต
คอร์สอีเมล 5 วัน (ฟรี)
รับอีเมลวันละหนึ่งฉบับครอบคลุมพื้นฐานการเทรด FX อัตโนมัติ วิธีอ่านแบ็คเทสต์อย่างถูกต้อง และเคล็ดลับเลือกโบรกเกอร์
* ปกป้องความเป็นส่วนตัวอย่างเคร่งครัด คุณสามารถยกเลิกการสมัครได้ตลอดเวลา