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

News:

IB Exness 16 สิงหาคม 2568 ประกาศจับสลากผลรางวัล
รางวัลที่ 1 มือถือ Oppo A3X 4GB/64GB เครื่อง 1 รางวัล หรือ 100 USD 1 รางวัล
รางวัลที่ 2 10 USD 10 รางวัล
รางวัลที่ 3 หมวก Exness 10 รางวัล
ลูกค้าใหม่ สมัครได้ที่ https://www.exness.com/a/73208
ลูกค้าเก่าที่สมัครผ่านลิงค์ตัวแทนผม สมัครได้
เงื่อนไข เทรดครบ 1 Lot Standard เริ่มต้น 1-15 สิงหาคม 2568
ติดต่อสอบถามหรือ Indox มา
สรพล
Line : junjaocom
หน้าประกาศรางวัล https://junjao.com/exness16072568.html
สเปกเครื่อง https://www.siamphone.com/spec/oppo/a3x.htm

Main Menu

Slippage ใน EA mt4 mt5 คืออะไร พร้อมตัวอย่าง

Started by junjao, July 19, 2025, 10:45:14 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

junjao

Slippage ใน EA (Expert Advisor) บน MT4 และ MT5 หมายถึง **ความแตกต่างระหว่างราคาที่ส่งคำสั่งซื้อขายกับราคาที่ระบบได้รับการยืนยันจริงในตลาด** ซึ่งเกิดขึ้นได้เมื่อราคาตลาดเปลี่ยนแปลงอย่างรวดเร็วหรือมีความผันผวนสูง ส่งผลให้ราคาที่เปิดออเดอร์จริงไม่ตรงกับราคาที่ EA ต้องการเปิด

---

### อธิบายง่าย ๆ

* สมมติ EA ต้องการเปิดออเดอร์ที่ราคา 1.2000
* แต่เมื่อส่งคำสั่งไปถึงโบรกเกอร์ ราคาตลาดเปลี่ยนเป็น 1.2005
* EA จะเปิดออเดอร์ที่ราคา 1.2005 แทน ซึ่งราคานี้เรียกว่า **เกิด slippage 5 pip**

---

### สาเหตุของ Slippage

* ตลาดมีความผันผวนสูง (เช่นข่าวเศรษฐกิจ)
* สภาพคล่องของตลาดต่ำ (ปริมาณซื้อขายน้อย)
* ความล่าช้าในการส่งคำสั่งซื้อขาย

---

### ตัวอย่างโค้ด EA ใน MT4 ที่ใช้กำหนด Slippage

```mql4
double price = Ask;
int slippage = 3;  // กำหนด Slippage สูงสุด 3 pips

int ticket = OrderSend(Symbol(), OP_BUY, 0.1, price, slippage, 0, 0, "Buy Order", 12345, 0, clrGreen);

if(ticket < 0)
{
    Print("OrderSend failed with error #", GetLastError());
}
else
{
    Print("Order opened with ticket #", ticket);
}
```

* ในโค้ดนี้ `slippage` คือจำนวน pip ที่ยอมให้ราคาผิดเพี้ยนจากที่ตั้งไว้ได้ (เช่น 3 pips)
* ถ้าตลาดเปลี่ยนราคามากกว่า 3 pip คำสั่งจะไม่ถูกเปิด

---

### สรุป

* Slippage คือความแตกต่างระหว่างราคาที่ส่งคำสั่งกับราคาที่เปิดจริง
* มีผลต่อการเข้า-ออกออเดอร์ใน EA
* ควรกำหนดค่า slippage ในคำสั่งเปิดออเดอร์เพื่อควบคุมความเสี่ยง

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

ได้เลยครับ! นี่คือตัวอย่างโค้ด EA แบบง่าย ๆ ทั้งใน **MT4** และ **MT5** ที่ใช้กำหนดค่า Slippage เวลาเปิดคำสั่งซื้อ (Buy Order) พร้อมอธิบายประกอบโค้ดให้ครับ

---

## ตัวอย่างโค้ด MT4 (MQL4)

```mql4
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
    Print("EA เริ่มทำงาน");
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
    double lotSize = 0.1;        // ขนาดล็อต
    double price = Ask;          // ราคาซื้อปัจจุบัน
    int slippage = 3;            // กำหนด Slippage 3 pips

    // ตรวจสอบว่าไม่มีออเดอร์เปิดอยู่แล้ว
    if(OrdersTotal() == 0)
    {
        int ticket = OrderSend(Symbol(), OP_BUY, lotSize, price, slippage, 0, 0, "Buy Order", 12345, 0, clrGreen);

        if(ticket < 0)
        {
            Print("เปิดออเดอร์ล้มเหลว! Error: ", GetLastError());
        }
        else
        {
            Print("เปิดออเดอร์สำเร็จ! Ticket: ", ticket);
        }
    }
}
```

---

## ตัวอย่างโค้ด MT5 (MQL5)

```mql5
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
    Print("EA เริ่มทำงาน");
    return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
{
    double lotSize = 0.1;        // ขนาดล็อต
    double price = SymbolInfoDouble(_Symbol, SYMBOL_ASK); // ราคาซื้อปัจจุบัน
    int slippage = 3;            // กำหนด Slippage 3 points (ใน MT5 เป็น points ไม่ใช่ pips)

    MqlTradeRequest request;
    MqlTradeResult result;
    ZeroMemory(request);
    ZeroMemory(result);

    request.action = TRADE_ACTION_DEAL;      // เปิดคำสั่งตลาด
    request.symbol = _Symbol;
    request.volume = lotSize;
    request.type = ORDER_TYPE_BUY;
    request.price = price;
    request.deviation = slippage;             // กำหนด Slippage
    request.magic = 12345;
    request.comment = "Buy Order";

    if(!OrderSend(request, result))
    {
        Print("OrderSend ล้มเหลว! Error: ", GetLastError());
    }
    else
    {
        if(result.retcode == TRADE_RETCODE_DONE)
            Print("เปิดออเดอร์สำเร็จ! Ticket: ", result.order);
        else
            Print("เปิดออเดอร์ไม่สำเร็จ! รหัส: ", result.retcode);
    }
}
```

---

### **ข้อสังเกต**

* MT4 ใช้หน่วยเป็น **pip** ในการกำหนด slippage
* MT5 ใช้หน่วยเป็น **point** (1 pip = 10 points ในคู่เงินที่มีทศนิยม 5 ตำแหน่ง เช่น EURUSD 1.23456)

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

MT4 MT5 EA Indicator EURUSD USDJPY XAUUSD Gold Bitcoin Oil
สอบถาม 081-446-5311 , line : junjaocom , Email : jun_jao2000@hotmail.com
สมัคร Exness ได้ที่ https://www.exness.com/a/73208
หน้าลงทะเบียน Exness ได้ที่ https://www.exness.com/boarding/sign-up/a/73208?lng=th
ขั้นตอนสมัคร exness https://www.junjao.com/board/index.php?topic=279

junjao

MT4 MT5 EA Indicator EURUSD USDJPY XAUUSD Gold Bitcoin Oil
สอบถาม 081-446-5311 , line : junjaocom , Email : jun_jao2000@hotmail.com
สมัคร Exness ได้ที่ https://www.exness.com/a/73208
หน้าลงทะเบียน Exness ได้ที่ https://www.exness.com/boarding/sign-up/a/73208?lng=th
ขั้นตอนสมัคร exness https://www.junjao.com/board/index.php?topic=279