Scripts
Một script là một chương trình MQL chỉ có một trình xử lý duy nhất là OnStart
, với điều kiện không có chỉ thị #property service
(nếu không, bạn sẽ nhận được một dịch vụ, xem phần tiếp theo).
Theo mặc định, script sẽ bắt đầu thực thi ngay lập tức khi được đặt trên biểu đồ. Nhà phát triển có thể yêu cầu người dùng xác nhận việc bắt đầu bằng cách thêm chỉ thị #property script_show_confirm
vào đầu tệp. Trong trường hợp này, terminal sẽ hiển thị một thông báo với câu hỏi "Bạn có chắc chắn muốn chạy chương trình 'program' trên biểu đồ 'symbol, timeframe' không?" cùng với các nút Yes
và No
.
Scripts, giống như các chương trình khác, có thể có biến đầu vào. Tuy nhiên, đối với scripts, hộp thoại nhập tham số không được hiển thị theo mặc định, ngay cả khi script định nghĩa các input
. Để đảm bảo hộp thoại thuộc tính mở trước khi chạy script, cần áp dụng chỉ thị #property script_show_inputs
. Chỉ thị này ưu tiên hơn script_show_confirm
, nghĩa là kết quả của hộp thoại sẽ vô hiệu hóa yêu cầu xác nhận (vì chính hộp thoại đã đóng vai trò tương tự). Chỉ thị này gọi hộp thoại ngay cả khi không có biến đầu vào. Nó có thể được sử dụng để hiển thị mô tả sản phẩm và phiên bản (chúng được hiển thị trên tab Common
) cho người dùng.
Bảng sau đây cho thấy các tùy chọn kết hợp của chỉ thị #property
và tác động của chúng lên chương trình.
Directive / Effect | script_show_confirm | script_show_inputs |
---|---|---|
Khởi chạy ngay lập tức | No | No |
Yêu cầu xác nhận | Yes | No |
Mở hộp thoại thuộc tính | irrelevant | Yes |
Một ví dụ đơn giản về script với các chỉ thị nằm trong tệp ScriptNoComment.mq5
. Mục đích của script này như sau. Đôi khi các chương trình MQL để lại các bình luận không cần thiết ở góc trên bên trái của biểu đồ. Các bình luận được lưu trong tệp chr cùng với biểu đồ, vì vậy ngay cả sau khi khởi động lại terminal, chúng vẫn được khôi phục. Script này cho phép bạn xóa một bình luận hoặc đặt nó thành một giá trị tùy ý. Nếu bạn Assign hotkey
cho script bằng lệnh menu ngữ cảnh Navigator
, bạn sẽ có thể xóa bình luận của biểu đồ hiện tại chỉ với một cú nhấp chuột.
Ban đầu, các chỉ thị script_show_confirm
và script_show_inputs
bị vô hiệu hóa bằng cách trở thành bình luận nội tuyến. Bạn có thể thử nghiệm với các kết hợp khác nhau của chỉ thị bằng cách bỏ bình luận từng cái một hoặc đồng thời.
//#property script_show_confirm
//#property script_show_inputs
input string Text = "";
void OnStart()
{
Comment(""); // xóa bình luận
}
2
3
4
5
6
7
8
9