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: 1
2
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.