Скрытие индикаторов используемых в эксперте

 

Необходимо скрыть связку стандартных индикаторов используемых в советнике от пользователя, чтобы они (индикаторы) не были видны при прогоне советника в тестере стратегий с включенной визуализацией.

Стандартный способ описанный здесь, не срабатывает – индикаторы всё равно видны. Даже удаление всех индикаторов присутствующих на графике с помощью функции ChartIndicatorDelete не помогает... А "ручная" реализация индикаторов в теле эксперта не рентабельна (эффект от стратегии тот же, а работы в три раза больше...)

Не подскажете как их (индикаторы) убрать с экрана?

 
Создайте шаблон <имя тестируемого советника>.tpl, в котором не будет никаких индикаторов. Этот шаблон автоматически применится при визуальном тестировании одноимённого советника, и никакие индикаторы не будут добавляться на график.
Визуализируй стратегию в тестере MetaTrader 5
Визуализируй стратегию в тестере MetaTrader 5
  • 2012.06.08
  • MetaQuotes Software Corp.
  • www.mql5.com
Каждому из нас давно знакома поговорка "Лучше один раз увидеть, чем сто раз услышать". Вы можете прочитать десятки книг о Париже или Венеции, но мысленные образы не позволят вам испытать те же ощущения, как от прогулки по их вечерним улицам. Преимущество визуализации, или наглядного представления, может быть легко спроецировано на любой аспект нашей жизни, включая и работу на рынке, например, анализ цен на графиках при помощи индикаторов, и конечно же, визуализация тестирования стратегий. В данной статье собраны все возможности тестера стратегий MetaTrader 5 по визуализации вычислений.
 
stringo:
Создайте шаблон <имя тестируемого советника>.tpl, в котором не будет никаких индикаторов. Этот шаблон автоматически применится при визуальном тестировании одноимённого советника, и никакие индикаторы не будут добавляться на график.

Благодарю за ответ, однако ваш способ тоже не помог: во первых при тестировании советника не получается ни сохранить, ни применить шаблон средствами эксперта, во вторых если создать шаблон с именем совпадающим с именем эксперта, вручную, перед тестированием, то в тестере, при визуальном тестировании, всё равно отображаются индикаторы.

Код тестового эксперта:

int handle;
long i, j;
string indName;
bool first = true;
int fw, fi;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   handle = iAO(_Symbol, _Period);
   if (handle == INVALID_HANDLE) {handle = 0;};
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   if (handle != 0) {IndicatorRelease(handle);};
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   bool anw1, anw2;
//---
   if (first) {
      j = 0;
      for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) {
      j += ChartIndicatorsTotal(0, int(i));
    };
    fw = int(ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0));
    fi = int(j);
    first = false;
   };
   for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) {
    for (j = ChartIndicatorsTotal(0, int(i)) - 1; j >= 0; j--) {
      indName = ChartIndicatorName(0, int(i), int(j));
      ChartIndicatorDelete(0, int(i), indName);
    };
   };
   anw1 = ChartSaveTemplate(0, MQL5InfoString(MQL5_PROGRAM_NAME));
   anw2 = ChartApplyTemplate(0, MQL5InfoString(MQL5_PROGRAM_NAME));
   ChartRedraw(0);
   j = 0;
   for (i = ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0) - 1; i >= 0; i--) {
    j += ChartIndicatorsTotal(0, int(i));
   };
   Comment("Windows = ", ChartGetInteger(0, CHART_WINDOWS_TOTAL, 0), " (first ", fw, "); Indicators = ", j, " (first ", fi, "); Ответы: ", anw1, " ", anw2);
  }
//+------------------------------------------------------------------+
 

Как же всетаки скрыть индикаторы при визуальном тестировании и не от себя, а от всех, если, допустим, я не желаю афишировать принципы своей торговой стратегии?   IndicatorRelease и ChartIndicatorDelete тут не помогают.

 
 
void HideTestIndicators(bool hide)

HideTestIndicators - Пользовательские индикаторы - Справочник MQL4
HideTestIndicators - Пользовательские индикаторы - Справочник MQL4
  • docs.mql4.com
HideTestIndicators - Пользовательские индикаторы - Справочник MQL4
 
Скрыть индикатор, если это ваш индикатор или имеется код можно элементарно, просто убрать из самого индикатора прорисовку линий (вообще линии), оставив только буфера, а имя индикатора никому ни о чем не говорит.
 
Roman Poshtar:
void HideTestIndicators(bool hide)

главное вовремя. Теперь автор то начнет зарабатывать :-) 
Причина обращения: