Làm việc với bộ đếm thời gian
Đối với nhiều nhiệm vụ ứng dụng, việc có thể thực hiện các hành động theo lịch trình, với một khoảng thời gian nhất định là rất quan trọng. Trong MQL5, chức năng này được cung cấp bởi bộ đếm thời gian, một bộ đếm thời gian hệ thống có thể được cấu hình để gửi thông báo định kỳ đến một chương trình MQL.
Có một số hàm trong API MQL5 để thiết lập hoặc hủy thông báo của bộ đếm thời gian: EventSetTimer
, EventSetMillisecondTimer
, EventKillTimer
. Bản thân các thông báo này đến với chương trình dưới dạng sự kiện thuộc một loại đặc biệt: trình xử lý OnTimer
được dành sẵn cho chúng trong mã nguồn. Nhóm hàm này sẽ được thảo luận trong chương này.
Hãy nhớ rằng trong MQL5, các sự kiện chỉ có thể được nhận bởi các chương trình tương tác chạy trên biểu đồ, tức là các chỉ báo và Expert Advisors. Scripts và Services không hỗ trợ bất kỳ sự kiện nào, bao gồm cả sự kiện từ bộ đếm thời gian.
Tuy nhiên, trong chương Các hàm làm việc với thời gian, chúng ta đã đề cập đến các chủ đề liên quan:
- Lấy dấu thời gian của đồng hồ cục bộ hoặc máy chủ hiện tại (TimeLocal / TimeCurrent)
- Tạm dừng việc thực thi chương trình trong một khoảng thời gian nhất định bằng cách sử dụng Sleep
- Lấy trạng thái của bộ đếm thời gian hệ thống của máy tính, được tính từ khi khởi động hệ điều hành (GetTickCount) hoặc kể từ khi khởi chạy chương trình MQL (GetMicrosecondCount)
Những tùy chọn này mở cho tất cả các loại chương trình MQL.
Trong các chương trước, chúng ta đã sử dụng các hàm bộ đếm thời gian nhiều lần, mặc dù mô tả chính thức của chúng chỉ được đưa ra bây giờ. Do thực tế là các sự kiện bộ đếm thời gian chỉ khả dụng trong các chỉ báo hoặc Expert Advisors, việc nghiên cứu chúng trước khi tìm hiểu về chính các chương trình sẽ rất khó khăn. Sau khi chúng ta đã nắm vững việc tạo chỉ báo, chủ đề về bộ đếm thời gian sẽ trở thành một phần tiếp nối logic.
Cơ bản, chúng ta đã sử dụng bộ đếm thời gian để chờ chuỗi thời gian được xây dựng. Những ví dụ như vậy có thể được tìm thấy trong các phần Chờ dữ liệu, Chỉ báo đa tiền tệ và đa khung thời gian, Hỗ trợ nhiều biểu tượng và khung thời gian, Sử dụng các chỉ báo tích hợp sẵn.
Ngoài ra, chúng ta đã định thời gian (mỗi 5 giây) loại của chỉ báo phụ trong bản demo "hoạt hình" của chỉ báo trong phần Xóa các phiên bản chỉ báo.