Chỉnh sửa, biên dịch và chạy chương trình
Tất cả các chương trình MetaTrader 5 đều có thể biên dịch được. Nghĩa là, mã nguồn được viết bằng MQL5 phải được biên dịch để có được biểu diễn nhị phân chính xác như biểu diễn được thực thi trong thiết bị đầu cuối. Chương trình được chỉnh sửa và biên dịch bằng MetaEditor.
Mã nguồn là văn bản được viết theo quy tắc MQL5 và được lưu dưới dạng tệp có phần mở rộng là mq5
. Tệp chứa chương trình đã biên dịch sẽ có cùng tên, trong khi phần mở rộng của nó sẽ là ex5
.
Trong trường hợp đơn giản nhất, một tệp thực thi tương ứng với một tệp chứa mã nguồn; tuy nhiên, như chúng ta sẽ thấy sau, việc mã hóa các chương trình phức tạp thường đòi hỏi phải chia mã nguồn thành nhiều tệp: Tệp chính và một số tệp hỗ trợ được kích hoạt từ tệp chính theo cách đặc biệt. Trong trường hợp này, tệp chính vẫn phải có phần mở rộng là mq5
, trong khi các tệp được kích hoạt từ tệp chính phải có phần mở rộng là mqh
. Sau đó, các câu lệnh từ tất cả các tệp nguồn sẽ đi vào tệp thực thi đang được tạo. Do đó, nhiều tệp chứa mã nguồn có thể là điểm khởi đầu để tạo một tệp thực thi/chương trình. Tất cả những điều được đề cập ở đây để hoàn thiện bức tranh sẽ được trình bày trong phần thứ hai của cuốn sách.
Chúng ta sẽ sử dụng thuật ngữ cú pháp MQL5 để chỉ tập hợp tất cả các quy tắc cho phép xây dựng chương trình trong MQL5. Chỉ có sự tuân thủ nghiêm ngặt cú pháp mới cho phép mã hóa các chương trình tương thích với trình biên dịch. Trên thực tế, việc dạy mã bao gồm việc giới thiệu tuần tự tất cả các quy tắc của một ngôn ngữ cụ thể là MQL5, trong trường hợp của chúng ta. Và đây là mục đích chính của cuốn sách này.
Để biên dịch mã nguồn, chúng ta có thể sử dụng lệnh MetaEditor File -> Compile
hoặc chỉ cần nhấn F7
. Tuy nhiên, có một số phương pháp biên dịch đặc biệt khác – chúng ta sẽ thảo luận về chúng sau. Biên dịch đi kèm với việc hiển thị trạng thái thay đổi trong nhật ký trình biên tập (trong đó chương trình MQL5 bao gồm nhiều tệp chứa mã nguồn và việc bật mỗi tệp được đánh dấu trong một dòng nhật ký duy nhất).
Dấu hiệu của biên dịch thành công là không có lỗi nào ("0 errors
"). Cảnh báo (warnings
) không ảnh hưởng đến kết quả biên dịch, chúng chỉ thông báo về các vấn đề tiềm ẩn. Do đó, bạn nên sửa chúng trên cùng cơ sở như lỗi (chúng ta sẽ cho bạn biết cách thực hiện sau). Lý tưởng nhất là không nên có bất kỳ cảnh báo nào ("0 warnings
").
Sau khi biên dịch thành công tệp mq5
, chúng ta sẽ có tệp có cùng tên với phần mở rộng là ex5
. MetaTrader 5 Navigator hiển thị dưới dạng cây tất cả các tệp ex5 có thể thực thi nằm trong thư mục MQL5 và các thư mục con của nó, bao gồm cả tệp vừa biên dịch.
Các chương trình sẵn sàng được khởi chạy trong terminal bằng bất kỳ phương pháp nào mà người dùng quen thuộc. Ví dụ, bất kỳ chương trình nào, ngoài services
, có thể được kéo bằng chuột từ Navigator
đến biểu đồ. Chúng ta sẽ nói riêng về các tính năng của dịch vụ.
Ngoài ra, các nhà phát triển thường cần chương trình được thực hiện ở chế độ gỡ lỗi để tìm ra nguyên nhân gây ra lỗi. Có nhiều lệnh đặc biệt cho mục đích này và chúng ta sẽ tham khảo chúng trong Sửa lỗi và gỡ lỗi.