Bài 19: Hàm Close All Đóng Lệnh theo yêu cầu MT4

Bài 19: Hàm Close All Đóng Lệnh theo yêu cầu MT4

Hàm CloseOrder trong ngữ cảnh của giao dịch trên nền tảng MT4 hoặc MT5 là một hàm được sử dụng để đóng tất cả các lệnh mở hiện tại trên một tài khoản giao dịch. Thông thường, nó được sử dụng khi bạn muốn đóng toàn bộ các lệnh mở của một cặp tiền cụ thể hoặc toàn bộ tài khoản giao dịch của bạn.

Cách thực hiện “Close All” thường bao gồm các bước sau:

  1. Xác định tất cả các lệnh mở: Sử dụng các hàm như OrderSelect()  để lặp qua tất cả các lệnh mở hoặc vị thế mở trên tài khoản của bạn.
  2. Đóng các lệnh mở: Sử dụng hàm OrderClose() để đóng từng lệnh mở hoặc vị thế mở. Bạn có thể cần cung cấp thông tin như số lượng, giá đóng cửa và lý do đóng lệnh.
  3. Ghi nhận và xử lý kết quả: Kiểm tra kết quả của mỗi lệnh đóng để đảm bảo rằng chúng đã được đóng thành công và xử lý bất kỳ lỗi nào xảy ra trong quá trình đóng lệnh.
  4. Báo cáo kết quả: Sau khi đóng tất cả các lệnh mở, bạn có thể muốn báo cáo kết quả, như tổng số lệnh đã đóng thành công hoặc bất kỳ vấn đề nào phát sinh.
void CloseOrder(string type)
  {
   for(int i=OrdersTotal()-1 ; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      if(OrderSymbol()==_Symbol && OrderMagicNumber()==MagicNumber)
        {
         if(OrderType()==OP_BUY && type== "OP_BUY")
         {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE))
               Print("Closed Order Buy Error ",GetLastError());
          }
         if(OrderType()==OP_SELL && type== "OP_SELL")
         {
            if(!OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE))
               Print("Closed Order Sell Error ",GetLastError());
         }         
        }
     }
  }

Hàm CloseOrder được viết để đóng các lệnh mở tương ứng với loại lệnh được chỉ định (OP_BUY hoặc OP_SELL). Dưới đây là mô tả từng dòng code:

  1. Vòng lặp: Vòng lặp được sử dụng để lặp qua tất cả các lệnh mở trên tài khoản giao dịch.
  2. Kiểm tra lệnh: Mỗi lệnh được kiểm tra xem có phải là lệnh mua (OP_BUY) hoặc bán (OP_SELL) và có thuộc cặp tiền và số magic được chỉ định hay không.
  3. Đóng lệnh: Nếu lệnh thỏa mãn các điều kiện trên, hàm OrderClose() được gọi để đóng lệnh đó. Các tham số của hàm này bao gồm: số vé của lệnh, số lượng muốn đóng, giá đóng cửa, slippage (độ trượt giá), và màu sắc của giao dịch trong lịch sử giao dịch.
  4. Xử lý lỗi: Nếu việc đóng lệnh không thành công, một thông báo lỗi sẽ được in ra để thông báo cho người dùng biết.

Hàm này sẽ đóng tất cả các lệnh mở tương ứng với loại lệnh được chỉ định, nhưng cần phải chú ý rằng việc đóng lệnh có thể gây mất tiền nếu không được thực hiện đúng cách, vì vậy cần phải xác định rõ ràng loại lệnh mà bạn muốn đóng trước khi sử dụng hàm này.[block_content id=”3041″]

Leave a Reply

Your email address will not be published. Required fields are marked *