设置绘图名称

在本章中前面的示例中,数据窗口中的指标缓冲区默认使用指标本身的名称进行标识。这种做法缺乏信息性。MQL5 API 提供了为每个缓冲区设置自定义名称的功能。这可通过以下两种已知方式实现:一是使用 #property指令,二是调用特殊的 PlotIndexSetString 函数。

bool PlotIndexSetString(int index, ENUM_PLOT_PROPERTY_STRING property, string value)

该函数的原型与 PlotIndexSetInteger类似,区别在于特性类型(value 参数)为string。该函数仅支持一个 PLOT_LABEL 特性(即 ENUM_PLOT_PROPERTY_STRING 枚举常量)。index索引参数中的自定义图表索引必须在 0 到 N-1 之间,其中 N 是由 #property indicator_plots N 指定的绘图总数。

使用指令时,图表索引需按 1 进行调整,因为指令中的绘图编号从 1 开始,而函数参数的编号从 0 开始。

指令

函数

说明

#property indicator_labelN

PlotIndexSetString(N-1, PLOT_LABEL, string)

指定在 Data window和工具提示中显示的文本标签

对于需要多个指标缓冲区的图形系列(例如 DRAW_CANDLES、DRAW_FILLING、DRAW_CANDLES 等等),标签名称使用分号“;”分隔

当鼠标悬停在图表上时,标签也会显示在工具提示中。

IndLabelHighLowClose.mq5示例中,我们添加了两条指令(与 IndPropHighLowClose.mq5 的区别)。

#property indicator_label1  "High;Low"
#property indicator_label2  "Close"

现在,Data Window中显示指标时,其显示的值要容易理解得多。