Khả năng hiển thị của đối tượng
Sự kết hợp của các cờ hiển thị đối tượng xác định các khung thời gian biểu đồ mà đối tượng có thể hiển thị. Để đặt/lấy giá trị của thuộc tính OBJPROP_TIMEFRAMES
, bạn có thể sử dụng các hàm ObjectSetInteger()
/ObjectGetInteger()
.
ID | Giá trị | Mô tả |
---|---|---|
OBJ_NO_PERIODS | 0 | Đối tượng không được vẽ ở tất cả các khung thời gian |
OBJ_PERIOD_M1 | 0x00000001 | Đối tượng được vẽ trên biểu đồ 1 phút |
OBJ_PERIOD_M2 | 0x00000002 | Đối tượng được vẽ trên biểu đồ 2 phút |
OBJ_PERIOD_M3 | 0x00000004 | Đối tượng được vẽ trên biểu đồ 3 phút |
OBJ_PERIOD_M4 | 0x00000008 | Đối tượng được vẽ trên biểu đồ 4 phút |
OBJ_PERIOD_M5 | 0x00000010 | Đối tượng được vẽ trên biểu đồ 5 phút |
OBJ_PERIOD_M6 | 0x00000020 | Đối tượng được vẽ trên biểu đồ 6 phút |
OBJ_PERIOD_M10 | 0x00000040 | Đối tượng được vẽ trên biểu đồ 10 phút |
OBJ_PERIOD_M12 | 0x00000080 | Đối tượng được vẽ trên biểu đồ 12 phút |
OBJ_PERIOD_M15 | 0x00000100 | Đối tượng được vẽ trên biểu đồ 15 phút |
OBJ_PERIOD_M20 | 0x00000200 | Đối tượng được vẽ trên biểu đồ 20 phút |
OBJ_PERIOD_M30 | 0x00000400 | Đối tượng được vẽ trên biểu đồ 30 phút |
OBJ_PERIOD_H1 | 0x00000800 | Đối tượng được vẽ trên biểu đồ 1 giờ |
OBJ_PERIOD_H2 | 0x00001000 | Đối tượng được vẽ trên biểu đồ 2 giờ |
OBJ_PERIOD_H3 | 0x00002000 | Đối tượng được vẽ trên biểu đồ 3 giờ |
OBJ_PERIOD_H4 | 0x00004000 | Đối tượng được vẽ trên biểu đồ 4 giờ |
OBJ_PERIOD_H6 | 0x00008000 | Đối tượng được vẽ trên biểu đồ 6 giờ |
OBJ_PERIOD_H8 | 0x00010000 | Đối tượng được vẽ trên biểu đồ 8 giờ |
OBJ_PERIOD_H12 | 0x00020000 | Đối tượng được vẽ trên biểu đồ 12 giờ |
OBJ_PERIOD_D1 | 0x00040000 | Đối tượng được vẽ trên biểu đồ ngày |
OBJ_PERIOD_W1 | 0x00080000 | Đối tượng được vẽ trên biểu đồ tuần |
OBJ_PERIOD_MN1 | 0x00100000 | Đối tượng được vẽ trên biểu đồ tháng |
OBJ_ALL_PERIODS | 0x001fffff | Đối tượng được vẽ trên tất cả các khung thời gian |
Các cờ hiển thị có thể được kết hợp bằng ký hiệu "|", ví dụ, sự kết hợp của các cờ OBJ_PERIOD_M10|OBJ_PERIOD_H4
có nghĩa là đối tượng sẽ hiển thị trên khung thời gian 10 phút và 4 giờ.
Ví dụ:
cpp
void OnStart()
{
//---
string highlevel="PreviousDayHigh";
string lowlevel="PreviousDayLow";
double prevHigh; // Giá cao nhất của ngày trước
double prevLow; // Giá thấp nhất của ngày trước
double highs[],lows[]; // Mảng cho giá cao và thấp
//--- Đặt lại lỗi cuối cùng
ResetLastError();
//--- Lấy 2 giá trị cao nhất trong khung thời gian ngày
int highsgot=CopyHigh(Symbol(),PERIOD_D1,0,2,highs);
if(highsgot>0) // Nếu sao chép thành công
{
Print("Giá cao nhất trong 2 ngày qua đã được lấy thành công");
prevHigh=highs[0]; // Giá cao nhất của ngày trước
Print("prevHigh = ",prevHigh);
if(ObjectFind(0,highlevel)<0) // Không tìm thấy đối tượng với tên highlevel
{
ObjectCreate(0,highlevel,OBJ_HLINE,0,0,0); // Tạo đối tượng đường ngang
}
//--- Đặt giá trị mức giá cho đường highlevel
ObjectSetDouble(0,highlevel,OBJPROP_PRICE,0,prevHigh);
//--- Đặt khả năng hiển thị chỉ cho PERIOD_M10 và PERIOD_H4
ObjectSetInteger(0,highlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
}
else
{
Print("Không thể lấy giá cao nhất trong 2 ngày qua, Lỗi = ",GetLastError());
}
//--- Đặt lại lỗi cuối cùng
ResetLastError();
//--- Lấy 2 giá trị thấp trong khung thời gian ngày
int lowsgot=CopyLow(Symbol(),PERIOD_D1,0,2,lows);
if(lowsgot>0) // Nếu sao chép thành công
{
Print("Giá thấp nhất trong 2 ngày qua đã được lấy thành công");
prevLow=lows[0]; // Giá thấp nhất của ngày trước
Print("prevLow = ",prevLow);
if(ObjectFind(0,lowlevel)<0) // Không tìm thấy đối tượng với tên lowlevel
{
ObjectCreate(0,lowlevel,OBJ_HLINE,0,0,0); // Tạo đối tượng đường ngang
}
//--- Đặt giá trị mức giá cho đường lowlevel
ObjectSetDouble(0,lowlevel,OBJPROP_PRICE,0,prevLow);
//--- Đặt khả năng hiển thị chỉ cho PERIOD_M10 và PERIOD_H4
ObjectSetInteger(0,lowlevel,OBJPROP_TIMEFRAMES,OBJ_PERIOD_M10|OBJ_PERIOD_H4);
}
else Print("Không thể lấy giá thấp nhất trong 2 ngày qua, Lỗi = ",GetLastError());
ChartRedraw(0); // Vẽ lại biểu đồ một cách cưỡng chế
}
1
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54