Nguyên tắc chung để thực thi chương trình MQL
Tất cả các chương trình MQL có thể được chia rộng rãi thành nhiều nhóm tùy thuộc vào khả năng và đặc điểm của chúng.
Hầu hết các chương trình, như Expert Advisors, chỉ báo và scripts, hoạt động trong bối cảnh của một biểu đồ. Nói cách khác, chúng chỉ bắt đầu thực thi sau khi được gắn vào một trong những biểu đồ đang mở bằng cách sử dụng lệnh menu ngữ cảnh Attach to Chart
trong cây Navigator
hoặc bằng cách kéo và thả từ Navigator
vào biểu đồ.
Ngược lại, services không thể được đặt trên biểu đồ, vì chúng được thiết kế để thực hiện các hành động chu kỳ dài trong nền. Ví dụ, trong một service, bạn có thể tạo một custom symbol và sau đó nhận dữ liệu của nó và tiếp tục cập nhật trong một vòng lặp vô tận bằng các hàm mạng. Một ứng dụng logic khác của service là giám sát tài khoản giao dịch và kết nối mạng, như một phần của giải pháp thông báo cho người dùng về các vấn đề liên lạc.
Điều quan trọng cần lưu ý là các chỉ báo và Expert Advisors được lưu trên biểu đồ giữa các phiên làm việc của terminal. Nói cách khác, nếu, ví dụ, một người dùng chạy một chỉ báo trên biểu đồ và sau đó, không xóa nó rõ ràng, đóng MetaTrader 5, thì lần tiếp theo terminal khởi động, chỉ báo sẽ được khôi phục cùng với biểu đồ, bao gồm tất cả các cài đặt của nó.
Nhân tiện, việc liên kết chỉ báo và Expert Advisors với biểu đồ là cơ sở cho các mẫu (xem Tài liệu). Người dùng có thể tạo một tập hợp các chương trình để sử dụng trên biểu đồ, cấu hình chúng và lưu tập hợp đó vào một tệp đặc biệt với phần mở rộng tpl
. Điều này được thực hiện bằng lệnh menu ngữ cảnh Templates -> Save
. Sau đó, bạn có thể áp dụng mẫu cho bất kỳ biểu đồ mới nào (lệnh Templates -> Upload
) và chạy tất cả các chương trình được liên kết. Các mẫu được lưu trữ mặc định trong thư mục MQL5/Profiles/Templates/
.
Một hệ quả khác của việc gắn vào biểu đồ là việc đóng biểu đồ dẫn đến việc dỡ bỏ tất cả các chương trình MQL đã được đặt trên đó. Tuy nhiên, MetaTrader 5 lưu tất cả các biểu đồ đã đóng theo một cách cụ thể (ít nhất trong một thời gian) và do đó, nếu biểu đồ bị đóng do nhầm lẫn, nó có thể được khôi phục cùng với tất cả các chương trình (và graphic objects) bằng lệnh File -> Open Remote
.
Nếu vì lý do nào đó terminal không thể tải các tệp biểu đồ, toàn bộ trạng thái của các chương trình MQL (cài đặt và vị trí) sẽ bị mất. Về cơ bản, điều tương tự cũng áp dụng cho graphic objects — các chương trình có thể thêm chúng cho nhu cầu của riêng mình và kỳ vọng rằng các đối tượng này nằm trên biểu đồ. Hãy sao lưu các biểu đồ. Mỗi biểu đồ là một tệp với phần mở rộng chr
. Các tệp như vậy được lưu trữ mặc định trong thư mục MQL5/Profiles/Charts/Default/
. Đây là hồ sơ tiêu chuẩn được tạo khi nền tảng được cài đặt. Bạn có thể tạo các hồ sơ khác với lệnh menu File -> Profiles
và sau đó chuyển đổi giữa chúng (xem Tài liệu).
Nếu cần, bạn có thể dừng một Expert Advisor và xóa nó khỏi biểu đồ bằng lệnh menu ngữ cảnh Expert list
(được gọi bằng cách nhấn chuột phải trong cửa sổ biểu đồ). Nó mở hộp thoại Experts
với danh sách tất cả các Expert Advisors đang chạy trong terminal. Trong danh sách này, chọn một Expert Advisor mà bạn không cần nữa và nhấn Remove
.
Chỉ báo cũng có thể được xóa rõ ràng, sử dụng lệnh menu ngữ cảnh tương tự Indicator List
. Nó mở ra một hộp thoại với danh sách các chỉ báo đang chạy trên biểu đồ hiện tại, trong đó bạn có thể chọn một chỉ báo cụ thể và nhấp vào nút Remove
. Ngoài ra, hầu hết các chỉ báo hiển thị các cấu trúc đồ họa khác nhau, như đường và biểu đồ cột, trên biểu đồ, cũng có thể được xóa bằng các lệnh menu ngữ cảnh liên quan.
Ngược lại với chỉ báo và Expert Advisors, scripts không được gắn vĩnh viễn vào biểu đồ. Ở chế độ tiêu chuẩn, script sẽ tự động bị xóa khỏi biểu đồ sau khi hoàn thành nhiệm vụ được giao cho nó, nếu đó là một hành động một lần. Nếu một script có vòng lặp cho các hành động định kỳ, lặp đi lặp lại, nó sẽ tiếp tục hoạt động cho đến khi vòng lặp bị gián đoạn theo một cách nào đó, nhưng không lâu hơn cho đến khi kết thúc phiên. Việc đóng terminal khiến script bị tách khỏi biểu đồ. Sau khi khởi động lại MetaTrader 5, scripts không được khôi phục trên các biểu đồ.
Vui lòng lưu ý rằng nếu bạn chuyển biểu đồ sang một ký hiệu hoặc khung thời gian khác, script đang chạy trên đó sẽ bị dỡ bỏ. Nhưng các chỉ báo và Expert Advisors sẽ tiếp tục hoạt động, tuy nhiên, chúng sẽ được khởi tạo lại. Quy tắc khởi tạo cho chúng khác nhau. Những chi tiết này sẽ được thảo luận trong phần Tính năng khởi động và dừng các chương trình thuộc nhiều loại khác nhau.
Chỉ một Expert Advisor, chỉ một script và bất kỳ số lượng chỉ báo nào có thể được đặt trên biểu đồ. Expert Advisor, script và tất cả các chỉ báo sẽ hoạt động song song (đồng thời).
Về services, các phiên bản đã tạo và đang chạy của chúng sẽ tự động được khôi phục sau khi tải terminal. Phiên bản service có thể được dừng hoặc xóa bằng menu ngữ cảnh trong phần Services
của cửa sổ Navigator
.
Bảng sau đây tóm tắt các đặc tính được mô tả ở trên dưới dạng tổng hợp.
Loại chương trình | Liên kết với biểu đồ | Số lượng trên biểu đồ | Khôi phục phiên |
---|---|---|---|
Indicator | Bắt buộc | Nhiều | Với biểu đồ hoặc mẫu |
Expert Advisor | Bắt buộc | Tối đa 1 | Với biểu đồ hoặc mẫu |
Script | Bắt buộc | Tối đa 1 | Không hỗ trợ |
Service | Không hỗ trợ | 0 | Với terminal |
Tất cả các chương trình MQL được thực thi trong terminal khách hàng và do đó chỉ hoạt động khi terminal đang mở. Để kiểm soát chương trình liên tục đối với tài khoản, hãy sử dụng VPS.