MQL5参考普通函数TesterHideIndicators 

TesterHideIndicators

设置显示/隐藏EA中使用的指标的模式。这个函数仅用于在测试期间管理已用指标的可见性。

void  TesterHideIndicators(
   bool      hide     // 标识
   );

参数

隐藏

[in] 用于测试时隐藏指标的标识。设置隐藏已创建指标为true,否则为false。

返回值

无。

注意

默认情况下,已测试EA创建的所有指标都显示在可视测试图表上。此外,这些指标还显示在测试完成后自动打开的图表上。TesterHideIndicators()函数允许开发人员实现禁止显示已用指标的功能。

若要禁止显示测试EA时已用的指标,请在创建EA句柄之前调用TesterHideIndicators()等于true – 在此后创建的所有指标都被标记为隐藏标识。这些指标在可视测试期间和测试完成后自动打开的图表上都不显示。

若要禁用新创建指标的隐藏模式,请调用TesterHideIndicators() 等于false。只有从测试EA直接生成的指标才可以显示在测试图表上。这个规则只适用于<data_folder>MQL5\Profiles\Templates没有单一模板的情况下。

如果<data_folder>MQL5\Profiles\Templates文件目录包含一个特殊模板<EA_name>.tpl,那么只有该模板的指标可以在可视测试期间和测试图表上显示。在这种情况下,测试EA中无已用指标可显示。即使在EA代码中调用TesterHideIndicators()等于true,这种情况下仍然存在。

如果<data_folder>MQL5\Profiles\Templates目录不包含特殊模板<EA_name>.tpl而是以tester.tpl来替代,那么没有被TesterHideIndicators()函数禁用的来自tester.tpl的指标和来自EA的指标会在可视测试期间和测试图表上显示。如果没有tester.tpl模板,则使用default.tpl模板的指标来替代。

如果策略测试发现了不合适的模板(<EA_name>.tpl,tester.tpl或default.tpl),那么EA中使用的指标的显示则完全由TesterHideIndicators() 函数管理。

例如:

bool CSampleExpert::InitIndicators(void)
  {
   TesterHideIndicators(true);
//--- 创建MACD指标
   if(m_handle_macd==INVALID_HANDLE)
      if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating MACD indicator");
         return(false);
        }
   TesterHideIndicators(false);
//--- 创建EMA指标并将其添加到集
   if(m_handle_ema==INVALID_HANDLE)
      if((m_handle_ema=iMA(NULL,0,InpMATrendPeriod,0,MODE_EMA,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating EMA indicator");
         return(false);
        }
//--- 成功
   return(true);
  }

另见

IndicatorRelease