Thursday, February 6, 2025

MQL สำหรับการเรียนรู้เริ่มต้น

MQL (MetaQuotes Language) เป็นภาษาสำหรับพัฒนา Expert Advisors (EA), Indicators, และ Scripts บนแพลตฟอร์ม MetaTrader (MT4/MT5) ใช้ในการเขียนโปรแกรมเทรดอัตโนมัติและวิเคราะห์กราฟทางเทคนิค

เริ่มต้นกับ MQL:

  1. ติดตั้ง MetaTrader – ดาวน์โหลดและติดตั้ง MT4 หรือ MT5
  2. เปิด MetaEditor – เป็นเครื่องมือเขียนโค้ด MQL ใน MetaTrader
  3. เรียนรู้โครงสร้างภาษา – คล้าย C++ มีฟังก์ชัน, ตัวแปร, เงื่อนไข, ลูป
  4. เริ่มเขียนโค้ดง่ายๆ – ลองสร้าง Indicator หรือ EA ง่ายๆ เช่น แสดงข้อความบนกราฟ
  5. ศึกษาคำสั่งสำคัญ – เช่น OrderSend()iMA()iRSI()


การพัฒนา EA

การพัฒนา Expert Advisor (EA) ใน MQL ใช้สำหรับสร้างระบบเทรดอัตโนมัติบน MetaTrader ซึ่งสามารถเปิด/ปิดออเดอร์ตามเงื่อนไขที่กำหนด

ขั้นตอนการพัฒนา EA เบื้องต้น

  1. สร้างไฟล์ EA

    • เปิด MetaEditor → ไปที่ File → New → เลือก Expert Advisor (template)
  2. โครงสร้างพื้นฐานของ EA

    • EA จะมีฟังก์ชันหลักสำคัญ:
      mql4

      // ฟังก์ชันเริ่มต้น (ทำงานเมื่อ EA ถูกโหลด) int OnInit() { return INIT_SUCCEEDED; } // ฟังก์ชันหลัก ทำงานเมื่อราคามีการเปลี่ยนแปลง void OnTick() { } // ฟังก์ชันปิด (ทำงานเมื่อ EA ถูกปิด) void OnDeinit(const int reason) { }
  3. เพิ่มเงื่อนไขการเปิด/ปิดออเดอร์

    • ตัวอย่างเปิดออเดอร์เมื่อราคาอยู่เหนือเส้น EMA 50
      mql4

      void OnTick() { double ema50 = iMA(Symbol(), 0, 50, 0, MODE_EMA, PRICE_CLOSE, 0); double price = Close[0]; if (price > ema50) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "Buy Order", 0, 0, clrBlue); } }
  4. ทดสอบ EA ด้วย Strategy Tester

    • ใน MetaTrader → ไปที่ View → Strategy Tester → เลือก EA และตั้งค่าทดสอบ
  5. ปรับปรุงและเพิ่มฟีเจอร์

    • เพิ่ม Stop Loss / Take Profit
    • ใช้ Indicator อื่นๆ เช่น RSI, MACD
    • จัดการออเดอร์ที่เปิดอยู่


เงื่อนไขการเข้าออกเทรด, การใช้ Indicator และการจัดการออเดอร์

เรามาแยกเป็น 3 ส่วนหลักในการพัฒนา EA กัน


1. เงื่อนไขการเข้าออกเทรด

การเข้าออเดอร์จะใช้เงื่อนไขทางเทคนิค เช่น ค่า Indicator, แนวรับแนวต้าน, หรือรูปแบบแท่งเทียน ส่วนการออกออเดอร์อาจใช้ Take Profit (TP), Stop Loss (SL) หรือเงื่อนไขอื่น

ตัวอย่างเข้า Buy เมื่อ EMA 50 ตัด EMA 200 ขึ้น

mql4

void OnTick() { double ema50 = iMA(Symbol(), 0, 50, 0, MODE_EMA, PRICE_CLOSE, 0); double ema200 = iMA(Symbol(), 0, 200, 0, MODE_EMA, PRICE_CLOSE, 0); if (ema50 > ema200) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "Buy Order", 0, 0, clrBlue); } }


ตัวอย่างออกออเดอร์เมื่อราคาแตะ Stop Loss หรือ Take Profit

mql4

double stopLoss = Bid - 50 * Point; double takeProfit = Bid + 100 * Point; OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, stopLoss, takeProfit, "Buy Order", 0, 0, clrBlue);

2. การใช้ Indicator ใน EA

MQL มีฟังก์ชันดึงค่าจาก Indicator เช่น

  • EMA: iMA()
  • RSI: iRSI()
  • MACD: iMACD()

ตัวอย่างใช้ RSI เป็นเงื่อนไขเข้า Buy เมื่อ RSI ต่ำกว่า 30

mql4

double rsi = iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0); if (rsi < 30) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "Buy Order", 0, 0, clrBlue); }

ตัวอย่างใช้ MACD เป็นเงื่อนไขเข้า Buy เมื่อ MACD ตัด Signal Line ขึ้น

mql4

double macdMain, macdSignal; macdMain = iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0); macdSignal = iMACD(Symbol(), 0, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0); if (macdMain > macdSignal) { OrderSend(Symbol(), OP_BUY, 0.1, Ask, 10, 0, 0, "Buy Order", 0, 0, clrBlue); }

3. การจัดการออเดอร์ใน EA

การตรวจสอบออเดอร์ที่เปิดอยู่และปิดออเดอร์เมื่อถึงเงื่อนไข

ตัวอย่างปิดออเดอร์เมื่อ RSI > 70

mql4

void CloseOrders() { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY) { double rsi = iRSI(Symbol(), 0, 14, PRICE_CLOSE, 0); if (rsi > 70) { OrderClose(OrderTicket(), OrderLots(), Bid, 10); } } } } }

ตัวอย่างปิดทุกออเดอร์ที่เปิดอยู่

mql4

void CloseAllOrders() { for (int i = OrdersTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 10); } } }

สรุป

✅ เงื่อนไขเข้าออกเทรด – ใช้ EMA, RSI, MACD หรือเงื่อนไขอื่น
✅ การใช้ Indicator – ใช้ฟังก์ชัน iMA()iRSI()iMACD() เพื่อวิเคราะห์แนวโน้ม
✅ การจัดการออเดอร์ – ตรวจสอบและปิดออเดอร์ตามเงื่อนไข


No comments:

Post a Comment

Featured Posts

Reversal chart patterns

Master Your Market Entries & Exits! Want to improve your trades? Here are 3 powerful chart patterns that help spot reversal...