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

News:

Exness ลงทะเบียนระบบใหม่ ใส่รหัสพาร์ทเนอร์ 73208
https://www.exness.com/boarding/sign-up/a/73208?lng=th
1. เลือกประเทศ ไทย
2. อีเมล์จริงของคุณ
3. รหัสผ่าน
* รหัสผ่านต้องมีความยาว 8-15 ตัว
* ใช้ทั้งอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็ก
* ใช้ทั้งตัวเลขและตัวอักษรภาษาอังกฤษ
* ห้ามใช้อักขระพิเศษ (!@#$%^&*., และอื่นๆ)
4. ใส่รหัสพาร์ทเนอร์ 73208
---------------------------------------------------------
exness เปิดบัญชีลูกค้าใหม่ 4-31 มี.ค. 2568 รับโบนัท Rebate
เงินคืนจากการเทรด EURUSD 1 Lot Rebate 1.5 USD  ,
Gold 1 Lot  Rebate 2.80 USD , BTCUSD 1 Lot Rebate 5.74 USD
เปิดบัญชี Standard ได้ที่ https://exness.com/intl/th/a/73208
แจ้ง ID ที่เปิด ได้ที่ Line : junjaocom

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