Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Artyom Martynenko
212
Artyom Martynenko  

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

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

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

Slava
Модератор
7089
Slava  
Создайте шаблон <имя тестируемого советника>.tpl, в котором не будет никаких индикаторов. Этот шаблон автоматически применится при визуальном тестировании одноимённого советника, и никакие индикаторы не будут добавляться на график.
Визуализируй стратегию в тестере MetaTrader 5
Визуализируй стратегию в тестере MetaTrader 5
  • 2012.06.08
  • MetaQuotes Software Corp.
  • www.mql5.com
Каждому из нас давно знакома поговорка "Лучше один раз увидеть, чем сто раз услышать". Вы можете прочитать десятки книг о Париже или Венеции, но мысленные образы не позволят вам испытать те же ощущения, как от прогулки по их вечерним улицам. Преимущество визуализации, или наглядного представления, может быть легко спроецировано на любой аспект нашей жизни, включая и работу на рынке, например, анализ цен на графиках при помощи индикаторов, и конечно же, визуализация тестирования стратегий. В данной статье собраны все возможности тестера стратегий MetaTrader 5 по визуализации вычислений.
Artyom Martynenko
212
Artyom Martynenko  
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);
  }
//+------------------------------------------------------------------+
Дмитрий Урупа
15
Дмитрий Урупа  

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

Alexander Bereznyak
15474
Alexander Bereznyak  
Вписать код индикатора в советник.
Roman Poshtar
1972
Roman Poshtar  
void HideTestIndicators(bool hide)

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

главное вовремя. Теперь автор то начнет зарабатывать :-) 
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий