图表重绘请求

在多数情况下,图表会自动响应数据和终端设置的变化,并相应地更新窗口显示内容(如价格图表、指标图表等)。但 MQL 程序的功能非常丰富,可执行任意操作,因此难以判定确定是否需要重绘。此外,分析该账户上每个 MQL 程序的操作可能消耗大量资源,导致终端整体性能下降。因此,MQL5 API 提供了 ChartRedraw函数,借助该函数,MQL 程序可以在必要时自行请求重绘图表。

void ChartRedraw(long chartId = 0)

该函数会强制重绘具有指定标识符的图表(默认值 0 表示当前图表)。通常,该函数在程序修改图表特性或其上放置的 对象 后调用。

图表显示模式一节的 IndSubChart.mq5指标中,我们已经见过ChartRedraw 的应用示例。在 打开和关闭图表一节中还将提供另一个示例。

该函数仅影响图表的重绘,不会重新计算含报价和指标的时间序列。图表更新(实际上为重建)的最后一种方法更为强硬,是通过 ChartSetSymbolPeriod函数执行(见下一节)。