Hàm chính của scripts và services: OnStart
Các chương trình tiện ích — scripts và services — được thực thi trong terminal bằng cách gọi hàm xử lý sự kiện duy nhất của chúng là OnStart
.
void OnStart()
Hàm này không có tham số và không trả về bất kỳ giá trị nào. Nó chỉ đóng vai trò là điểm vào cho chương trình ứng dụng từ phía terminal.
Scripts thường được sử dụng cho các hành động một lần thực hiện trên biểu đồ (sau này chúng ta sẽ nghiên cứu tất cả các khả năng mà API biểu đồ cung cấp). Ví dụ, một script có thể được dùng để thiết lập một lưới lệnh hoặc ngược lại, để đóng tất cả các vị thế mở có lợi nhuận, để tự động áp dụng đánh dấu bằng các đối tượng đồ họa, hoặc để tạm thời ẩn tất cả các đối tượng.
Trong scripts, bạn có thể sử dụng các hành động liên tục được bao bọc trong một vòng lặp vô hạn, trong đó, như đã đề cập trước đây, bạn luôn nên kiểm tra dấu hiệu dừng (_StopFlag
) và định kỳ giải phóng bộ xử lý (Sleep
). Cần nhớ rằng khi tắt và bật lại terminal, script sẽ phải được chạy lại.
Do đó, đối với các hoạt động liên tục như vậy, nếu nó không trực tiếp liên quan đến biểu đồ, tốt hơn nên sử dụng service. Kỹ thuật tiêu chuẩn trong việc triển khai service chính là một vòng lặp "vô hạn".
Trong các phần trước của cuốn sách, hầu hết các ví dụ đều được triển khai dưới dạng scripts. Một ví dụ về service là chương trình GlobalsWithCondition.mq5
từ phần Đồng bộ hóa chương trình bằng biến toàn cục. Chúng ta sẽ thấy một ví dụ khác trong phần tiếp theo về việc dừng Expert Advisors và scripts bằng hàm ExpertRemove
.