จั่นเจาดอทคอม ถามตอบ คอมพิวเตอร์ อินเตอร์เน็ต Forex MT4 MT5 เทรดทอง

ตลาดหุ้น set ตลาดล่วงหน้า tfex forex Exness FBS XM => การเขียน EA ใน MT4 และ MT5 => Topic started by: junjao on July 19, 2025, 06:41:01 PM

Title: request.type_filling = ORDER_FILLING_IOC; คืออะไร
Post by: junjao on July 19, 2025, 06:41:01 PM
`request.type_filling = ORDER_FILLING_IOC;` ใน MQL5 หมายถึง การตั้งค่า **โหมดการเติมคำสั่งซื้อขาย (Order Filling Mode)** เป็นแบบ **IOC (Immediate Or Cancel)**

---

### ความหมายของ `ORDER_FILLING_IOC` (Immediate Or Cancel)

* คำสั่งจะพยายาม **ส่งและเติมทันที (immediate fill)** ให้ได้ในปริมาณที่ขอ
* ถ้าไม่สามารถเติมได้เต็มจำนวนทันที จะ **เติมเท่าที่ทำได้ทันที แล้วส่วนที่เหลือจะถูกยกเลิก (cancel) ทันที**
* ไม่มีการรอคิวหรือเติมทีหลัง (no partial fill later)
* เหมาะกับตลาดที่ต้องการการเทรดทันที ไม่รอคำสั่งค้าง

---

### โหมดการเติมคำสั่งอื่น ๆ ใน MQL5

* `ORDER_FILLING_FOK` (Fill Or Kill)
  ต้องเติมทั้งหมดในคำสั่งทันทีถ้าไม่เต็มจะยกเลิกทั้งคำสั่งเลย ไม่มี partial fill

* `ORDER_FILLING_RETURN` (Return)
  เติมเท่าที่ทำได้ทันที แล้วส่งกลับผลลัพธ์ หากไม่เต็มก็รับ partial fill โดยไม่ยกเลิกส่วนที่เหลือ (บางโบรกเกอร์ไม่รองรับโหมดนี้)

---

### สรุป

* การใช้ `request.type_filling = ORDER_FILLING_IOC;` จะบอกโบรกเกอร์ว่า "เติมออร์เดอร์นี้ทันทีเท่าที่ทำได้ แล้วยกเลิกส่วนที่เหลือถ้าไม่เต็มทันที"
* โบรกเกอร์บางแห่งไม่รองรับโหมดนี้ จึงอาจเกิดข้อผิดพลาด "Unsupported filling mode" ขึ้นได้
* คุณควรตรวจสอบกับโบรกเกอร์ว่า **รองรับโหมดการเติมแบบใด** แล้วตั้งค่าตามนั้น

-----------------------------------------