В догонку

 

Была у меня запись в CodeBase по зигзагам и горизонтальным каналам на разных индюках. Недавно один чел захотел Зигзагину на кроссе двух МАшек, о чем публично и сказал на форуме. Дурацкое дело нехитрое - подправил готовый и готово. Потом в личке др. форумямин попросил по неизвестному мне индюку притарачить к ЗигЗагу фибо коррекции. Отказал. Не люблю копаться в чужих кодах - в кое-каких своих бы разобраться. Потом, чувствуя нектр. ответственность за сляпанное/опубликованное, а также нектр. неудобство из-за отказа помочь, решил сделать индюк, который умеет следующее:

  1. Строить ЗигЗаг по экстремумам цены, найденным между пересечениями двух МАшек. Порог чувствтительности, т.е. насколько далеко должно зайти пересечение, чтобы считаться таковым, сделал адаптивным, привязав его к ATR. Задание порога в вистах тоже есть.
  2. Строить горизонтальный канал по найденным экстремумам.
  3. Сглаживать границы канала. Причем сглаживание идет не по барам, а по фреймам, образованным границами канала.
  4. Строить линию тренда в виде поддержки/сопротивления (а ля параболик), определенную по пробойному методу.
  5. Строить в реальном времени от найденных экстремумов: фибо коррекции/расширения/канал, а также, для кучи, равноудаленный канал. В принципе, можно еще чего добавить (регрессии там, зоны, веера и пр. хрень), но надо же когда-то останавливаться? Потом, буде на то у кого потребность, может, и добавлю. Несложно.

Поясню принцип определения ценовых пиков/впадин (экстремумов). На снимке (1) отображены две EMA - быстрая и (догадайтесь с трех раз) - правильно, медленная. Участки между пересечениями выделены зеленым и красным, соответственно, для пиков и впадин. Там они и ищутся. Вообще, использование двух МАшек позволяет довольно гибко подходить к поиску экстремумов.


Например, ДиНаполи практикуют использование DMA - смещенных простых МАшек (ему это кто-то показал - прям учение дона Хуана, блин). Можно ли поискать экстремумы по DMA с помощью данного индюка? Говно вопрос (сн.2). Ставим значение периода быстрой МА =1, а период и смещение медленной =3, и получаем экстремумы, найденные по пересечению ценой закрытия бара 3-х барной простой МАшки, смещенной на 3 бара. У Джо там, кажется, кроме упомянутой 3 на 3, еще используется дисплейснутые Машки 7 Х 3 и 25 Х 5. Можно просто по пересечению МАшки и ее реплики со сдвигом на сколько-то там баров (сн.3) - типа по АКФ. В конце концов, можно просто поставить значения периодов МАшек для класс. (12,26) или ДиНаполевского (8,17) (сн.4) MACD и тащиться от причастности к чужому бреду.


Горизонтальный канал строится по найденным экстремумам (сн.5). Если поставить период сглаживания канала больше 1, то сырой канал останется на месте в виде пунктира, а сглаженный построится сплошными линиями (сн.6 - период сглаживания =3).


Линия тренда (сн.6) рисуется как или поддержка под ценами для растущего тренда, или как сопротивление над ценами для падающего. Состояние падающий/растущий определяются пробитием соответствующей границы канала или ценой закрытия бара, или его High/Low. Граница канала для устранения пробития шумовым выбросом может быть отодвинута на нектр. значение в пунктах или на ATR (параметр Border).


Ну, с коррекциями (сн.7) и расширениями, а равно как и равноудаленным каналом - понятно и без объяснений. Для фибо канала я внес нектр. изменения в умолчательных уровнях - иначе смысла в нем, ИМХО, особого нет (сн.8).


Подробно по входным параметрам:

// параметры МАшек

FastMA - период быстрой МА.

SlowMA - период медленной МА.

SlowMAshift - сдвиг медленой MA.

Method - алгоритм сглаживания.

// порог срабатывания

ATR - период ATR для адаптивной чувствительности.

xATR - множитель для значения ATR.

Sens - чувствительность в пунктах.

// горизонтальный канал

ChannelMA - период сглаживания границ каналов.

Border - отступ в пунктах от границ каналов. Используется для определения пробоя канала. Меньше нуля - выбирается максимальное значение между чувствительностью Зигзга по ATR и модулем введенного параметра.

// чего казать-то! (0 - ни хрена не казать)

ShowTrend - 1 - показать тренд, определенный по пробитию границ канала HIgh/Low бара; 2 - Close.

ShowChannel - показать горизонтальный канал по положению экстремумов; 2 - по времени их определения (по моменту фикса пересечения МАшек).

ShowZigZag - 1 - показать ЗигЗаг по положению экстремумов; 2 - по времени их определения .

ShowFibo - 1 - показать коррекции Фибо; 2 - расширения Фибо;; 3 - канал Фибо; 4 - равноудаленный канал.

===

В кодобазу вроде как не к месту - все вторичное, но жаль, если пропадет. Так что в догонку. Будет еще по стохастику здесь. Позже.

Файлы:
 
Впечатляет. Спасибо.
 
Ну хто бы, глядя на этот аватар, подумал, что за ним скрывается что-то человеческое? Но в базу надо бы положить, здесь затеряется, а вещь интересная.
 
granit77 >>:

Ну хто бы, глядя на этот аватар, подумал, что за ним скрывается что-то человеческое?

На самом деле, внутри я еще страшнее...

Но в базу надо бы положить, здесь затеряется, а вещь интересная.


Можно подумать, там не затеряется. Здесь хоть версии хоть каждые пять минут добавлять можно. С исправлениями и нововведениями. Пофлудить опять же.

Ну вот почему бы не сделать в кодобазе тот же шаблон, что и в ветках? Загадка. И не для меня одного, судя по форуму.

 
Svinozavr >>:

На самом деле, внутри я еще страшнее...


Можно подумать, там не затеряется. Здесь хоть версии хоть каждые пять минут добавлять можно. С исправлениями и нововведениями. Пофлудить опять же.

Ну вот почему бы не сделать в кодобазе тот же шаблон, что и в ветках? Загадка. И не для меня одного, судя по форуму.

Респект!

И уважуха! ;)

 

Я же говорил "Красота спасет мир"....

Спасибо за прекрасный индюк.

 
А какой "проскок" у этого зигзага? Под проскоком понимается отношение средней амплитуды сегмента зигзага в момент его регистрации к средней амплитуде законченных сегментов.
 
lna01 >>:
А какой "проскок" у этого зигзага? Под проскоком понимается отношение средней амплитуды сегмента зигзага в момент его регистрации к средней амплитуде законченных сегментов.

Можно посчитать - все данные в коде есть. Только зачем? Посмотреть, где находятся экстремумы и где они реально по времени определятся, возможность заложена: параметр ShowZigZag (1 - где, 2 - когда).

А так... чисто академический параметр этот "проскок", ИМХО. Никто же не собирается заходить, скажем, в лонг по детекту впадины. Уж скорее в наоборот (так и делается) буде на то контекст.

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

Но посчитать, повторюсь, можно. Надо?

===

Потом, этот параметр ну совсем уж будет разный для разных входных параметров индюка. Одно дело по кроссу Машек 3, 12, другое 1, 7. Можно ведь и смещенные юзать. Выводить средний проскок в буфер в реал-тайме? Можно. Не уверен в необходимости. Хотя... да - можно типа прикинуть когда заходить. Но это же будет настолько не точно - мама не горюй. Нет. Не думаю, что надо.

 
Svinozavr >>:
Можно посчитать - все данные в коде есть. Только зачем?

Я для себя сформулировал нечто вроде теоремы: Для любого (ликвидного) рынка для любого зигзага средний проскок будет примерно равен 1/2. Доказать её вряд ли можно, а вот для опровержения было бы достаточно одного-единственного факта. Так что мой интерес и верно, скорее академический :) .

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

Вот как раз эта "теорема" и говорит что "прямо" и "в наоборот" совершенно в равной степени зависят от контекста, имхо

Потом, этот параметр ну совсем уж будет разный для разных входных параметров индюка. Одно дело по кроссу Машек 3, 12, другое 1, 7.

А вот и нет, думаю что 1/2 будет для любого набора параметров и даже для любого зигзага :)

Выводить средний проскок в буфер в реал-тайме?

Я обычно данные "на лету" суммирую и в Comment вывожу (делённые на счётчик, разумеется).


Определение контекста конечно отдельная тема, и гораздо более интересная :). Удаётся эту процедуру формализовать? То бишь является ли косметология бурых медведей точной наукой? :)

 
lna01 >>:

Я для себя сформулировал нечто вроде теоремы: Для любого (ликвидного) рынка для любого зигзага средний проскок будет примерно равен 1/2. Доказать её вряд ли можно, а вот для опровержения было бы достаточно одного-единственного факта. Так что мой интерес и верно, скорее академический :) .

Ну... если так, то конечно. Хотя, знаете, я тут подумал еще - интерес м.б. и не академический. Короче, я еще подумаю, ок?

Вот как раз эта "теорема" и говорит что "прямо" и "в наоборот" совершенно в равной степени зависят от контекста, имхо

А вот и нет, думаю что 1/2 будет для любого набора параметров и даже для любого зигзага :)

В пределе? Привет маркизу де Лопиталю.))) Возможно. Только с практической т.зр. все эти рассматривания ВР-в вообще - вечнозеленый кактус со своими мышами.

Я обычно данные "на лету" суммирую и в Comment вывожу (делённые на счётчик, разумеется).

Можно и так. Только из каментов потом не считаешь. Потому про буфер и упомянул.


Определение контекста конечно отдельная тема, и гораздо более интересная :). Удаётся эту процедуру формализовать? То бишь является ли косметология бурых медведей точной наукой? :)

А... вот вы о чем! Да-да.))) Формализовать удалось... да, конечно. И не вчера. Но это и правда очень отдельная тема. Тут, знаете, даже статьей не обойдешься, пожалуй. Хотя, эта ветка, может, и сгодится. Об этом эпизодически, но неоднократно писал на разных чужих ветках. В общих чертах, разумеется, писал - странно было бы детализировать там. А здесь, типа в догонку... да, пожалуй, буду писать потихоньку. Non Time Frame или Non Fiction, угу.))) Хотя, если разобраться, то ничего нового, того, чтоб кто-нибудь не знал, я сказать вряд ли смогу. Вот такой вот парадокс.)))

===

Вообще, "в догонку", пожалуй, удачная идея. Можно собрать в одном месте то, о чем эпизодически упоминал, писал и пр. // Моим постам, как драгоценным винам, настанет свой черед. ("Разбросанным в пыли по магазинам..." Ахматова)

Ладно, от скромности я точно не умру. И то хорошо. )))

 
Svinozavr >>:

Ну... если так, то конечно. Хотя, знаете, я тут подумал еще - интерес м.б. и не академический. Короче, я еще подумаю, ок?

В пределе? Привет маркизу де Лопиталю.))) Возможно. Только с практической т.зр. все эти рассматривания ВР-в вообще - вечнозеленый кактус со своими мышами.

Можно и так. Только из каментов потом не считаешь. Потому про буфер и упомянул.

1. Было бы нужно срочно - сам бы добавил кода и посчитал :)

2. В пределе.

3. Если индикатор быстрый - проще посчитать заново, если медленный - лучше сразу в файл.


А вот если и правда "м.б. и не академический", я бы послушал

А... вот вы о чем! Да-да.))) Формализовать удалось... да, конечно. И не вчера. Но это и правда очень отдельная тема. Тут, знаете, даже статьей не обойдешься, пожалуй. Хотя, эта ветка, может, и сгодится. Об этом эпизодически, но неоднократно писал на разных чужих ветках. В общих чертах, разумеется, писал - странно было бы детализировать там. А здесь, типа в догонку... да, пожалуй, буду писать потихоньку. Non Time Frame или Non Fiction, угу.))) Хотя, если разобраться, то ничего нового, того, чтоб кто-нибудь не знал, я сказать вряд ли смогу. Вот такой вот парадокс.)))

Интересненько, интересненько. Хотя, признаюсь, некоторый изначальный скепсис у меня присутствует.

Кстати, настоящая формализация означает возможность проверки на истории, вы это делали?