Конструктор свингов по Ганну (GannSwing)

Тема в разделе "Зиг-Заг. Системы с использованием ZigZag.", создана пользователем revrom, 5 окт 2011.

  1. revrom

    revrom Новичок

    Пришлось написать самому, ибо все существующие конструировали свинги Ганна не так, как оно того хотелось.
    Насколько я понял, бОльшая часть существующих подобных индикаторов построена по правилам, изложенным в книге Хьержика "Цена, время...". Данный индикатор строит свинги по другому алгоритму:
    В случае "нормальных" свингов Ганна (однобарных), внешний бар интерпретируется после сравнения с баром, следующим за ним: если следующий бар - 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-барный свинг на месячном графике:
    audusd_gannswing_1m.gif

    2-барный (направление изменяется только после последовательных 2 баров up или down):
    audusd_gannswing_2m.gif

    3-барный, по аналогии с 2-х:
    audusd_gannswing_3m.gif

    1-барный, текущий дневной график:
    audusd_gannswing_1d.gif
     
  2. revrom

    revrom Новичок

    Собственно индикатор
     

    Вложения:

    • GannSwing.mq4
      Размер файла:
      27 КБ
      Просмотров:
      492
  3. nen

    nen Профи форума

    Возможно, это от метатрейдера. В одном из последних билдов, выпущенных где-то в марте 2010 года, была введена принудительная переинициализация индикаторных буферов. Из-за дискусси по этому нововведению меня забанили на форуме MQ. Правда, потом, возможно, они вернули все назад - убрали переинициализацию. Но не уверен в этом. Глупое нововведение.
     
  4. nen

    nen Профи форума

    По картинкам есть замечания.
    Например, "3-барный, по аналогии с 2-х:" на экстремуме 469/9м экстремум просится на следующий бар.
     
  5. nen

    nen Профи форума

    Это наверное потому, что следующий бар считается как внешний.
    А минимумы баров на глаз одинаковые. Если минимумы одинаковые, а максимум следующего больше, то такой бар можно, как вариант, не считать внешним. Это на усмотрение.
     
  6. revrom

    revrom Новичок

    Нужно считать бары от экстремума 821 / 2M:

    - up, inside, down, up, down, down, up, up, up (3 раза, свинг поменял направление вверх)
    - дальше идет outside, считаем его за 2 дня, поскольку open > close, получается: up, down
    - inside, down, down - на этом моменте свинг заворачивается вниз от предыдущей точки перелома, отмеченной 468 / 9 M
     
  7. nen

    nen Профи форума

    Вариантов зигзагов много. Свинги по Ганну - это также вариант зигзага. Для себя решил, что надо выбрать како-то один, который наиболее точно помогает реализовать выбранную тактику. Пока таким является стандартный зигзаг. Но необходимо в него добавить фильтр для разделения трендовых и флэтовых участков. Это первое грубое приближение. Иногда появляется разметка зигзагом, для которой сложно придумать фильтр для правильного разделения тренда и флэта. Но это уже будет более сложный фильтр, который еще необходимо придумать. И если удастся сделать эти фильтры, то больше никакие варианты зигзагов бульше не будут нужны. Далее просто шлифовать тактику, формализовать все нюансы и делать автомат.
     
  8. revrom

    revrom Новичок

    поправка, Евгений, Вы правы, это не outside, только что проверил, однако сути дела не меняет:

    - дальше идет: up, inside, down, down, inside, up, inside, down, [up, down], down, down: на этом моменте свинг заворачивается вниз от предыдущей точки перелома, отмеченной 468 / 9 M
     
    1 человеку нравится это.
  9. revrom

    revrom Новичок

    Случайно сам себе выставил рейтинг (думал что минус - это отменить редактирование сообщения :)

    По поводу вариантов - полностью согласен. Так получилось, что стратегии Ганна были первыми, с которыми я познакомился, влезая в рынок ценных бумаг и Форекс. Поэтому именно этого типа свинга мне и не хватало.
    Насчет автомата - не уверен, по прежнему приходится смотреть самому, мерять, сравнивать, думать. Автоматизация рутинных вещей просто экономит время, которое можно потратить на вдумчивое всматривание.
     
  10. nen

    nen Профи форума

    Полностью согласен с этим. Но стремиться к максимальной автоматизации стОит.
     
  11. revrom

    revrom Новичок

    Версия 1.0.1

    Исправил баг с прорисовкой мульти-барных свингов, в случаях когда у нового кандидата на экстремум:
    - low не ниже high предыдущего экстремума из up-свинга
    - high не выше low предыдущего экстремума из down-свинга.
    В качестве иллюстрации две картинки 2-барного свинга на дневном графике GPBUSD, до и после исправления бага.

    До (25 и 26 Апреля 2011 года - идущие подряд down бары, однако их low не ниже high предыдущего экстремума из свинга up 20 Апр):
    bad_2bar_swing.gif

    После исправления:
    correct_2bar_swing.gif
     

    Вложения:

    2 пользователям это понравилось.
  12. alhola1

    alhola1 Новичок

    А на MQL5 не переделаешь??? Можно и с цветом свингов поиграть...
     
  13. revrom

    revrom Новичок

    Нет, поскольку сам пользуюсь до сих пор МТ4. Зачем менять цвета? Для наложений на один и тот же график? Я бы не советовал это делать - слишком много линий.
     
  14. ztzv

    ztzv Новичок

    Там была флэт-зона.
     
  15. Serhio1

    Serhio1 Новичок

    Здравствуйте, кажется, индикатор все же не верно рисует свинги.
    Посмотрите на прицепленную картинку.

    Там не учтен внешний бар. Отмечен синей галкой. Получается, что хай есть, а индикатор его не учел. Это не правильно. Можно ли поправить этот момент?
     

    Вложения:

    • 999999.PNG
      999999.PNG
      Размер файла:
      88 КБ
      Просмотров:
      62
  16. GOLDY

    GOLDY Новичок

    Там всё нормально, ну с натяжкой - бар внешний, так что проставлен тот экстремум который ближе к закрытию.
    А вот тут (EURUSD W1 2х баровый), сплошная пурга. Короче индикатор пока справляется только с 1барными свинагми.
    swing.png
     
  17. revrom

    revrom Новичок

    Почему-то мне не приходили уведомления об ответе с форума, посему отвечаю с опозданием на 2 года :)
    Для того, чтобы n-барный свинг продвинулся в определенном направлении, необходимо, чтобы было n последовательных баров. То есть, чтобы n-барный свинг продвинулся вверх, нужно n последовательных up бара. Вниз - n последовательных down бара. Посему ошибки в приведенном вами графике не нахожу.
    Из описания алгоритма:

    > Прорисовка многобарных свингов (когда свинг изменяет направление только в случае нескольких последовательных "up" или "down" баров): В этих случаях внешний бар рассматривается как два бара - up и down, a величины Open и Close определяют их последовательность: ниже Open => первый down, ниже Close - первый up.
     
    1 человеку нравится это.
  18. evbut

    evbut Новичок

    Разработка индикатора была продолжена или осталась на прежнем уровне?
     

Поделиться этой страницей