Quản lý khả năng hiển thị của các thành phần biểu đồ
Một tập hợp lớn các thuộc tính trong ENUM_CHART_PROPERTY_INTEGER
kiểm soát khả năng hiển thị của các thành phần biểu đồ. Hầu hết chúng đều thuộc kiểu boolean: true
tương ứng với việc hiển thị thành phần, và false
tương ứng với việc ẩn nó. Ngoại lệ là CHART_SHOW_VOLUMES
, sử dụng liệt kê ENUM_CHART_VOLUME_MODE
(xem bên dưới).
Định danh | Mô tả | Kiểu giá trị |
---|---|---|
CHART_SHOW | Hiển thị biểu đồ giá chung. Nếu đặt thành false, thì việc hiển thị bất kỳ thuộc tính nào của biểu đồ giá bị tắt và tất cả khoảng đệm dọc theo các cạnh biểu đồ bị loại bỏ: thang thời gian và giá, thanh điều hướng nhanh, đánh dấu sự kiện lịch, biểu tượng giao dịch, chú giải công cụ của chỉ báo và thanh, cửa sổ phụ của chỉ báo, biểu đồ khối lượng, v.v. | bool |
CHART_SHOW_TICKER | Hiển thị mã biểu tượng ở góc trên bên trái. Tắt mã biểu tượng sẽ tự động tắt OHLC (CHART_SHOW_OHLC ) | bool |
CHART_SHOW_OHLC | Hiển thị giá trị OHLC ở góc trên bên trái. Bật OHLC sẽ tự động bật mã biểu tượng (CHART_SHOW_TICKER ) | bool |
CHART_SHOW_BID_LINE | Hiển thị giá trị Bid dưới dạng đường ngang | bool |
CHART_SHOW_ASK_LINE | Hiển thị giá trị Ask dưới dạng đường ngang | bool |
CHART_SHOW_LAST_LINE | Hiển thị giá trị Last dưới dạng đường ngang | bool |
CHART_SHOW_PERIOD_SEP | Hiển thị các đường phân cách dọc giữa các kỳ liền kề | bool |
CHART_SHOW_GRID | Hiển thị lưới trên biểu đồ | bool |
CHART_SHOW_VOLUMES | Hiển thị khối lượng trên biểu đồ | ENUM_CHART_VOLUME_MODE |
CHART_SHOW_OBJECT_DESCR | Hiển thị mô tả văn bản của các đối tượng (mô tả không hiển thị cho tất cả các loại đối tượng) | bool |
CHART_SHOW_TRADE_LEVELS | Hiển thị các mức giao dịch trên biểu đồ (mức của vị thế mở, Stop Loss, Take Profit và lệnh chờ) | bool |
CHART_SHOW_DATE_SCALE | Hiển thị thang ngày trên biểu đồ | bool |
CHART_SHOW_PRICE_SCALE | Hiển thị thang giá trên biểu đồ | bool |
CHART_SHOW_ONE_CLICK | Hiển thị bảng giao dịch nhanh trên biểu đồ (tùy chọn "Giao dịch một cú nhấp chuột") | bool |
Cờ trong hộp thoại cài đặt cho một số thuộc tính ENUM_CHART_PROPERTY_INTEGER
Một số thuộc tính này có sẵn cho người dùng từ menu ngữ cảnh của biểu đồ, trong khi một số chỉ có sẵn từ hộp thoại cài đặt. Cũng có những cài đặt chỉ có thể thay đổi từ MQL5, đặc biệt là hiển thị thang dọc (CHART_SHOW_DATE_SCALE
) và ngang (CHART_SHOW_DATE_SCALE
), cũng như khả năng hiển thị của toàn bộ biểu đồ (CHART_SHOW
). Trường hợp cuối cùng cần được chú ý đặc biệt, vì việc tắt hiển thị là giải pháp lý tưởng để tạo giao diện chương trình của riêng bạn bằng cách sử dụng tài nguyên đồ họa và đối tượng đồ họa, vốn luôn được hiển thị, bất kể giá trị của CHART_SHOW
.
Cuốn sách đi kèm với script ChartBlackout.mq5
, script này chuyển đổi chế độ CHART_SHOW
từ trạng thái hiện tại sang trạng thái ngược lại mỗi khi chạy.
void OnStart()
{
ChartSetInteger(0, CHART_SHOW, !ChartGetInteger(0, CHART_SHOW));
}
2
3
4
Do đó, bạn có thể áp dụng nó trên một biểu đồ bình thường để xóa hoàn toàn cửa sổ, và sau đó áp dụng lại để khôi phục giao diện trước đó.
Liệt kê ENUM_CHART_VOLUME_MODE
đã đề cập chứa các thành viên sau.
Định danh | Mô tả | Giá trị |
---|---|---|
CHART_VOLUME_HIDE | Khối lượng bị ẩn | 0 |
CHART_VOLUME_TICK | Khối lượng tick | 1 |
CHART_VOLUME_REAL | Khối lượng giao dịch (nếu có) | 2 |
Tương tự như script ChartMode.mq5
, chúng ta triển khai một trình giám sát khả năng hiển thị cho các thành phần biểu đồ trong script ChartElements.mq5
. Sự khác biệt chính nằm ở các tập hợp cờ được kiểm soát khác nhau.
void OnStart()
{
int flags[] =
{
CHART_SHOW,
CHART_SHOW_TICKER, CHART_SHOW_OHLC,
CHART_SHOW_BID_LINE, CHART_SHOW_ASK_LINE, CHART_SHOW_LAST_LINE,
CHART_SHOW_PERIOD_SEP, CHART_SHOW_GRID,
CHART_SHOW_VOLUMES,
CHART_SHOW_OBJECT_DESCR,
CHART_SHOW_TRADE_LEVELS,
CHART_SHOW_DATE_SCALE, CHART_SHOW_PRICE_SCALE,
CHART_SHOW_ONE_CLICK
};
...
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Ngoài ra, sau khi tạo bản sao lưu của các cài đặt, chúng ta cố ý tắt thang thời gian và giá bằng lập trình (khi script kết thúc, nó sẽ khôi phục chúng từ bản sao lưu).
...
m.backup();
ChartSetInteger(0, CHART_SHOW_DATE_SCALE, false);
ChartSetInteger(0, CHART_SHOW_PRICE_SCALE, false);
...
}
2
3
4
5
6
7
Dưới đây là một đoạn nhật ký với các bình luận về các hành động đã thực hiện. Hai mục đầu tiên xuất hiện chính xác vì các thang bị tắt trong mã MQL sau khi bản sao lưu ban đầu được tạo.
CHART_SHOW_DATE_SCALE 1 -> 0 // tắt thang thời gian trong mã MQL5
CHART_SHOW_PRICE_SCALE 1 -> 0 // tắt thang giá trong mã MQL5
CHART_SHOW_ONE_CLICK 0 -> 1 // tắt "Giao dịch một cú nhấp chuột"
CHART_SHOW_GRID 1 -> 0 // tắt "Lưới"
CHART_SHOW_VOLUMES 0 -> 2 // hiển thị "Khối lượng thực"
CHART_SHOW_VOLUMES 2 -> 1 // hiển thị "Khối lượng tick"
CHART_SHOW_TRADE_LEVELS 1 -> 0 // tắt "Mức giao dịch"
2
3
4
5
6
7