Chuyển đổi biểu tượng và khung thời gian
Đôi khi một chương trình MQL cần chuyển đổi biểu tượng hoặc khung thời gian hiện tại của biểu đồ. Đặc biệt, đây là chức năng quen thuộc với nhiều bảng giao dịch đa tiền tệ, đa khung thời gian hoặc các tiện ích phân tích lịch sử giao dịch. Để thực hiện điều này, API MQL5 cung cấp hàm ChartSetSymbolPeriod
.
Bạn cũng có thể sử dụng hàm này để khởi tạo việc tính toán lại toàn bộ biểu đồ, bao gồm các chỉ báo nằm trên đó. Bạn chỉ cần chỉ định biểu tượng và khung thời gian hiện tại làm tham số. Kỹ thuật này có thể hữu ích cho các chỉ báo không thể được tính toán đầy đủ trong lần gọi đầu tiên của OnCalculate
, và đang chờ tải dữ liệu bên thứ ba (các biểu tượng khác, tick, hoặc chỉ báo). Ngoài ra, việc thay đổi biểu tượng/khung thời gian dẫn đến việc khởi tạo lại các Expert Advisor gắn với biểu đồ. Script (nếu được thực thi định kỳ trong một chu kỳ) sẽ hoàn toàn biến mất khỏi biểu đồ trong quá trình này (nó sẽ bị gỡ khỏi kết hợp biểu tượng/khung thời gian cũ nhưng sẽ không được tải tự động cho kết hợp mới).
bool ChartSetSymbolPeriod(long chartId, string symbol, ENUM_TIMEFRAMES timeframe)
Hàm này thay đổi biểu tượng và khung thời gian của biểu đồ được chỉ định với định danh chartId
thành các giá trị của các tham số tương ứng: symbol
và timeframe
. Giá trị 0 trong tham số chartId
nghĩa là biểu đồ hiện tại, NULL
trong tham số symbol
là ký tự hiện tại, và 0 trong tham số timeframe
là khung thời gian hiện tại.
Các thay đổi có hiệu lực không đồng bộ, tức là hàm chỉ gửi lệnh đến terminal và không đợi thực thi. Lệnh được thêm vào hàng đợi tin nhắn của biểu đồ và chỉ được thực thi sau khi tất cả các lệnh trước đó đã được xử lý.
Hàm trả về true
nếu lệnh được đặt thành công vào hàng đợi biểu đồ hoặc false
nếu có vấn đề. Thông tin về lỗi có thể được tìm thấy trong _LastError
.
Chúng ta đã thấy các ví dụ sử dụng hàm để cập nhật một số chỉ báo, cụ thể là:
IndDeltaVolume.mq5
(xem Chờ dữ liệu và quản lý khả năng hiển thị)IndUnityPercent.mq5
(xem Chỉ báo đa tiền tệ và đa khung thời gian)UseWPRMTF.mq5
(xem Hỗ trợ nhiều biểu tượng và khung thời gian)UseM1MA.mq5
(xem Sử dụng các chỉ báo tích hợp sẵn)UseDemoAllLoop.mq5
(xem Xóa các phiên bản chỉ báo)IndSubChart.mq5
(xem Chế độ hiển thị biểu đồ)