Kiến thức Trading

Martingale là gì? Thua gấp đôi lên — nguyên lý, rủi ro & cách kiểm soát

01/09/2026 Đặng Trí Thanh 199 lượt xem ~6 phút đọc
Mục lục bài viết
    Martingale là gì? Thua gấp đôi lên — nguyên lý, rủi ro & cách kiểm soát

    Đặ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.

    Martingale là gì? Thua gấp đôi lên — nguyên lý, rủi ro & cách kiểm soát

    Martingale là gì? - video 60 giây
    🎬 Xem video giai thich 60 giay: Xem tren YouTube

    Martingale là một trong những chiến thuật quản lý vốn gây tranh cãi nhất trong giao dịch Forex. Nguyên lý rất đơn giản: sau mỗi lệnh thua, tăng gấp đôi khối lượng cho đến khi thắng — với kỳ vọng lệnh thắng cuối cùng sẽ bù đắp toàn bộ các lệnh thua trước đó và có lãi.

    Nghe có vẻ “không thể thua”, nhưng thực tế Martingale ẩn chứa rủi ro rất lớn khi gặp chuỗi thua liên tiếp. Bài viết này phân tích đầy đủ: nguyên lý, ví dụ cụ thể, công thức tính lot, rủi ro và cách kiểm soát khi lập trình bot MQL5.

    1. Martingale hoạt động như thế nào?

    1.1. Ví dụ đơn giản: trò chơi đỏ đen

    Giảng viên trong khóa Kiến thức Giao dịch Forex MQL MT5 lấy ví dụ trò chơi xác suất 50/50 (đỏ/đen) để minh họa:

    • Lệnh 1: đặt 1 đồng → nếu thua, lỗ 1 đồng
    • Lệnh 2: đặt 2 đồng → nếu thắng, lời 2 − lỗ 1 = lời 1 đồng
    • Nếu lệnh 2 thua (tổng lỗ 3), lệnh 3 đặt 4 đồng → thắng lời 4 − 3 = lời 1 đồng
    • Nếu tiếp tục thua: 8 → 16 → 32 … lệnh thắng cuối cùng luôn bù lỗ và lời đúng 1 đồng

    Chuỗi số: 1, 2, 4, 8, 16, 32, 64…

    1.2. Công thức tổng quát

    Lot thứ n = Lot ban đầu × 2^(n − 1)
    Tổng lỗ sau n lệnh thua = Lot ban đầu × (2^n − 1)

    Với lot ban đầu 0.01:

    • Lệnh 5: 0.01 × 16 = 0.16 lot
    • Lệnh 10: 0.01 × 512 = 5.12 lot
    • Lệnh 12: 0.01 × 2048 = 20.48 lot

    Như giảng viên nhấn mạnh: “cược mà nó gấp 512 lần mức cược ban đầu” — con số tăng cực nhanh theo cấp số nhân.

    2. Vì sao Martingale nguy hiểm?

    2.1. Rủi ro thua chuỗi liên tiếp

    Xác suất thua n lệnh liên tiếp trong trò 50/50 là (0.5)^n:

    Số lệnh thua liên tiếp Xác suất Lot cần (bắt đầu 0.01)
    5 3.1% 0.16
    8 0.4% 1.28
    10 0.1% 5.12
    12 0.02% 20.48

    Nghe có vẻ nhỏ, nhưng trong giao dịch thực tế, chuỗi thua 8-10 lệnh liên tiếp hoàn toàn có thể xảy ra, đặc biệt trong thị trường đi ngang hoặc tin tức lớn.

    2.2. Vấn đề margin

    Khi lot tăng theo cấp số nhân, margin yêu cầu cũng tăng theo. Tài khoản nhỏ sẽ bị Stop Out (quét margin) trước khi lệnh thắng kịp xuất hiện — nghĩa là bạn mất toàn bộ tài khoản khi chuỗi thua còn đang tiếp diễn.

    2.3. Vấn đề SL/TP

    Nếu đặt SL theo khoảng cách cố định (cùng SL/TP cho mọi lệnh), thì lệnh cuối cùng thắng mới bù được lỗ — nhưng nếu bị quét SL liên tục, tổng lỗ cũng tăng theo cấp số nhân.

    3. Lập trình Martingale trong MQL5

    3.1. Tính khối lượng gấp đôi

    // Tính lot gấp đôi sau mỗi lệnh thua
    double lotBase = 0.01;        // lot ban đầu
    int    multiply = 2;          // hệ số gấp
    int    losses = 0;            // số lệnh thua liên tiếp
    
    double lot = lotBase * MathPow(multiply, losses);
    lot = NormalizeDouble(lot, 2);

    3.2. Đếm số lệnh thua liên tiếp

    // Đếm số lệnh thua liên tiếp gần nhất trên lịch sử
    int CountConsecutiveLosses()
    {
       int count = 0;
       for(int i = 0; i < HistoryDealsTotal(); i++)
       {
          ulong ticket = HistoryDealGetTicket(i);
          if(ticket == 0) continue;
          double profit = HistoryDealGetDouble(ticket, DEAL_PROFIT);
          if(profit < 0)
             count++;
          else
             break; // gặp lệnh thắng thì dừng
       }
       return count;
    }

    3.3. Đặt cùng SL/TP cố định

    Để kiểm soát rủi ro, nhiều bot Martingale dùng cùng mức SL/TP (tính theo điểm) cho mọi lệnh:

    // SL/TP cố định tính bằng Point
    int slPoints = 200;  // = 20 pip
    int tpPoints = 400;  // = 40 pip
    
    double sl = NormalizeDouble(Bid - slPoints * _Point, _Digits);
    double tp = NormalizeDouble(Bid + tpPoints * _Point, _Digits);

    4. Cách kiểm soát rủi ro Martingale

    4.1. Giới hạn số lần gấp (Max Martingale Steps)

    Đặt giới hạn tối đa số lần gấp, ví dụ 5 lần — nếu vượt quá thì dừng hoặc cắt lỗ toàn bộ:

    input int MaxMartingaleSteps = 5;
    
    if(losses >= MaxMartingaleSteps)
    {
       // Dừng gấp, đóng toàn bộ hoặc chờ tín hiệu mới
       Print("Vượt giới hạn Martingale, dừng gấp lệnh");
       return;
    }

    4.2. Kiểm tra margin trước khi vào lệnh

    // Kiểm tra margin khả dụng trước khi đặt lot lớn
    double freeMargin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
    double marginNeeded = lot * SymbolInfoDouble(_Symbol, SYMBOL_TRADE_TICK_VALUE)
                          * 100000 / leverage;
    
    if(marginNeeded > freeMargin * 0.5)
    {
       Print("Không đủ margin, bỏ qua lệnh gấp");
       return;
    }

    4.3. Giới hạn drawdown tối đa

    // Dừng giao dịch nếu drawdown vượt ngưỡng (VD 30%)
    input double MaxDrawdownPercent = 30.0;
    
    double balance = AccountInfoDouble(ACCOUNT_BALANCE);
    double equity  = AccountInfoDouble(ACCOUNT_EQUITY);
    double dd = (balance - equity) / balance * 100;
    
    if(dd >= MaxDrawdownPercent)
    {
       Print("Drawdown quá lớn, dừng bot");
       ExpertRemove();
    }

    4.4. Không đặt cùng SL cố định trong xu hướng mạnh

    Trong thị trường xu hướng mạnh, chuỗi thua kéo dài. Nên kết hợp Martingale với bộ lọc xu hướng (MA, MACD) để chỉ gấp khi xu hướng còn ủng hộ.

    5. Martingale có nên dùng không?

    Ưu điểm

    • Tỷ lệ thắng cao (gần 100% nếu tài khoản đủ lớn và chuỗi thua không dài)
    • Lời ổn định từng chuỗi nhỏ

    Nhược điểm

    • Rủi ro thua toàn bộ tài khoản khi chuỗi thua dài
    • Yêu cầu margin rất lớn theo cấp số nhân
    • Bị Stop Out trước khi kịp gỡ
    • Tâm lý căng thẳng khi lệnh gấp liên tục thua

    Kết luận: Martingale là con dao hai lưỡi. Nếu dùng, phải kết hợp giới hạn số lần gấp, kiểm tra margin, giới hạn drawdown và hiểu rõ tài khoản có thể chịu được chuỗi thua bao nhiêu lệnh.

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

    6.1. Martingale có chắc thắng không?

    Về lý thuyết nếu tài khoản vô hạn thì gần như chắc thắng, nhưng tài khoản thực có giới hạn margin → có thể bị Stop Out giữa chuỗi thua.

    6.2. Lot gấp bao nhiêu lần mỗi lệnh?

    Thường gấp 2 lần (1-2-4-8-16…). Có biến thể gấp 1.5 hoặc 3, tùy chiến thuật.

    6.3. Martingale có phù hợp người mới không?

    Không khuyến khích người mới dùng Martingale vì rủi ro lớn. Nên học quản lý vốn chuẩn trước.

    6.4. Làm sao tránh bị Stop Out khi dùng Martingale?

    Giới hạn số lần gấp, kiểm tra margin trước mỗi lệnh, dùng tài khoản lớn và khối lượng nhỏ.

    7. Kết luận

    Martingale là chiến thuật thua gấp đôi lên — lệnh thắng cuối cùng luôn bù lỗ và có lãi 1 đơn vị, nhưng rủi ro thua chuỗi liên tiếp là rất lớn. Khi lập trình bot MQL5, hãy luôn đi kèm giới hạn số lần gấp, kiểm tra margin và giới hạn drawdown.

    Nếu bạn muốn hiểu sâu về quản lý vốn, lập trình bot EA và kiểm soát rủi ro thực chiến, hãy tham gia khóa 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: Martingale là gì?

    📚 Đă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