Thuộc tính chung của chương trình (#property)
Sử dụng chỉ thị #property
, lập trình viên có thể thiết lập một số thuộc tính của chương trình MQL. Một số thuộc tính này là chung, tức là áp dụng cho bất kỳ chương trình nào, và chúng ta sẽ xem xét chúng ở đây. Các thuộc tính còn lại đặc trưng cho các loại chương trình MQL5 cụ thể và sẽ được thảo luận trong các phần liên quan của Phần 5 khi mô tả API MQL5.
Chỉ thị #property
có định dạng sau:
#property key value
Khóa là một trong những thuộc tính được liệt kê trong bảng sau, ở cột đầu tiên. Cột thứ hai chỉ định cách giá trị sẽ được diễn giải.
Thuộc tính | Giá trị |
---|---|
copyright | Chuỗi chứa thông tin về chủ sở hữu bản quyền |
link | Chuỗi chứa liên kết đến trang web của nhà phát triển |
version | Chuỗi chứa số phiên bản của chương trình (đối với MQL5 Market, phải có định dạng "X.Y", trong đó X và Y là các số nguyên tương ứng với số phiên bản chính và phụ) |
description | Dòng mô tả chương trình (cho phép nhiều chỉ thị #description và nội dung của chúng được kết hợp) |
icon | Chuỗi, đường dẫn đến tệp chứa logo chương trình ở định dạng ICO |
stacksize | Số nguyên chỉ định kích thước ngăn xếp tính bằng byte (mặc định từ 4 đến 16 MB, tùy thuộc vào loại chương trình và môi trường, 1 MB = 1024*1024 byte); nếu cần, kích thước tăng lên tối đa 64 MB) |
Tất cả các thuộc tính chuỗi được đề cập ở trên là nguồn thông tin cho hộp thoại thuộc tính của chương trình, mở ra khi chương trình khởi động. Tuy nhiên, đối với script, hộp thoại này không hiển thị theo mặc định. Để thay đổi hành vi này, bạn phải chỉ định thêm chỉ thị #property script_show_inputs. Ngoài ra, thông tin về quyền được hiển thị trong chú giải công cụ khi di chuột qua chương trình trong Navigator
của MetaTrader 5.
Các thuộc tính copyright
, link
và version
đã xuất hiện trong tất cả các ví dụ trước đó trong cuốn sách này.
Kích thước ngăn xếp stacksize
là một khuyến nghị: nếu trình biên dịch phát hiện các biến cục bộ (thường là mảng) trong mã nguồn vượt quá giá trị được chỉ định, ngăn xếp sẽ tự động được tăng lên trong quá trình biên dịch, nhưng không quá 64 MB. Nếu vượt quá giới hạn, chương trình thậm chí sẽ không thể khởi động: trong nhật ký (tab Log
, chứ không phải Experts
), lỗi "Stack size of 64MB exceeded. Reduce the memory occupied by local variables" (Kích thước ngăn xếp 64MB đã bị vượt quá. Giảm bộ nhớ bị chiếm bởi các biến cục bộ) sẽ xuất hiện.
Lưu ý rằng việc phân tích và ngăn chặn khởi động như vậy chỉ tính đến một ảnh chụp cố định của chương trình tại thời điểm khởi động. Trong trường hợp gọi hàm đệ quy, mức tiêu thụ bộ nhớ ngăn xếp có thể tăng đáng kể và dẫn đến lỗi tràn ngăn xếp, nhưng điều này xảy ra ở giai đoạn thực thi chương trình. Để biết thêm thông tin về ngăn xếp, xem ghi chú trong Mô tả mảng.
Các chỉ thị #property
chỉ hoạt động trong tệp .mq5
được biên dịch và bị bỏ qua trong tất cả các tệp được bao gồm bằng #include
.