ChartIndicatorName

在指定图表窗口根据指标列表编号返回指标缩略名。

string  ChartIndicatorName(
   long  chart_id,      // 图表 id
   int   sub_window     // 子窗口数量
   int   index          // 添加到图表子窗口的指标列表中的指标标引
   );

参数

chart_id

[in]  图表 ID。0 表示当前图表。

sub_window

[in]  图表子窗口的数量。0代表主图表的子窗口。

index

[in]  指标列表中的指标标引。指标编号从0开始,例如列表中的第一个指标编号为0。若要获得列表中的指标数量,请使用ChartIndicatorsTotal()函数。

返回值

使用IndicatorSetString() 函数在INDICATOR_SHORTNAME 属性设置的指标的缩略名。若要获得错误 信息,请使用 GetLastError() 函数。

注意

不要混淆指标缩略名和使用函数 iCustom()IndicatorCreate()创建指标时指定的文件名。 如果指标缩略名没有明确设置,那么包含指标源代码的文件名将在编译期被指明。

指标缩略名应该正确设置。它将使用IndicatorSetString() 函数被写入INDICATOR_SHORTNAME 属性。建议缩略名应该包含指标所有输入参数的值,因为通过ChartIndicatorDelete() 函数从图表删除的指标通过缩略名识别。

示例:

//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 取得当前图表ID和它的主窗口加子窗口的数量
   long chart_id = ChartID();
   int  wnd_total= (int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   
//--- 在当前图表的所有窗口中循环迭代
   for(int w=0w<wnd_totalw++)
     {
      //--- 根据指定的循环索引取得附加到图表窗口中的指标数量
      int ind_total=ChartIndicatorsTotal(chart_idw);
      
      //--- 打印所选图表窗口的标题
      PrintFormat("Chart window %d indicators: "w);
      
      //--- 在循环中写入附加到所选窗口的所有指标的名称
      string ind_names="";
      for(int i=0i<ind_totali++)
        {
         ind_names+="  "+ChartIndicatorName(chart_idwi)+(i<ind_total-1 ? "\n""");
        }
      //--- 在日志中打印附加于指定图表窗口的所有指标的名称
      Print(ind_names);
     }
   /*
   结果:
   Chart window 0 indicators
     AMA(9,2,30)
     SAR(0.02,0.20)
     Fractals
   Chart window 1 indicators
     RSI(14)
     AMA(9,2,30)
   Chart window 2 indicators
     MFI(14)
   */
  }

另见

ChartIndicatorAdd()ChartIndicatorDelete()ChartIndicatorsTotal()iCustom()IndicatorCreate()IndicatorSetString()