Bài 2: Hàm NewCandle MT4 vào 1 lệnh trên 1 cây nến.

Hàm NewCandle MT4 xác định nến mới trong MT4, bạn có thể sử dụng hàm NewCandle() để lấy số lượng thanh nến hiện tại trên biểu đồ, và sau đó sử dụng NewBar để lấy thời gian của nến cuối cùng.


//+ Nến Mới +
bool NewCandle()
  {
   static datetime NewBar=0;
   bool nen=false;
   if(Time[0]!=NewBar)
     {
      NewBar=Time[0];
      nen=true;
     }
   return nen;
  }

Hàm NewCandle MT4 này sẽ trả về thời gian của nến cuối cùng trên biểu đồ. Bạn có thể gọi hàm này và dùng nó để so sánh và chỉ vào 1 lệnh trong 1 cây nến.

Nếu bạn đang dùng 2 hoặc nhiều Magic để tách biệt ra nhiều phương pháp khác nhau thì có thể thêm tính năng phân loại theo Magic ở hàm dưới đây

int Magic1 = 123;
int Magic2 = 456;
datetime time0_1 = 0; // Biến thời gian mới nhất cho magic number 1
datetime time0_2 = 0; // Biến thời gian mới nhất cho magic number 2
// Thêm biến thời gian mới nhất cho các magic number khác nếu cần

bool NewCandle(int magic)
{   
    if (magic == Magic1 ) // Kiểm tra magic number
    {
        if (iTime(_Symbol, PERIOD_CURRENT, 0) != time0_1)   
        {
            time0_1 = iTime(_Symbol, PERIOD_CURRENT, 0);
            Print("New bar for magic 1:", time0_1);
            return true;
        }
    }
    else if (magic == Magic2 ) // Kiểm tra magic number khác
    {
        if (iTime(_Symbol, PERIOD_CURRENT, 0) != time0_2)   
        {
            time0_2 = iTime(_Symbol, PERIOD_CURRENT, 0);
            Print("New bar for magic 2:", time0_2);
            return true;
        }
    }
    // Thêm các kiểm tra cho các magic number khác nếu cần
    return false; 
}

Trong đoạn mã trên, chúng ta đã thêm biến time0_1time0_2 để lưu trữ thời gian mới nhất cho mỗi magic number. Trong hàm new_bar(), chúng ta kiểm tra magic number được chuyển vào và cập nhật thời gian mới nhất tương ứng. Nếu có một thay đổi trong thời gian mới nhất, chúng ta xuất ra thông báo “New bar” cùng với thời gian mới nhất và trả về true.
[block_content id=”3041″]

Leave a Reply

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