Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Увеличивай свой рейтинг. Выполняй заказы в сервисе Фриланс!
Artyom Martynenko
212
Artyom Martynenko 2013.05.31 00:44 

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

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

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

Slawa
Модератор
6840
Slawa 2013.05.31 05:11  
Создайте шаблон <имя тестируемого советника>.tpl, в котором не будет никаких индикаторов. Этот шаблон автоматически применится при визуальном тестировании одноимённого советника, и никакие индикаторы не будут добавляться на график.
Визуализируй стратегию в тестере MetaTrader 5
Визуализируй стратегию в тестере MetaTrader 5
  • 2012.06.08
  • MetaQuotes Software Corp.
  • www.mql5.com
Каждому из нас давно знакома поговорка "Лучше один раз увидеть, чем сто раз услышать". Вы можете прочитать десятки книг о Париже или Венеции, но мысленные образы не позволят вам испытать те же ощущения, как от прогулки по их вечерним улицам. Преимущество визуализации, или наглядного представления, может быть легко спроецировано на любой аспект нашей жизни, включая и работу на рынке, например, анализ цен на графиках при помощи индикаторов, и конечно же, визуализация тестирования стратегий. В данной статье собраны все возможности тестера стратегий MetaTrader 5 по визуализации вычислений.
Artyom Martynenko
212
Artyom Martynenko 2013.05.31 07:32  
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
Дмитрий Урупа 2013.11.07 07:09  

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

Alexander Bereznyak
21458
Alexander Bereznyak 2013.11.07 08:09  
Вписать код индикатора в советник.
Roman Poshtar
1167
Roman Poshtar 2016.03.21 19:12  
void HideTestIndicators(bool hide)

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

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