Đối tượng đồ họa
Người dùng MetaTrader 5 đã quen thuộc với khái niệm về các đối tượng đồ họa: đường xu hướng, nhãn giá, kênh, mức Fibonacci, hình dạng hình học và nhiều yếu tố hình ảnh khác được sử dụng để đánh dấu phân tích trên biểu đồ. Ngôn ngữ MQL5 cho phép bạn tạo, chỉnh sửa và xóa các đối tượng đồ họa bằng lập trình. Điều này có thể hữu ích, ví dụ, khi cần hiển thị đồng thời một số dữ liệu trong cửa sổ phụ và cửa sổ chính của một chỉ báo. Vì nền tảng chỉ hỗ trợ xuất các bộ đệm chỉ báo trong một cửa sổ, chúng ta có thể tạo các đối tượng trong cửa sổ còn lại. Với các đánh dấu được tạo từ các đối tượng đồ họa, việc tổ chức giao dịch bán tự động bằng Expert Advisors trở nên dễ dàng. Ngoài ra, các đối tượng thường được sử dụng để xây dựng giao diện đồ họa tùy chỉnh cho các chương trình MQL, chẳng hạn như nút, trường nhập liệu và cờ. Những chương trình này có thể được điều khiển mà không cần mở hộp thoại thuộc tính, và các bảng điều khiển được tạo trong MQL có thể cung cấp sự linh hoạt lớn hơn nhiều so với các biến đầu vào tiêu chuẩn.
Mỗi đối tượng tồn tại trong bối cảnh của một biểu đồ cụ thể. Đó là lý do tại sao các hàm chúng ta sẽ thảo luận trong chương này có một đặc điểm chung: tham số đầu tiên chỉ định ID biểu đồ. Ngoài ra, mỗi đối tượng đồ họa được đặc trưng bởi một tên duy nhất trong một biểu đồ, bao gồm tất cả các cửa sổ phụ. Việc thay đổi tên của một đối tượng đồ họa liên quan đến việc xóa đối tượng với tên cũ và tạo lại đối tượng đó với tên mới. Bạn không thể tạo hai đối tượng có cùng tên.
Các hàm xác định thuộc tính của đối tượng đồ họa, cũng như các thao tác tạo (ObjectCreate
) và di chuyển (ObjectMove
) các đối tượng trên biểu đồ, về cơ bản phục vụ để gửi các lệnh không đồng bộ đến biểu đồ. Nếu các hàm này được thực thi thành công, lệnh sẽ vào hàng đợi sự kiện chung của biểu đồ. Việc sửa đổi trực quan các thuộc tính của đối tượng đồ họa xảy ra trong quá trình xử lý hàng đợi sự kiện cho biểu đồ cụ thể đó. Do đó, biểu diễn bên ngoài của biểu đồ có thể phản ánh trạng thái đã thay đổi của các đối tượng với một chút chậm trễ sau khi gọi hàm.
Nói chung, việc cập nhật các đối tượng đồ họa trên biểu đồ được thực hiện tự động bởi terminal để phản hồi các sự kiện liên quan đến biểu đồ như nhận báo giá mới, thay đổi kích thước cửa sổ, v.v. Để buộc cập nhật các đối tượng đồ họa, bạn có thể sử dụng hàm yêu cầu vẽ lại biểu đồ (ChartRedraw
). Điều này đặc biệt quan trọng sau khi tạo hoặc sửa đổi hàng loạt đối tượng.
Các đối tượng đóng vai trò là nguồn của các sự kiện lập trình, chẳng hạn như tạo, xóa, sửa đổi thuộc tính của chúng và nhấp chuột. Tất cả các khía cạnh của việc xảy ra và xử lý sự kiện được thảo luận trong một chương riêng, cùng với các sự kiện trong bối cảnh cửa sổ chung.
Chúng ta sẽ bắt đầu với các nền tảng lý thuyết và dần dần chuyển sang các khía cạnh thực tiễn.