Tách cửa sổ biểu đồ
Các cửa sổ biểu đồ trong terminal có thể được tách ra khỏi cửa sổ chính, sau đó chúng có thể được di chuyển đến bất kỳ vị trí nào trên màn hình desktop, bao gồm cả các màn hình khác. MQL5 cho phép bạn tìm hiểu và thay đổi cài đặt này: các thuộc tính tương ứng được bao gồm trong liệt kê ENUM_CHART_PROPERTY_INTEGER
.
Định danh | Mô tả | Kiểu giá trị |
---|---|---|
CHART_IS_DOCKED | Cửa sổ biểu đồ được gắn (mặc định là true ). Nếu đặt thành false , biểu đồ có thể được kéo ra ngoài terminal | bool |
CHART_FLOAT_LEFT | Tọa độ trái của biểu đồ đã tách ra so với màn hình ảo | int |
CHART_FLOAT_TOP | Tọa độ trên của biểu đồ đã tách ra so với màn hình ảo | int |
CHART_FLOAT_RIGHT | Tọa độ phải của biểu đồ đã tách ra so với màn hình ảo | int |
CHART_FLOAT_BOTTOM | Tọa độ dưới của biểu đồ đã tách ra so với màn hình ảo | int |
Hãy thiết lập theo dõi các thuộc tính này trong script ChartDock.mq5
.
void OnStart()
{
const int flags[] =
{
CHART_IS_DOCKED,
CHART_FLOAT_LEFT, CHART_FLOAT_TOP, CHART_FLOAT_RIGHT, CHART_FLOAT_BOTTOM
};
ChartModeMonitor m(flags);
...
}
2
3
4
5
6
7
8
9
10
Nếu bạn chạy script này, sau đó tách biểu đồ bằng menu ngữ cảnh (bỏ chọn lệnh chuyển đổi Docked
) và di chuyển hoặc thay đổi kích thước biểu đồ, các nhật ký tương ứng sẽ được thêm vào nhật ký.
Initial state:
[key] [value]
[0] 51 1
[1] 52 0
[2] 53 0
[3] 54 0
[4] 55 0
// tách ra
CHART_IS_DOCKED 1 -> 0
CHART_FLOAT_LEFT 0 -> 299
CHART_FLOAT_TOP 0 -> 75
CHART_FLOAT_RIGHT 0 -> 1263
CHART_FLOAT_BOTTOM 0 -> 472
// thay đổi kích thước dọc
CHART_FLOAT_BOTTOM 472 -> 500
CHART_FLOAT_BOTTOM 500 -> 539
// thay đổi kích thước ngang
CHART_FLOAT_RIGHT 1263 -> 1024
CHART_FLOAT_RIGHT 1024 -> 1023
// gắn lại
CHART_IS_DOCKED 0 -> 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Phần này hoàn thành việc mô tả các thuộc tính được quản lý thông qua các hàm ChartGet
và ChartSet
, vì vậy hãy tổng kết tài liệu bằng một script chung ChartFullSet.mq5
. Nó theo dõi trạng thái của tất cả các thuộc tính của tất cả các loại. Việc khởi tạo mảng flags được thực hiện bằng cách điền lần lượt các chỉ số trong một vòng lặp. Giá trị tối đa được lấy với một khoảng dự phòng trong trường hợp có thuộc tính mới, và các số không tồn tại thừa sẽ tự động bị loại bỏ bởi kiểm tra tích hợp trong lớp ChartModeMonitorBase
(nhớ phương thức detect
).
Sau khi kích hoạt script, hãy thử thay đổi bất kỳ cài đặt nào trong khi theo dõi các thông báo chương trình trong nhật ký.