Thuộc tính mô tả biểu đồ
Các hàm ChartSetString/ChartGetString cho phép đọc và đặt các thuộc tính chuỗi sau của biểu đồ.
| Định danh | Mô tả |
|---|---|
CHART_COMMENT | Văn bản bình luận của biểu đồ |
CHART_EXPERT_NAME | Tên của Expert Advisor chạy trên biểu đồ (r/o) |
CHART_SCRIPT_NAME | Tên của script chạy trên biểu đồ (r/o) |
Trong chương Hiển thị thông điệp trong cửa sổ biểu đồ, chúng ta đã tìm hiểu về hàm Comment hiển thị một thông điệp văn bản ở góc trên bên trái của biểu đồ. Thuộc tính CHART_COMMENT cho phép bạn đọc bình luận hiện tại của biểu đồ: ChartGetString(0, CHART_COMMENT). Cũng có thể truy cập bình luận trên các biểu đồ khác bằng cách truyền định danh của chúng vào hàm. Bằng cách sử dụng ChartSetString, bạn có thể thay đổi bình luận trên biểu đồ hiện tại và các biểu đồ khác, nếu bạn biết ID của chúng: ChartSetString(ID, CHART_COMMENT, "text").
Nếu một Expert Advisor hoặc/và một script đang chạy trong bất kỳ biểu đồ nào, chúng ta có thể tìm ra tên của chúng bằng các lệnh gọi này: ChartGetString(ID, CHART_EXPERT_NAME) và ChartGetString(ID, CHART_SCRIPT_NAME).
Script ChartList3.mq5, tương tự như ChartList2.mq5, bổ sung danh sách biểu đồ với thông tin về Expert Advisors và script. Sau này chúng ta sẽ thêm vào đó thông tin về các chỉ báo.
void ChartList()
{
const long me = ChartID();
long id = ChartFirst();
int count = 0, used = 0, temp, experts = 0, scripts = 0;
Print("Chart List\nN, ID, Symbol, TF, *active");
// keep iterating over charts until there are none left
while(id != -1)
{
temp = 0; // sign of MQL programs on this chart
const string header = StringFormat("%d %lld %s %s %s",
count, id, ChartSymbol(id), PeriodToString(ChartPeriod(id)),
(id == me ? " *" : ""));
// fields: N, id, symbol, timeframe, label of the current chart
Print(header);
string expert = ChartGetString(id, CHART_EXPERT_NAME);
string script = ChartGetString(id, CHART_SCRIPT_NAME);
if(StringLen(expert) > 0) expert = "[E] " + expert;
if(StringLen(script) > 0) script = "[S] " + script;
if(expert != NULL || script != NULL)
{
Print(expert, " ", script);
if(expert != NULL) experts++;
if(script != NULL) scripts++;
temp++;
}
count++;
if(temp > 0)
{
used++;
}
id = ChartNext(id);
}
Print("Total chart number: ", count, ", with MQL-programs: ", used);
Print("Experts: ", experts, ", Scripts: ", scripts);
}2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Đây là một ví dụ về đầu ra của script này.
Chart List
N, ID, Symbol, TF, *active
0 132358585987782873 EURUSD M15
1 132360375330772909 EURUSD H1 *
[S] ChartList3
2 132544239145024745 XAUUSD H1
3 132544239145024732 USDRUB D1
4 132544239145024744 EURUSD H1
Total chart number: 5, with MQL-programs: 1
Experts: 0, Scripts: 12
3
4
5
6
7
8
9
10
Ở đây bạn có thể thấy rằng chỉ có một script đang được thực thi.
