Пришлось написать самому, ибо все существующие конструировали свинги Ганна не так, как оно того хотелось. Насколько я понял, бОльшая часть существующих подобных индикаторов построена по правилам, изложенным в книге Хьержика "Цена, время...". Данный индикатор строит свинги по другому алгоритму: В случае "нормальных" свингов Ганна (однобарных), внешний бар интерпретируется после сравнения с баром, следующим за ним: если следующий бар - up, то свинг идет от high следующего бара к low внешнего. Если следующий бар - down - свинг рисуется от его low к high внешнего. В случае нескольких внешних баров следующих друг за другом, или через внутренний (inside) бар, размотка идет справа налево, при этом наиболее правый внешний бар распознается по вышеприведенному алгоритму, и помечается как swing up или swing down соответственно. Прорисовка многобарных свингов (когда свинг изменяет направление только в случае нескольких последовательных "up" или "down" баров): В этих случаях внешний бар рассматривается как два бара - up и down, a величины Open и Close определяют их последовательность: ниже Open => первый down, ниже Close - первый up. На данный момент индикатор может выводить свинги как одно- так и много- барные (задается пользователем), с выводом над и под точками перелома величины свингов по цене и времени (эту возможность можно отключить в параметрах индикатора). Я просто делал небольшой отступ по времени и цене от бара-экстремума. Тестировал на месячном и недельном графике для AUDUSD - вручную - все сходилось. На дневном тестировал выборочно, частями. Ошибок не нашел. Есть небольшие неправильности, которые надеюсь исправить в ближайшем будущем: 1. наиболее неприятная - мультибарный свинг (в основном 2-барный) на последних барах, в режиме "live feed" жестоко глючит, начинает пороть чушь. После удаления и новой наброски на график все исправляется. В качестве обхода - пользоваться offline графиками 2. несмотря на то, что используется IndicatorCounted(), и дополнительно запоминается в статической переменной время последнего бара-экстремума, для отрисовки лишь обновленных точек свинга, через какое-то количество итераций только по нулевому бару (299), все равно происходит полная перерисовка всего свинга (судя по журнальному дебаг-файлу). Не уверен, это ошибка в моем алгоритме или же просто "свойство" Метатрейдера 3. неплохо было бы выводить метки с их параметрами во внешний файл, дабы можно было их использовать еще и для вывода, например месячных и недельных точек перелома на дневном графике Примеры одно- двух- и трех месячных свингов: 1-барный свинг на месячном графике: 2-барный (направление изменяется только после последовательных 2 баров up или down): 3-барный, по аналогии с 2-х: 1-барный, текущий дневной график:
Возможно, это от метатрейдера. В одном из последних билдов, выпущенных где-то в марте 2010 года, была введена принудительная переинициализация индикаторных буферов. Из-за дискусси по этому нововведению меня забанили на форуме MQ. Правда, потом, возможно, они вернули все назад - убрали переинициализацию. Но не уверен в этом. Глупое нововведение.
По картинкам есть замечания. Например, "3-барный, по аналогии с 2-х:" на экстремуме 469/9м экстремум просится на следующий бар.
Это наверное потому, что следующий бар считается как внешний. А минимумы баров на глаз одинаковые. Если минимумы одинаковые, а максимум следующего больше, то такой бар можно, как вариант, не считать внешним. Это на усмотрение.
Нужно считать бары от экстремума 821 / 2M: - up, inside, down, up, down, down, up, up, up (3 раза, свинг поменял направление вверх) - дальше идет outside, считаем его за 2 дня, поскольку open > close, получается: up, down - inside, down, down - на этом моменте свинг заворачивается вниз от предыдущей точки перелома, отмеченной 468 / 9 M
Вариантов зигзагов много. Свинги по Ганну - это также вариант зигзага. Для себя решил, что надо выбрать како-то один, который наиболее точно помогает реализовать выбранную тактику. Пока таким является стандартный зигзаг. Но необходимо в него добавить фильтр для разделения трендовых и флэтовых участков. Это первое грубое приближение. Иногда появляется разметка зигзагом, для которой сложно придумать фильтр для правильного разделения тренда и флэта. Но это уже будет более сложный фильтр, который еще необходимо придумать. И если удастся сделать эти фильтры, то больше никакие варианты зигзагов бульше не будут нужны. Далее просто шлифовать тактику, формализовать все нюансы и делать автомат.
поправка, Евгений, Вы правы, это не outside, только что проверил, однако сути дела не меняет: - дальше идет: up, inside, down, down, inside, up, inside, down, [up, down], down, down: на этом моменте свинг заворачивается вниз от предыдущей точки перелома, отмеченной 468 / 9 M
Случайно сам себе выставил рейтинг (думал что минус - это отменить редактирование сообщения По поводу вариантов - полностью согласен. Так получилось, что стратегии Ганна были первыми, с которыми я познакомился, влезая в рынок ценных бумаг и Форекс. Поэтому именно этого типа свинга мне и не хватало. Насчет автомата - не уверен, по прежнему приходится смотреть самому, мерять, сравнивать, думать. Автоматизация рутинных вещей просто экономит время, которое можно потратить на вдумчивое всматривание.
Версия 1.0.1 Исправил баг с прорисовкой мульти-барных свингов, в случаях когда у нового кандидата на экстремум: - low не ниже high предыдущего экстремума из up-свинга - high не выше low предыдущего экстремума из down-свинга. В качестве иллюстрации две картинки 2-барного свинга на дневном графике GPBUSD, до и после исправления бага. До (25 и 26 Апреля 2011 года - идущие подряд down бары, однако их low не ниже high предыдущего экстремума из свинга up 20 Апр): После исправления:
Нет, поскольку сам пользуюсь до сих пор МТ4. Зачем менять цвета? Для наложений на один и тот же график? Я бы не советовал это делать - слишком много линий.
Здравствуйте, кажется, индикатор все же не верно рисует свинги. Посмотрите на прицепленную картинку. Там не учтен внешний бар. Отмечен синей галкой. Получается, что хай есть, а индикатор его не учел. Это не правильно. Можно ли поправить этот момент?
Там всё нормально, ну с натяжкой - бар внешний, так что проставлен тот экстремум который ближе к закрытию. А вот тут (EURUSD W1 2х баровый), сплошная пурга. Короче индикатор пока справляется только с 1барными свинагми.
Почему-то мне не приходили уведомления об ответе с форума, посему отвечаю с опозданием на 2 года Для того, чтобы n-барный свинг продвинулся в определенном направлении, необходимо, чтобы было n последовательных баров. То есть, чтобы n-барный свинг продвинулся вверх, нужно n последовательных up бара. Вниз - n последовательных down бара. Посему ошибки в приведенном вами графике не нахожу. Из описания алгоритма: > Прорисовка многобарных свингов (когда свинг изменяет направление только в случае нескольких последовательных "up" или "down" баров): В этих случаях внешний бар рассматривается как два бара - up и down, a величины Open и Close определяют их последовательность: ниже Open => первый down, ниже Close - первый up.