Kiến thức Trading

Mô hình nến nhấn chìm (Engulfing): Cách nhận biết & giao dịch chuẩn trong MT5

01/09/2026 Đặng Trí Thanh 169 lượt xem ~8 phút đọc
Mục lục bài viết
    Mô hình nến nhấn chìm (Engulfing): Cách nhận biết & giao dịch chuẩn trong MT5

    Đặng Trí ThanhĐặng Trí Thanh
    Giám đốc Công nghệ · DNT Digital · Hướng Nghiệp Dữ Liệu
    Giảng dạy Khóa Kiến thức Giao dịch Forex MQL MT5, Lập trình MT5, Bot Auto Trading.

    Mô hình nến nhấn chìm (Engulfing): Cách nhận biết & giao dịch chuẩn trong MT5

    Mô hình nến nhấn chìm (Engulfing) - video 60 giây
    🎬 Xem video giai thich 60 giay: Xem tren YouTube

    Mô hình nến nhấn chìm (Engulfing) là một trong những mô hình nến đảo chiều phổ biến và dễ nhận biết nhất trong phân tích kỹ thuật Forex. Nó xuất hiện khi một cây nến “nuốt trọn” toàn bộ thân của cây nến trước đó — cho thấy phe mua hoặc phe bán đang chiếm ưu thế đảo ngược.

    Trong bài viết này, chúng ta sẽ tìm hiểu chi tiết về mô hình nến nhấn chìm: định nghĩa, cách nhận biết, quy ước màu khi giao dịch tại Việt Nam, cách kết hợp các giá trị cây nến, và cách lập trình tín hiệu này trong MQL5.

    1. Mô hình nến nhấn chìm là gì?

    Nến nhấn chìm (Engulfing Pattern) là mô hình gồm hai cây nến:

    • Cây nến thứ nhất có thân nhỏ, thể hiện xu hướng hiện tại
    • Cây nến thứ hai có thân lớn, bao trùm (nuốt) toàn bộ thân của cây nến thứ nhất

    Khi cây nến thứ hai đóng cửa bao phủ toàn bộ thân nến trước, thị trường cho thấy sự đảo chiều tiềm năng.

    1.1. Nến nhấn chìm tăng (Bullish Engulfing)

    Là mô hình xuất hiện ở đáy của xu hướng giảm, báo hiệu khả năng đảo chiều lên:

    • Nến 1: nến giảm (thân nhỏ)
    • Nến 2: nến tăng (thân lớn, đóng cửa cao hơn mức mở cửa của nến 1 và mở cửa thấp hơn hoặc bằng đáy nến 1)

    1.2. Nến nhấn chìm giảm (Bearish Engulfing)

    Xuất hiện ở đỉnh của xu hướng tăng, báo hiệu đảo chiều xuống:

    • Nến 1: nến tăng (thân nhỏ)
    • Nến 2: nến giảm (thân lớn, đóng cửa thấp hơn mức mở cửa của nến 1)

    2. Quy ước màu nến khi giao dịch tại Việt Nam

    Quan trọng: Tại Việt Nam, nhiều sàn và phần mềm (bao gồm MT5 khi cài đặt theo tùy chọn VN) dùng quy ước đỏ = tăng, xanh = giảm (ngược với chuẩn phương Tây).

    Vì vậy, trong bài giảng khóa Kiến thức Giao dịch Forex MQL MT5, giảng viên nhấn mạnh:

    • Cặp nến tăng = Nến 1 XANH (giảm) + Nến 2 ĐỎ (tăng) → nến đỏ nuốt nến xanh → tín hiệu MUA
    • Cặp nến giảm = Nến 1 ĐỎ (tăng) + Nến 2 XANH (giảm) → nến xanh nuốt nến đỏ → tín hiệu BÁN
    Mô hình Nến 1 Nến 2 Ý nghĩa
    Bullish Engulfing Xanh (giảm) Đỏ (tăng) Tín hiệu MUA
    Bearish Engulfing Đỏ (tăng) Xanh (giảm) Tín hiệu BÁN

    3. 6 giá trị của cây nến (OHLC)

    Để nhận biết chính xác nến nhấn chìm, bạn cần nắm 6 giá trị của mỗi cây nến:

    Giá trị Ý nghĩa
    Open Giá mở cửa
    High Giá cao nhất
    Low Giá thấp nhất
    Close Giá đóng cửa
    Tick Volume Khối lượng tick
    Real Volume Khối lượng thực

    Trong MQL5, ta lấy các giá trị này bằng hàm iOpen, iHigh, iLow, iClose:

    // Lấy 6 giá trị của nến hiện tại (shift = 1: nến vừa đóng)
    int shift = 1;
    double open  = iOpen(_Symbol, _Period, shift);
    double high  = iHigh(_Symbol, _Period, shift);
    double low   = iLow(_Symbol, _Period, shift);
    double close = iClose(_Symbol, _Period, shift);
    
    Print("Open=", open, " High=", high, " Low=", low, " Close=", close);

    4. Cách nhận biết nến nhấn chìm trong MQL5

    Dựa vào 6 giá trị cây nến, ta có thể viết điều kiện kiểm tra mô hình nến nhấn chìm. Với quy ước đỏ = tăng, xanh = giảm:

    4.1. Kiểm tra nến tăng / nến giảm

    bool IsBullishCandle(int shift)
    {
       // Đỏ = tăng (theo quy ước VN): Close > Open
       return iClose(_Symbol, _Period, shift) > iOpen(_Symbol, _Period, shift);
    }
    
    bool IsBearishCandle(int shift)
    {
       // Xanh = giảm: Close < Open
       return iClose(_Symbol, _Period, shift) < iOpen(_Symbol, _Period, shift);
    }

    4.2. Kiểm tra nến nhấn chìm

    // Bullish Engulfing: nến 1 xanh (giảm) + nến 2 đỏ (tăng) nuốt nến 1
    bool IsBullishEngulfing()
    {
       int shift = 1; // nến vừa đóng
       double o1 = iOpen(_Symbol, _Period, shift + 1);
       double c1 = iClose(_Symbol, _Period, shift + 1);
       double o2 = iOpen(_Symbol, _Period, shift);
       double c2 = iClose(_Symbol, _Period, shift);
    
       // Nến 1 giảm, nến 2 tăng, nến 2 nuốt toàn bộ thân nến 1
       return (c1 < o1) && (c2 > o2)
           && (o2 <= c1) && (c2 >= o1);
    }
    
    // Bearish Engulfing: nến 1 đỏ (tăng) + nến 2 xanh (giảm) nuốt nến 1
    bool IsBearishEngulfing()
    {
       int shift = 1;
       double o1 = iOpen(_Symbol, _Period, shift + 1);
       double c1 = iClose(_Symbol, _Period, shift + 1);
       double o2 = iOpen(_Symbol, _Period, shift);
       double c2 = iClose(_Symbol, _Period, shift);
    
       return (c1 > o1) && (c2 < o2)
           && (o2 >= c1) && (c2 <= o1);
    }

    5. Lọc tín hiệu bằng khối lượng (Volume)

    Mô hình nến nhấn chìm càng đáng tin khi đi kèm khối lượng tăng (volume spike) — cho thấy dòng tiền thực sự tham gia đảo chiều.

    // Lấy Tick Volume nến hiện tại
    long vol1 = iTickVolume(_Symbol, _Period, 2); // nến trước
    long vol2 = iTickVolume(_Symbol, _Period, 1); // nến nhấn chìm
    
    // Tín hiệu mạnh hơn khi volume nến nhấn chìm > 1.5 lần nến trước
    bool volumeConfirm = (vol2 > vol1 * 1.5);

    6. Ví dụ EA đầy đủ: Giao dịch theo nến nhấn chìm

    Dưới đây là EA đơn giản vào lệnh khi gặp nến nhấn chìm có xác nhận:

    //+------------------------------------------------------------------+
    //| EngulfingEA.mq5 — Giao dịch theo mô hình nến nhấn chìm           |
    //+------------------------------------------------------------------+
    #property strict
    
    input double LotSize    = 0.01;
    input int    StopLossPips = 30;
    input int    TakeProfitPips = 60;
    
    int OnInit() { return INIT_SUCCEEDED; }
    
    void OnDeinit(const int reason) {}
    
    bool IsBullishEngulfing()
    {
       int shift = 1;
       double o1 = iOpen(_Symbol, _Period, shift + 1);
       double c1 = iClose(_Symbol, _Period, shift + 1);
       double o2 = iOpen(_Symbol, _Period, shift);
       double c2 = iClose(_Symbol, _Period, shift);
       return (c1 < o1) && (c2 > o2) && (o2 <= c1) && (c2 >= o1);
    }
    
    bool IsBearishEngulfing()
    {
       int shift = 1;
       double o1 = iOpen(_Symbol, _Period, shift + 1);
       double c1 = iClose(_Symbol, _Period, shift + 1);
       double o2 = iOpen(_Symbol, _Period, shift);
       double c2 = iClose(_Symbol, _Period, shift);
       return (c1 > o1) && (c2 < o2) && (o2 >= c1) && (c2 <= o1);
    }
    
    void OnTick()
    {
       static bool hasPosition = false;
    
       // Kiểm tra lệnh đang mở
       for(int i = 0; i < PositionsTotal(); i++)
       {
          if(PositionGetSymbol(i) == _Symbol)
          {
             hasPosition = true;
             return;
          }
       }
       hasPosition = false;
    
       if(hasPosition) return;
    
       double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
       double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID);
       int digits = (int)SymbolInfoInteger(_Symbol, SYMBOL_DIGITS);
    
       if(IsBullishEngulfing())
       {
          double sl = NormalizeDouble(bid - StopLossPips * 10 * _Point, digits);
          double tp = NormalizeDouble(bid + TakeProfitPips * 10 * _Point, digits);
          // Mở lệnh BUY
          MqlTradeRequest req = {};
          MqlTradeResult res = {};
          req.action = TRADE_ACTION_DEAL;
          req.symbol = _Symbol;
          req.volume = LotSize;
          req.type = ORDER_TYPE_BUY;
          req.price = ask;
          req.sl = sl;
          req.tp = tp;
          req.deviation = 10;
          req.comment = "Bullish Engulfing";
          OrderSend(req, res);
       }
    
       if(IsBearishEngulfing())
       {
          double sl = NormalizeDouble(ask + StopLossPips * 10 * _Point, digits);
          double tp = NormalizeDouble(ask - TakeProfitPips * 10 * _Point, digits);
          // Mở lệnh SELL
          MqlTradeRequest req = {};
          MqlTradeResult res = {};
          req.action = TRADE_ACTION_DEAL;
          req.symbol = _Symbol;
          req.volume = LotSize;
          req.type = ORDER_TYPE_SELL;
          req.price = bid;
          req.sl = sl;
          req.tp = tp;
          req.deviation = 10;
          req.comment = "Bearish Engulfing";
          OrderSend(req, res);
       }
    }

    7. Lưu ý khi giao dịch nến nhấn chìm

    1. Khung thời gian lớn đáng tin hơn — H4, D1 cho tín hiệu mạnh hơn M1, M5
    2. Kết hợp vùng hỗ trợ/kháng cự — nến nhấn chìm tại vùng quan trọng đáng tin hơn
    3. Chờ xác nhận — nến nhấn chìm ở cuối xu hướng mới mạnh
    4. Quản lý vốn — luôn đặt SL, không vào lệnh quá lớn
    5. Nến nhấn chìm trong xu hướng mạnh có thể chỉ là nến điều chỉnh, không phải đảo chiều

    8. Câu hỏi thường gặp (FAQ)

    8.1. Nến nhấn chìm tăng là gì?

    Là mô hình 2 nến: nến 1 giảm + nến 2 tăng nuốt trọn thân nến 1 — báo hiệu đảo chiều lên (tín hiệu mua).

    8.2. Nến nhấn chìm giảm là gì?

    Là mô hình 2 nến: nến 1 tăng + nến 2 giảm nuốt trọn thân nến 1 — báo hiệu đảo chiều xuống (tín hiệu bán).

    8.3. Nến nhấn chìm có chắc chắn đảo chiều không?

    Không. Đây là tín hiệu xác suất, cần kết hợp volume, vùng giá và quản lý vốn. Không có mô hình nào chắc chắn 100%.

    8.4. Màu nến nào là tăng ở Việt Nam?

    Tại Việt Nam phổ biến quy ước đỏ = tăng, xanh = giảm. Hãy kiểm tra cài đặt MT5 của bạn.

    9. Kết luận

    Mô hình nến nhấn chìm (Engulfing) là công cụ mạnh để nhận biết sớm sự đảo chiều trong giao dịch Forex. Kết hợp với 6 giá trị cây nến và khối lượng, bạn có thể lập trình bot EA phát hiện tín hiệu này hoàn toàn tự động trong MQL5.

    Nếu bạn muốn học bài bản từ nền tảng — từ nến, Pip/Point, lệnh đến lập trình bot EA MQL5 — hãy tham gia khóa học Kiến thức Giao dịch tài chính & Lập trình đầu tư tự động (Forex MQL MT5 Cơ bản) tại Hướng Nghiệp Dữ Liệu.

    🎬 Xem giải thích nhanh 60 giây: Mô hình nến nhấn chìm

    📚 Đăng ký khóa học: https://www.huongnghiepdulieu.com/kien-thuc-giao-dich-tai-chinh-forex-mt5/

    Hướng Nghiệp Dữ Liệu — Đào tạo lập trình & giao dịch thực chiến · Hotline / Zalo: 0934 145 100

    Đặng Trí Thanh

    Đặng Trí Thanh

    Giám đốc Công nghệ · DNT Digital · Giảng viên HNDL Hướng Nghiệp Dữ Liệu
    831 Bài viết
    15.4k Người theo dõi
    120k+ Lượt đọc

    Đặng Trí Thanh — Founder & CTO · Hướng Nghiệp Dữ Liệu - DNT Digital. Chuyên đào tạo và triển khai thực chiến Python, MT5 và hệ thống bot auto trading / IB cho học viên và doanh nghiệp.

    Thẻ: (chưa gắn thẻ)

    Bài viết liên quan

    DNT DIGITAL

    🤖 AI CODE: Vibe Code NEEDED! 🚀 🏦 SSI • DNSE • MT5 • Bitget ⚡

    Zalo 0934145100
    Khóa đào tạo
    Hỗ trợ

    Được học lại miễn phí · Hỗ trợ trọn đời · Cập nhật miễn phí

    Đội ngũ hỗ trợ

    Đặng Trí Thanh
    Đặng Trí Thanh
    Giám đốc Công nghệ DNT Digital
    Zalo 0934145100
    Mộng Cầm
    Mộng Cầm
    Hỗ trợ khách hàng · Huấn luyện viên
    Zalo 0927909257
    Khánh Linh
    Khánh Linh
    Hỗ trợ khách hàng · Huấn luyện viên
    Zalo 0927909582