MQL5参考图表操作ChartSetString 

ChartSetString

设置指定图表的相关属性值。图表属性必须是字符串类型。该命令添加到图表信息队列并且将在处理完之前所有命令后开始执行。

bool  ChartSetString(
   long  chart_id,         // 图表 ID
   int   prop_id,          // 属性 ID
   string   str_value      // 值
   );

参量

chart_id

[in]  图表 ID. 0 意味着当前图表。

prop_id

[in]  图表属性 ID. 可以是ENUM_CHART_PROPERTY_STRING值中的一个(除了只读属性)。

str_value

[in] 属性值字符串。字符串长度不能超过 2045 个字符(多出的字符会被删除)。

返回值

如果该命令已添加到图表队列则返回true,否则false。若获得额外错误信息,需要调用函数GetLastError()

注释

ChartSetString 可以代替注释函数用作图标中的注释输出。

该函数为异步函数,这意味着该函数不等待执行已成功添加到指定图表队列的命令。相反,而是立即返回控制。该属性将只会在处理图表队列的对应命令之后更改。若要立即执行来自图表队列的命令,请调用ChartRedraw函数。

如果您想立即改变多个图表属性,那么应该在一个代码框中执行对应的函数(ChartSetStringChartSetDoubleChartSetString),在此之后您应该马上调用ChartRedraw

若要检查命令执行的结果,您可以使用一个函数,请求指定的图表属性(ChartGetIntegerChartGetDoubleChartSetString)。然而,请注意,这些都是同步函数,等待执行结果。

示例:

void OnTick()
  {
//---
   double Ask,Bid;
   int Spread;
   Ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   Bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   Spread=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD);
   string comment=StringFormat("Printing prices:\nAsk = %G\nBid = %G\nSpread = %d",
                               Ask,Bid,Spread);
   ChartSetString(0,CHART_COMMENT,comment);
  }

另见

注释ChartGetString