Thuộc tính chuỗi của terminal và chương trình
Các hàm MQLInfoString
và TerminalInfoString
có thể được sử dụng để tìm hiểu một số thuộc tính chuỗi của terminal và chương trình MQL.
Bảng mô tả các thuộc tính
Định danh | Mô tả |
---|---|
MQL_PROGRAM_NAME | Tên của chương trình MQL đang chạy |
MQL_PROGRAM_PATH | Đường dẫn của chương trình MQL đang chạy |
TERMINAL_LANGUAGE | Ngôn ngữ của terminal |
TERMINAL_COMPANY | Tên của công ty (nhà môi giới) |
TERMINAL_NAME | Tên của terminal |
TERMINAL_PATH | Thư mục mà từ đó terminal được khởi chạy |
TERMINAL_DATA_PATH | Thư mục nơi lưu trữ dữ liệu của terminal |
TERMINAL_COMMONDATA_PATH | Thư mục chung của tất cả các terminal khách hàng được cài đặt trên máy tính |
Tên của chương trình đang chạy (MQL_PROGRAM_NAME
) thường trùng với tên của mô-đun chính (tệp mq5) nhưng có thể khác. Đặc biệt, nếu mã nguồn của bạn được biên dịch thành một thư viện và được nhập vào một chương trình MQL khác (Expert Advisor, chỉ báo, script hoặc dịch vụ), thì thuộc tính MQL_PROGRAM_NAME
sẽ trả về tên của chương trình chính, không phải thư viện (thư viện không phải là một chương trình độc lập có thể chạy được).
Chúng ta đã thảo luận về cách sắp xếp các thư mục làm việc của terminal trong phần Làm việc với tệp. Sử dụng các thuộc tính được liệt kê, bạn có thể tìm ra vị trí cài đặt terminal (TERMINAL_PATH
), cũng như tìm dữ liệu làm việc của phiên bản terminal hiện tại (TERMINAL_DATA_PATH
) và của tất cả các phiên bản (TERMINAL_COMMONDATA_PATH
).
Một script đơn giản EnvDescription.mq5
ghi lại tất cả các thuộc tính này.
void OnStart()
{
PRTF(MQLInfoString(MQL_PROGRAM_NAME));
PRTF(MQLInfoString(MQL_PROGRAM_PATH));
PRTF(TerminalInfoString(TERMINAL_LANGUAGE));
PRTF(TerminalInfoString(TERMINAL_COMPANY));
PRTF(TerminalInfoString(TERMINAL_NAME));
PRTF(TerminalInfoString(TERMINAL_PATH));
PRTF(TerminalInfoString(TERMINAL_DATA_PATH));
PRTF(TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}
2
3
4
5
6
7
8
9
10
11
Dưới đây là ví dụ về kết quả.
MQLInfoString(MQL_PROGRAM_NAME)=EnvDescription / ok
MQLInfoString(MQL_PROGRAM_PATH)= »
» C:\Program Files\MT5East\MQL5\Scripts\MQL5Book\p4\EnvDescription.ex5 / ok
TerminalInfoString(TERMINAL_LANGUAGE)=Russian / ok
TerminalInfoString(TERMINAL_COMPANY)=MetaQuotes Software Corp. / ok
TerminalInfoString(TERMINAL_NAME)=MetaTrader 5 / ok
TerminalInfoString(TERMINAL_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_DATA_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_COMMONDATA_PATH)= »
» C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\Common / ok
2
3
4
5
6
7
8
9
10
Ngôn ngữ giao diện của terminal không chỉ có thể được tìm thấy dưới dạng chuỗi trong thuộc tính TERMINAL_LANGUAGE
mà còn dưới dạng số trang mã (xem thuộc tính TERMINAL_CODEPAGE
trong phần tiếp theo).