Если еще не ушел в отпуск - есть продолжение :))
я в отпуске.
Rosh, если у тебя нет нормального зигзага, могу поделиться. Скажи, куда кидать :)
Кинь в личку на Альпари или ФорексСистемз. Зигзаг у меня есть, но и твой посмотрю с удовольствием. :) Заранее спасибо - если бросишь, если не бросишь - не обижусь.
Послал... по-моему... :)
Quark, Вы можете и с нами поделиться. в своё время мы обещади внести зигзаг в число стандартных индикаторов. теперь постепенно собираем информацию о правильном зигзаге
Quark, Вы можете и с нами поделиться. в своё время мы обещади внести зигзаг в число стандартных индикаторов. теперь постепенно собираем информацию о правильном зигзаге
Сторгуемся :) Ускоренную навигацию по окнам с указанием того, какие там эксперты (Window - More Windows) сделаете?
Сейчас, архив найду.
#property copyright "Copyright Quark" #property link "" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red // indicator parameters extern int nMinMaxPoints = 25; // indicator buffers double arrExtMapBuffer[]; int nExtCountedBars = 0; int nLastMinMaxBar = 0; int nLastMinMaxType = 0; double dLastMin, dLastMax; //////////////////////// int init() { string strIndicatorShortName; // drawing settings SetIndexStyle(0, DRAW_SECTION); SetIndexShift(0, 0); SetIndexEmptyValue(0,0.0); IndicatorDigits(4); strIndicatorShortName = "Zigzag(" + nMinMaxPoints + ")"; IndicatorShortName(strIndicatorShortName); // indicator buffers mapping SetIndexBuffer(0, arrExtMapBuffer); dLastMin = Low[Bars - 1]; dLastMax = High[Bars - 1]; return(0); } /////////////////////////// int start() { nExtCountedBars = IndicatorCounted(); if(nExtCountedBars < 0) return(-1); // last counted bar will be recounted if(nExtCountedBars > 0) nExtCountedBars--; Zigzag(); return(0); } /////////////////// void Zigzag() { int nPos = Bars - nExtCountedBars; nPos = MathMax(nLastMinMaxBar, nPos); dLastMin = Low[nPos]; dLastMax = High[nPos]; while(nPos >= 0) { arrExtMapBuffer[nPos] = 0.0; if(nLastMinMaxType != 1) // Expecting maximum { if(dLastMax <= High[nPos]) { dLastMax = High[nPos]; nLastMinMaxBar = nPos; } else if(Low[nPos] < dLastMax - nMinMaxPoints * Point) // Maximum found { arrExtMapBuffer[nLastMinMaxBar] = High[nLastMinMaxBar]; nLastMinMaxType = 1; dLastMin = Low[nPos]; nLastMinMaxBar = nPos; } } else if(nLastMinMaxType != -1) // Expecting minimum { if(dLastMin >= Low[nPos]) { dLastMin = Low[nPos]; nLastMinMaxBar = nPos; } else if(High[nPos] > dLastMin + nMinMaxPoints * Point) // Maximum found { arrExtMapBuffer[nLastMinMaxBar] = Low[nLastMinMaxBar]; nLastMinMaxType = -1; dLastMax = High[nPos]; nLastMinMaxBar = nPos; } } nPos--; } } ///////////////////
Фы... Это _не_правильный зигзаг ! Он пропускает хаи или лои иногда.
Вобщем в штат его брать нельзя.
Сорри Quark :) без обид.
Вобщем в штат его брать нельзя.
Сорри Quark :) без обид.
Это мое видение зигзага :) Если хаи и лои ему не соответствуют - тем хуже для них. Впрочем, возможно, они были слишком близки к последнему экстремуму - там логика такая, что ловит прайс мув больше заданного.
Это мое видение зигзага :) Если хаи и лои ему не соответствуют - тем хуже для них. Впрочем, возможно, они были слишком близки к последнему экстремуму - там логика такая, что ловит прайс мув больше заданного.
В том то и дело что такой реализации зигзага уже наверное лет 10 и все всегда показывают пальцем на пропущенные хаилои а какойнить вумный перец говорит что типа так и нуна :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь