Yêu cầu vẽ lại biểu đồ
Trong hầu hết các trường hợp, biểu đồ tự động phản hồi các thay đổi trong dữ liệu và cài đặt terminal, làm mới hình ảnh cửa sổ tương ứng (biểu đồ giá, biểu đồ chỉ báo, v.v.). Tuy nhiên, các chương trình MQL quá linh hoạt và có thể thực hiện các hành động tùy ý, việc xác định liệu có cần vẽ lại hay không không phải lúc nào cũng dễ dàng. Ngoài ra, việc phân tích bất kỳ hành động nào của mỗi chương trình MQL về khía cạnh này có thể tiêu tốn tài nguyên và gây giảm hiệu suất tổng thể của terminal. Do đó, API MQL5 cung cấp hàm ChartRedraw
, với sự trợ giúp của nó, chính chương trình MQL có thể yêu cầu vẽ lại biểu đồ nếu cần.
void ChartRedraw(long chartId = 0)
Hàm này gây ra việc vẽ lại bắt buộc biểu đồ với định danh được chỉ định (giá trị mặc định 0 nghĩa là biểu đồ hiện tại). Thông thường, nó được áp dụng sau khi chương trình thay đổi thuộc tính của biểu đồ hoặc các đối tượng được đặt trên đó.
Chúng ta đã thấy một ví dụ sử dụng ChartRedraw
trong chỉ báo IndSubChart.mq5
trong phần Chế độ hiển thị biểu đồ. Một ví dụ khác sẽ được đưa ra trong phần Mở và đóng biểu đồ.
Hàm này ảnh hưởng chính xác đến việc vẽ lại biểu đồ, mà không gây ra việc tính toán lại chuỗi thời gian với báo giá và chỉ báo. Tùy chọn cuối cùng để cập nhật (thực tế là xây dựng lại) biểu đồ là "nặng" hơn và được thực hiện bởi hàm ChartSetSymbolPeriod
(xem phần tiếp theo).