Hàm MT5 vào lệnh Buy Sell theo mô hình nến Engulfing

 1. Giới thiệu

Trong Price Action, mô hình nến Engulfing là một trong những tín hiệu đảo chiều mạnh mẽ, được nhiều trader sử dụng để xác định điểm vào lệnh. Khi lập trình Expert Advisor (EA) trên MetaTrader 5, chúng ta có thể viết hàm MQL5 để tự động phát hiện mô hình Engulfing và vào lệnh Buy hoặc Sell.

Trong bài viết này, bạn sẽ học cách:

  • Hiểu mô hình nến Engulfing.
  • Viết hàm nhận diện Engulfing trong MQL5.
  • Tự động vào lệnh Buy/Sell khi có tín hiệu.
Hàm MT5 vào lệnh Buy Sell theo mô hình nến Engulfing

2. Mô hình nến Engulfing là gì?

Mô hình Engulfing xuất hiện khi:

  • Bullish Engulfing (Tín hiệu Mua): Nến sau là nến tăng, có thân bao trùm hoàn toàn thân nến giảm trước đó.
  • Bearish Engulfing (Tín hiệu Bán): Nến sau là nến giảm, có thân bao trùm hoàn toàn thân nến tăng trước đó.

Đặc điểm:

  • Xảy ra ở vùng hỗ trợ/kháng cự quan trọng.
  • Dùng để xác định điểm đảo chiều tiềm năng.

3. Logic phát hiện Engulfing trong MQL5

  • Để xác định mô hình, ta cần so sánh:
  • Hướng nến (bullish/bearish).
  • Giá mở cửa (Open) và đóng cửa (Close).
  • Thân nến hiện tại phải lớn hơn và bao phủ thân nến trước.

4. Code MQL5 phát hiện Engulfing

#include <Trade/Trade.mqh>;

CTrade trade;

// Hàm kiểm tra mô hình nến Bullish Engulfing

bool isBullishEngulfing() {

   double open1 = iOpen(NULL, 0, 1);

   double close1 = iClose(NULL, 0, 1);

   double open2 = iOpen(NULL, 0, 2);

   double close2 = iClose(NULL, 0, 2);

if(close2 < open2 && open1 < close2 && close1 > open2)

      return true;

   return false;

}

// Hàm kiểm tra mô hình nến Bearish Engulfing

bool isBearishEngulfing() {

   double open1 = iOpen(NULL, 0, 1);

   double close1 = iClose(NULL, 0, 1);

   double open2 = iOpen(NULL, 0, 2);

   double close2 = iClose(NULL, 0, 2);

if(close2 > open2 && open1 > close2 && close1 < open2)

      return true;

   return false;

}

// Hàm vào lệnh

void placeOrder() {

   double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);

   double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);

   if(isBullishEngulfing()) {

      trade.Buy(0.1, _Symbol, ask, bid - 50 * _Point, bid + 50 * _Point, "Buy Order");

   }

   if(isBearishEngulfing()) {

      trade.Sell(0.1, _Symbol, bid, ask + 50 * _Point, ask - 50 * _Point, "Sell Order");

   }

}

void OnTick() {

   placeOrder();

}

5. Giải thích mã

  • isBullishEngulfing(): Kiểm tra nến hiện tại (1) có thân nến tăng và bao phủ hoàn toàn thân nến giảm trước đó (2).
  • isBearishEngulfing(): Kiểm tra nến hiện tại (1) có thân nến giảm và bao phủ thân nến tăng trước đó (2).
  • placeOrder(): Thực hiện lệnh Buy khi phát hiện Bullish Engulfing và Sell khi phát hiện Bearish Engulfing, với stop loss và take profit cách giá 50 pip.
  • OnTick(): Gọi hàm placeOrder() mỗi khi có tick giá mới.
  • CTrade: Sử dụng thư viện Trade.mqh để quản lý lệnh giao dịch dễ dàng hơn.

6. Mở rộng và tối ưu

  • Thêm Stop Loss & Take Profit: Đặt theo ATR hoặc vùng hỗ trợ/kháng cự.
  • Lọc tín hiệu giả: Kết hợp EMA, RSI hoặc Volume.
  • Chỉ giao dịch khi có xu hướng rõ ràng.
  • Thêm quản lý vốn: Fixed lot, % balance hoặc martingale.

7. Kết luận

Với hàm MQL5 trên, bạn đã có thể phát hiện mô hình nến Engulfing và tự động vào lệnh Buy/Sell trên MT5. Đây là nền tảng để phát triển các EA dựa trên Price Action và nâng cao chiến lược giao dịch.


Mới hơn Cũ hơn