Thuộc tính chương trình (#property)
Mọi chương trình mql5 cho phép chỉ định các tham số cụ thể bổ sung được gọi là #property, giúp terminal khách hàng phục vụ chương trình một cách chính xác mà không cần phải khởi chạy chúng một cách rõ ràng. Điều này đặc biệt liên quan đến các cài đặt bên ngoài của chỉ báo. Các thuộc tính được mô tả trong các tệp được bao gồm sẽ bị bỏ qua hoàn toàn. Các thuộc tính phải được chỉ định trong tệp mq5 chính.
cpp
#property identifier value
1
Trình biên dịch sẽ ghi các giá trị đã khai báo vào cấu hình của mô-đun được thực thi.
Hằng số | Kiểu | Mô tả |
---|---|---|
icon | string | Đường dẫn đến tệp hình ảnh sẽ được sử dụng làm biểu tượng của chương trình EX5. Quy tắc chỉ định đường dẫn giống như đối với tài nguyên. Thuộc tính phải được chỉ định trong mô-đun chính với mã nguồn MQL5. Tệp biểu tượng phải ở định dạng ICO. |
link | string | Liên kết đến trang web của công ty |
copyright | string | Tên công ty |
version | string | Phiên bản chương trình, tối đa 31 ký tự |
description | string | Mô tả văn bản ngắn gọn về chương trình mql5. Có thể có nhiều description , mỗi cái mô tả một dòng văn bản. Tổng độ dài của tất cả description không được vượt quá 511 ký tự bao gồm cả ký tự xuống dòng. |
stacksize | int | Kích thước ngăn xếp của chương trình MQL5. Ngăn xếp đủ lớn là cần thiết khi thực hiện các lệnh gọi đệ quy hàm. Khi khởi chạy script hoặc Expert Advisor trên biểu đồ, ngăn xếp ít nhất 8 MB được cấp phát. Với chỉ báo, kích thước ngăn xếp luôn cố định và bằng 1 MB. Khi chương trình chạy trong bộ kiểm tra chiến lược, ngăn xếp 16 MB luôn được cấp phát. |
library | Thư viện; không có hàm khởi động được chỉ định, các hàm với bộ sửa đổi export có thể được nhập trong các chương trình mql5 khác | |
indicator_applied_price | int | Chỉ định giá trị mặc định cho trường "Apply to". Có thể chỉ định một trong các giá trị của ENUM_APPLIED_PRICE. Nếu thuộc tính không được chỉ định, giá trị mặc định là PRICE_CLOSE. |
indicator_chart_window | Hiển thị chỉ báo trong cửa sổ biểu đồ | |
indicator_separate_window | Hiển thị chỉ báo trong một cửa sổ riêng | |
indicator_height | int | Chiều cao cố định của cửa sổ con chỉ báo tính bằng pixel (thuộc tính INDICATOR_HEIGHT) |
indicator_buffers | int | Số lượng bộ đệm cho việc tính toán chỉ báo |
indicator_plots | int | Số lượng chuỗi đồ họa trong chỉ báo |
indicator_minimum | double | Giới hạn tỷ lệ dưới cùng cho một cửa sổ chỉ báo riêng |
indicator_maximum | double | Giới hạn tỷ lệ trên cùng cho một cửa sổ chỉ báo riêng |
indicator_labelN | string | Đặt nhãn cho chuỗi đồ họa thứ N hiển thị trong DataWindow. Đối với chuỗi đồ họa yêu cầu nhiều bộ đệm chỉ báo (DRAW_CANDLES, DRAW_FILLING, v.v.), tên nhãn được định nghĩa bằng dấu phân cách ';'. |
indicator_colorN | color | Màu sắc để hiển thị đường N, trong đó N là số của chuỗi đồ họa; đánh số bắt đầu từ 1 |
indicator_widthN | int | Độ dày đường trong chuỗi đồ họa, trong đó N là số của chuỗi đồ họa; đánh số bắt đầu từ 1 |
indicator_styleN | int | Kiểu đường trong chuỗi đồ họa, được chỉ định bởi các giá trị của ENUM_LINE_STYLE. N là số của chuỗi đồ họa; đánh số bắt đầu từ 1 |
indicator_typeN | int | Kiểu vẽ đồ họa, được chỉ định bởi các giá trị của ENUM_DRAW_TYPE. N là số của chuỗi đồ họa; đánh số bắt đầu từ 1 |
indicator_levelN | double | Mức ngang của N trong một cửa sổ chỉ báo riêng |
indicator_levelcolor | color | Màu của các mức ngang của chỉ báo |
indicator_levelwidth | int | Độ dày của các mức ngang của chỉ báo |
indicator_levelstyle | int | Kiểu của các mức ngang của chỉ báo |
script_show_confirm | Hiển thị cửa sổ xác nhận trước khi chạy script | |
script_show_inputs | Hiển thị cửa sổ với các thuộc tính trước khi chạy script và vô hiệu hóa cửa sổ xác nhận này | |
tester_indicator | string | Tên của một chỉ báo tùy chỉnh theo định dạng "indicator_name.ex5" . Các chỉ báo cần kiểm tra được xác định tự động từ lời gọi hàm iCustom() nếu tham số tương ứng được đặt qua chuỗi hằng. Đối với các trường hợp khác (sử dụng hàm IndicatorCreate() hoặc sử dụng chuỗi không hằng trong tham số đặt tên chỉ báo), thuộc tính này là bắt buộc |
tester_file | string | Tên tệp cho bộ kiểm tra với chỉ định phần mở rộng, trong dấu ngoặc kép (dưới dạng chuỗi hằng). Tệp được chỉ định sẽ được chuyển đến bộ kiểm tra. Các tệp đầu vào cần kiểm tra, nếu có, phải luôn được chỉ định. |
tester_library | string | Tên thư viện với phần mở rộng, trong dấu ngoặc kép. Thư viện có thể có phần mở rộng tệp là 'dll' hoặc 'ex5'. Các thư viện cần kiểm tra được xác định tự động. Tuy nhiên, nếu bất kỳ thư viện nào được sử dụng bởi một chỉ báo tùy chỉnh, thuộc tính này là bắt buộc |
tester_set | string | Tên của tệp cài đặt với các giá trị và bước của các tham số đầu vào. Tệp được chuyển đến bộ kiểm tra trước khi kiểm tra và tối ưu hóa. Tên tệp được chỉ định với phần mở rộng và dấu ngoặc kép dưới dạng chuỗi hằng. Nếu bạn chỉ định tên EA và số phiên bản dưới dạng "<expert_name>_<number>.set " trong tên tệp cài đặt, thì nó sẽ tự động được thêm vào menu tải xuống phiên bản tham số dưới số phiên bản <number> . Ví dụ, tên "MACD Sample_4.set" có nghĩa là đây là tệp cài đặt cho EA "MACD Sample.mq5" với số phiên bản bằng 4. Để nghiên cứu định dạng, chúng tôi khuyên bạn nên lưu thủ công cài đặt kiểm tra/tối ưu hóa trong bộ kiểm tra chiến lược và sau đó mở tệp cài đặt được tạo theo cách này. |
tester_no_cache | string | Khi thực hiện tối ưu hóa, bộ kiểm tra chiến lược lưu tất cả kết quả của các lượt chạy đã thực hiện vào bộ nhớ cache tối ưu hóa, trong đó kết quả kiểm tra được lưu cho mỗi tập hợp tham số đầu vào. Điều này cho phép sử dụng kết quả sẵn có trong quá trình tái tối ưu hóa trên cùng tham số mà không tốn thời gian tính toán lại. Nhưng trong một số nhiệm vụ (ví dụ, trong tính toán toán học), có thể cần thực hiện tính toán bất kể sự sẵn có của kết quả trong bộ nhớ cache tối ưu hóa. Trong trường hợp này, tệp nên bao gồm thuộc tính tester_no_cache . Kết quả kiểm tra vẫn được lưu trong bộ nhớ cache, để bạn có thể xem tất cả dữ liệu về các lượt chạy đã thực hiện trong bộ kiểm tra chiến lược. |
tester_everytick_calculate | string | Trong Bộ kiểm tra chiến lược, các chỉ báo chỉ được tính toán khi dữ liệu của chúng được truy cập, tức là khi các giá trị của bộ đệm chỉ báo được yêu cầu. Điều này cung cấp tốc độ kiểm tra và tối ưu hóa nhanh hơn đáng kể nếu bạn không cần lấy giá trị chỉ báo trên mỗi tick. Bằng cách chỉ định thuộc tính tester_everytick_calculate , bạn có thể kích hoạt tính toán bắt buộc của chỉ báo trên mỗi tick. Các chỉ báo trong Bộ kiểm tra chiến lược cũng được tính toán bắt buộc trên mỗi tick trong các trường hợp sau: khi kiểm tra trong chế độ trực quan; nếu chỉ báo có bất kỳ hàm nào sau đây: EventChartCustom, OnChartEvent, OnTimer; nếu chỉ báo được tạo bằng trình biên dịch với số build dưới 1916. Tính năng này chỉ áp dụng trong Bộ kiểm tra chiến lược, trong khi trong terminal, các chỉ báo luôn được tính toán trên mỗi tick nhận được. |
optimization_chart_mode | string | Chỉ định loại biểu đồ và tên của hai tham số đầu vào sẽ được sử dụng để trực quan hóa kết quả tối ưu hóa. Ví dụ, "3d, InpX, InpY" nghĩa là kết quả sẽ được hiển thị trong biểu đồ 3D với các trục tọa độ dựa trên giá trị tham số InpX và InpY đã kiểm tra. Do đó, thuộc tính cho phép chỉ định các tham số sẽ được sử dụng để hiển thị biểu đồ tối ưu hóa và loại biểu đồ, trực tiếp trong mã chương trình. Các tùy chọn có thể: "3d, input_parameter_name1, input_parameter_name2" nghĩa là biểu đồ trực quan 3D, có thể xoay, phóng to và thu nhỏ, được xây dựng bằng hai tham số; "2d, input_parameter_name1, input_parameter_name2" nghĩa là biểu đồ lưới 2D, trong đó mỗi ô được tô màu tùy thuộc vào kết quả, được xây dựng bằng hai tham số; "1d, input_parameter_name1, input_parameter_name2" nghĩa là biểu đồ tuyến tính, trong đó kết quả được sắp xếp theo tham số đã chỉ định, mỗi lượt chạy hiển thị dưới dạng một điểm, được xây dựng dựa trên một tham số; "0d, input_parameter_name1, input_parameter_name2" nghĩa là biểu đồ thông thường với kết quả được sắp xếp theo thời gian đến của kết quả lượt chạy, mỗi lượt chạy hiển thị dưới dạng một điểm trong biểu đồ, không yêu cầu chỉ định tham số, nhưng các tham số đã chỉ định có thể được sử dụng để chuyển đổi thủ công sang các loại biểu đồ khác. Tùy chọn, bạn có thể chỉ định chỉ loại biểu đồ mà không chỉ định một hoặc hai tham số đầu vào. Trong trường hợp này, terminal sẽ chọn các tham số cần thiết để hiển thị biểu đồ tối ưu hóa. |
Nhiệm vụ mẫu về Mô tả và Số phiên bản
cpp
#property `version` `"3.70"` // Phiên bản hiện tại của Expert Advisor
#property `description` `"ZigZag universal with Pesavento Patterns"`
#property `description` `"At the moment in the indicator several ZigZags with different algorithms are included"`
#property `description` `"It is possible to embed a large number of other indicators showing the highs and"`
#property `description` `"lows and automatically build from these highs and lows various graphical tools"`
1
2
3
4
5
2
3
4
5
Ví dụ về việc chỉ định nhãn riêng cho mỗi bộ đệm chỉ báo ("C open; C high; C low; C close")
cpp
#property `indicator_chart_window`
#property `indicator_buffers` 4
#property `indicator_plots` 1
#property `indicator_type1` `DRAW_CANDLES`
#property `indicator_width1` 3
#property `indicator_label1` `"C open;C high;C low;C close"`
1
2
3
4
5
6
2
3
4
5
6