Скачать MetaTrader 5

Вопрос по индикатору Zigzag

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Запустили испанскую и португальскую версии сайта. Оцени сам!
Vladislav Boyko
1188
Vladislav Boyko 2016.07.12 22:33 

Здравствуйте. Есть эксперт, работающий на зигзаге. Местами он странно себя ведет. Выяснилось, проблема в том, что иногда пропадает последний экстремум зигзага.

Для проверки написал небольшой индикатор. Он находит время открытия бара, на котором расположен последний экстремум зигзага и сравнивает его с тем же значением на предыдущем тике. Если новое время оказывается меньшим (экстремум пропал) - индикатор сигнализирует об этом алертом. Код:

#property strict
#property indicator_chart_window

input int zz_depth     = 20, // Slow zigzag depth
          zz_deviation = 5,  // Slow zigzag deviation
          zz_backstep  = 3;  // Slow zigzag backstep

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static datetime previousTimeOfLastExtremum = 0;
   datetime        timeOfLastExtremum         = getTimeOfLastExtremum();
   
   if(timeOfLastExtremum == -1) // На всякий случай
      return(rates_total);
   
   if(timeOfLastExtremum >= previousTimeOfLastExtremum)
      previousTimeOfLastExtremum = timeOfLastExtremum;
   
   else Alert("Пропал экстремум");
   
   return(rates_total);
  }

datetime getTimeOfLastExtremum()
  {
   for(int i = 0; i < Bars; i++)
      if(iCustom(NULL, 0, "ZigZag", zz_depth, zz_deviation, zz_backstep, 0, i) != 0)
         return(Time[i]);
   
   Alert("Не удалось найти экстремум ZigZag с настройками ", zz_depth, " ", zz_deviation, " ", zz_backstep);
   
   return(-1);
  }

Результат:

 

Если кто захочет убедиться, индикатор нужно запускать в тестере стратегий. Настройки индикатора дефолтные. Параметры тестирования:

  

Подскажите, пожалуйста, это нормальная работа зигзага, так и задумано? Или, может быть, я где-то ошибся?

Ihor Herasko
9034
Ihor Herasko 2016.07.12 22:36  
Vladislav Boyko:

Здравствуйте. Есть эксперт, работающий на зигзаге. Местами он странно себя ведет. Выяснилось, проблема в том, что иногда пропадает последний экстремум зигзага.

Для проверки написал небольшой индикатор. Он находит время открытия бара, на котором расположен последний экстремум зигзага и сравнивает его с тем же значением на предыдущем тике. Если новое время оказывается меньшим (экстремум пропал) - индикатор сигнализирует об этом алертом. Код:

Результат:

 

Если кто захочет убедиться, индикатор нужно запускать в тестере стратегий. Настройки индикатора дефолтные. Параметры тестирования:

  

Подскажите, пожалуйста, это нормальная работа зигзага, так и задумано? Или, может быть, я где-то ошибся?

Так ведь ZigZag - перерисовывающийся индикатор. Его последний экстремум не является стабильным, он может перескочит на другой бар. Иначе бы ZigZag был Граалем)))
Vladislav Boyko
1188
Vladislav Boyko 2016.07.12 22:54  
Ihor Herasko:
Так ведь ZigZag - перерисовывающийся индикатор. Его последний экстремум не является стабильным, он может перескочит на другой бар. Иначе бы ZigZag был Граалем)))

Он перескакивает только вправо.

В основном он пропадает всего на 1 тик, а, затем появляется на том-же баре. То есть, даже, учитывая этот "баг", он перескакивает только вправо.

Я бы не назвал это перерисовкой, он просто пропадает на время. 

При чем, мне еще не удалось даже с помощью WindowScreenShot() уловить момент пропажи. А, фактически, он есть.

Sergei Vladimirov
8764
Sergei Vladimirov 2016.07.12 22:59  
Vladislav Boyko:

Я бы не назвал это перерисовкой, он просто пропадает на время. 

Можете не называть, но сути это не меняет. :) Последний экстремум фиксируется тогда, когда цена уйдёт от него на величину, равную или превышающую размерность зигзага. До этого момента последний экстремум может пропасть, если цена развернётся.
Alexey Volchanskiy
16755
Alexey Volchanskiy 2016.07.12 23:24  
Vladislav Boyko:

Здравствуйте. Есть эксперт, работающий на зигзаге. Местами он странно себя ведет. Выяснилось, проблема в том, что иногда пропадает последний экстремум зигзага.

Для проверки написал небольшой индикатор. Он находит время открытия бара, на котором расположен последний экстремум зигзага и сравнивает его с тем же значением на предыдущем тике. Если новое время оказывается меньшим (экстремум пропал) - индикатор сигнализирует об этом алертом. Код:

Результат:

 

Если кто захочет убедиться, индикатор нужно запускать в тестере стратегий. Настройки индикатора дефолтные. Параметры тестирования:

  

Подскажите, пожалуйста, это нормальная работа зигзага, так и задумано? Или, может быть, я где-то ошибся?

Это мне напомнило давнюю историю. Звонит клиент и возбужденным голосом говорит, что разработал крутую стратегию, надо срочно писать советника! Смотрю, стратегия на Зигзаге и фракталах )) Я говорю, - а ты в курсе, что они перерисовываются? Это на истории все прекрасно, а в реале нет.

Так он не поверил, заплатил денег, я ему набросал по быстрому и в местах фракталов и пиков ставил точки. Там этих точек было на ненужных местах... 

Vladislav Boyko
1188
Vladislav Boyko 2016.07.12 23:36  
Alexey Volchanskiy:

Это мне напомнило давнюю историю. Звонит клиент и возбужденным голосом говорит, что разработал крутую стратегию, надо срочно писать советника! Смотрю, стратегия на Зигзаге и фракталах )) Я говорю, - а ты в курсе, что они перерисовываются? Это на истории все прекрасно, а в реале нет.

Так он не поверил, заплатил денег, я ему набросал по быстрому и в местах фракталов и пиков ставил точки. Там этих точек было на ненужных местах... 

Я не отрицал того что он рисует. Но я не думал что описанная мной ситуация относится к перерисовке. Как по мне, это больше похоже на баг, ведь точка не перемещается а именно пропадает и появляется на том-же баре. Но если все утверждают что это тоже перерисовка - ок. Именно это я и хотел узнать.

Всем спасибо.

Alexander Bereznyak
21466
Alexander Bereznyak 2016.07.13 00:16  

стандартный ZigZag в составе терминала, кривой, он может последний луч отменить или нарисовать две

вершины верхние или нижние подряд, не зря есть большое количество клонов у которых отсутствуют эти проблемы

Alexey Kozitsyn
6378
Alexey Kozitsyn 2016.07.13 11:32  
Alexander Bereznyak:

стандартный ZigZag в составе терминала, кривой, он может последний луч отменить или нарисовать две

вершины верхние иди нижние подряд, не зря есть большое количество клонов у которых отсутствуют эти проблемы

+1
Eugeni Neumoin
1781
Eugeni Neumoin 2016.07.13 14:00  
Sergei Vladimirov:
Можете не называть, но сути это не меняет. :) Последний экстремум фиксируется тогда, когда цена уйдёт от него на величину, равную или превышающую размерность зигзага. До этого момента последний экстремум может пропасть, если цена развернётся.

Развернется тогда, когда это предусмотрено алгоритмом, а не когда уйдет на величину равную или превышающую размерность зигзага.

А вот алгоритмов разных много. Например, можно вручную нарисовать

И никакие усилия не заставят его перерисоваться....


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