Алгоритм ЗигЗага одновременно по OHLC-барам Bid и Ask - страница 2

 

Ладно что  тема не ушла в низы. Думал будет 100500 страниц, ан нет.

  loopsider - Следующее по тривиальности решение это генерить больший ЗЗ из меньшего.

 И тут я вспомнил конструктор Нена.

Там наоборот от большего к меньшему.

Вкратце идея построителя следующая.

Берется история котировок. По заданному алгоритму производится отбор экстремумов из имеющейся истории.

Полученная выборка экстремумов обрабатывается с помощью того же или с помощью другого алгоритма.
Получаем второй уровень. И таким же образом обрабатываем выборку экстремумов каждого нового уровня с помощью алгоритма, который использовался для получения второго уровня. Обрабатываем до тех пор, пока из последней выборки уже нельзя будет сделать следующую выборку.
Сейчас построитель рассчитан на получние 11 уровней. Этого достаточно для обработки примерно всей имеющейся минутной истории, если производится обработка минуток.

На график можно вывести 4 подряд идущих уровня. Имеется возможность выбора, начиная с какого уровня выводить. " nen 

http://www.onix-trade.net/forum/topic/89331-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d1%83%d1%80%d0%be%d0%b2%d0%bd%d0%b5%d0%b2%d1%8b%d0%b5-%d1%81%d0%b8%d1%81%d1%82%d0%b5%d0%bc%d1%8b-%d0%b0%d0%bd%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0-%d1%80%d1%8b%d0%bd%d0%ba%d0%b0/page__view__findpost__p__412815

 

 

Файлы:
 
hrenfx:

Абсолютно точно.

Обдумываю различные алгоритмы. Спасибо за вариант!
Возможен еще такой вариант.

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

 
 
loopsider:
Возможен еще такой вариант.

Классический ЗЗ в качестве своего следствия показывает максимум виртуальной прибыли, которую можно было выжать из цВР при заданном размере мин. колена.

Уже не в качестве следствия, а в качестве желаемого получить, пробую построить алгоритм ЗЗ не на тиках, а на барах. И, действительно, очень много баров с двумя точками сразу. В некоторых случаях это оправдано, в некоторых - не совсем (если сравнить с тиковой историей). К тому же еще при анализе Bid и Ask-баров бывает, что возникают некоторые затруднения.

Кстати, проскользнула мысль "не в этой жизни" реализовать на ООП быстрый анализ любой версии ЗигЗага, хоть в EX4 (т.е. исходники не нужны). Своего рода ООП-шаблон, где достаточно заменить одну-две строчки и получить сразу данные по овершоту.

Возник, правда, ступор на правильном понимании фильтра, о чем упоминаете в своей статье:

 были приняты специальные меры для того, чтобы отсечь гепы (ценовые разрывы), которые нельзя торговать. Если этого не сделать, гепы приводят к заметному увеличению среднего значения овершотов.

Для лимитников, вроде, таких проблем не возникает. Но и учитывание "черных лебедей" в некоторых новостных моментах видится неразумным.

P.S. Просьба, поделитесь названием пакета и скриптом быстрого построения любых распределений, картикни которых использовали в статье. Это пока лучшее, что мне попадалось (по наглядности).

 

У меня на классическом ЗигЗаге по Bid и Ask-барам (т.е. спредовые издержки полностью учитываются, комиссию учитывать не стал) при нулевом мин. колене на некоторых кроссах среднее значение колена аж 35 пипсов. Распределение не приведу - подожду название проги для норм. визуализации.

Очевидно, тут же в голову пришла элементарная ТС на пробой. Где BuyStop акцептируется пробитием Bid вверх, SellStop - Ask вниз. Т.е. не классика стоп-ордеров. К сожалению, при таком подходе требуется еще доп. учет спреда - двойной спред выжирается. А посему 35 пипсов сомнительно выглядят для положительного МО.

По тикам руки еще ленются пробежаться. 

 

hrenfx:

 были приняты специальные меры для того, чтобы отсечь гепы (ценовые разрывы), которые нельзя торговать. Если этого не сделать, гепы приводят к заметному увеличению среднего значения овершотов.

Для стандартного ЗЗ и непрерывной цены следующие три определение овершота эквивалентны (ZZStep - порог ЗЗ):

1.  (P[i] – P0)/(P0-P[i-1])

2.  (P[i] – P[i-1]-ZZStep)/ZZStep

3.  (P[i] – P0)/ZZStep

Если цена разрывная (= есть гепы), то все 3 определения дают разные результаты. Для стандартного ЗЗ я использовал 3е определение. Оно позволяет учитывать только "торгуемые" овершоты (на пробой).

Но если вы торгуете лимитниками, которые открываются по заявленной цене (без положительного проскальзывания), то тогда лучше использовать 2ое опреление.

 

Исходник для случая стандартного ЗЗ прилагаю. Там все без изысков. Распределение сбрасывается в текстовый файл. Результаты (колонки чисел) потом импортируются в Origin (Import -> ASCII). Origin это один из стандартных пакетов для построения графиков в естественнонаучных кругах. И доступен в ломаном виде, что немаловажно :)

Аналогичный исходник для адаптивного ЗЗ могу выдать в личном порядке.  

Файлы:
 
hrenfx:

У меня на классическом ЗигЗаге по Bid и Ask-барам (т.е. спредовые издержки полностью учитываются, комиссию учитывать не стал) при нулевом мин. колене на некоторых кроссах среднее значение колена аж 35 пипсов. Распределение не приведу - подожду название проги для норм. визуализации.

Очевидно, тут же в голову пришла элементарная ТС на пробой. Где BuyStop акцептируется пробитием Bid вверх, SellStop - Ask вниз. Т.е. не классика стоп-ордеров. К сожалению, при таком подходе требуется еще доп. учет спреда - двойной спред выжирается. А посему 35 пипсов сомнительно выглядят для положительного МО.

По тикам руки еще ленются пробежаться. 

Положительному МО там не откуда взяться. Думаю, что двойной спред + комиссия + погрешность от ЗЗ с нулевым коленом построенным на М1.

Вообще же, ваш ЗЗ на low ask - high bid изначально заточен на торговлю на откат, использовать его для пробойных ТС нет смысла (тогда надо строить на high ask - low bid).

Поэтому мне удобней строить ЗЗ чисто на bid ценах и держать в уме потери на средний спред, как для пробойной так и для откатной стратегий. 

 

Просветите меня: есть возможность получать уведоления на майл при обновлении ветки? Потыкался и не нашел кнопки. 

 

покажу свой "лапотный метод" отображения однопараметрического зигзага - рисую ренко с хвостами(на автономном графике, с не большим шагом) а ан него накладываю ZZ. Естественно параметр ZZ в раза 3- 4 больше ренко. В этом случае "длинные свечи можно анализировать."



 

Странная тема,- все в одном: квантование, рекурсия, адаптивность, смена тенденций, стоповые и лимитные входы, эффективность ТС... 

Две страницы обо всем и ни о чем... 

Вспомнилось: "... ты скажи, ты скажи, че те надо, че те надо,- может дам, может дам, че ты хошь ...".  

 

Объясните, что такое овершот. Формулы вижу, формулы - проще не бывает. Смысл ускользает. На тему зигзагов перебрал много вариантов. Не самих зигзагов непосредственно, но и разных "внутренних" проблем. У каждого ЗЗ они свои. Окончательно пришел к выводу (на истину не претендую), что лучше строить ЗЗ по фракталам. Т.е. первый ЗЗ строится по фракталам, а все последующие по экстремумам предыдущего. Чтобы какой-то из экстремумов мелкого ЗЗ не совпал с экстремумом старшего, в принципе быть не может. Плюс, проблема двухфрактальных баров решаема в зависимости от предпочтений.

Пробовал 2 варианта:

1. Анализ двухфрактального бара. если бычий, значит, нижний экстремум был раньше, если медвежий - верхний. Разумеется, понятно, что на самом деле могло быть немного наоборот. Но, во-первых, рисунок ЗЗ выглядит логично и, во-вторых, таких баров меньше 10% - допустимая погрешность. 

2. Абсолютное чередование. Если перед двухфрактальным баром верхний экстремум, то не важно, какой бар, бычий или медвежий, считается, что первым был нижний.

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

Минутный ТФ.  Второй вариант. Фракталы трехбарные.

 

 

Овершот = (длина колена — порог)/порог

 Представим себе такую торговую стратегию: мы открываем сделку в момент открытия нового колена ЗигЗага, которую держим до тех пор пока не откроется следующее колено. На открытии каждого колена мы закрываем предыдущую позицию и открываем противоположную. И так далее. Тогда наш профит (или убыток) на каждом колене (без учета спреда и комиссии) будет = длина колена минус порог*2. Исходя из того, что в среднем рынок является сбалансированным (модель эффективного рынка), мы можем ожидать, что средняя длина колена ЗигЗага должна быть близка к удвоенному значению порога. Действительно, это так. Эта закономерность хорошо прослеживается на любых торговых инструментах и любых масштабах. Однако, как нетрудно догадаться, в реальной ситуации всегда будут отклонения от предсказанного значения. Вот эти-то отклонения и представляют наибольший интерес для нас сегодня.

Давайте исследовать так называемые овершоты (overshots), определенные таким образом:

 http://www.argolab.net/izuchaem-zigzagi.html 

Причина обращения: