Уровни. Определение важности - страница 2

 
Aleksey Mavrin:

Есть задача про уровни. Интересно кто как решал подобное и что думает.

В советнике модуль уровней работает следующим образом:

1. создаёт список всех найденных уровней за заданный период истории 

здесь речь про уровни на основе фракталов и горизонтальные, но тоже самое можно отнести к уровням по профилю объемов, и к наклонным уровням.

Т.е. берет все фракталы и для каждого пишет горизонтальный уровень.

2. уровни которые близко друг к другу объединяет в зону

3. Считает для каждого уровня с момента его появления (самого старого фрактала) следующие количественные показатели (на примере сопротивления)

Касания. 0 < (нижняя цена уровня - Макс цена бара)  < m_thresold_touch

Тесты.  Close previous bar < нижняя цена уровня  &&  High >= нижняя цена уровня 

Пробои. Close previous bar <= верхняя цена уровня  && Close > верхняя цена уровня

Ложные Пробои. Предыдущий пробой противоположного направления произошёл на ранее Х баров назад. 

4. По мере работы и поступления новых баров обновляет весь список уровней по новым фракталам и их кол-ые показатели.

Идея следующая - найти по максимуму все что может считаться уровнем и на основе определенных критериев отсеять лишние/неактуальные.

Задача 1 - Проранжировать Уровни по Важности-Силе и Отсеять  лишние:)

Как лучше-правильнее задать критерий важности. У меня пока в голову приходят простейшие варианты типа

1) Max ( (Касания + Тесты)/Пробои)

2) Max ( (Касания + Тесты + Ложняки)/Пробои) 

3) Max ( (Тесты + Ложняки)/Пробои) 

Может есть идеи лучше?

Замечу - что понятно что есть варианты определения более сильных уровней если изменять пар-ры фракталов (увеличивая период), а интересует именно критерий для уровней от одного фрактала, которых собрана куча по максимуму.

1. заводишь массивы double levels[TotalLevels] ; double avgs[TotalLevels]; см.выше TotalLevels=(Highest-Lowest)/_Point

2. суммируешь в нём свои фракталы или что счёшь нужным. levels[(FractalPrice-Lowest)/_Point]+=K; К - "важность" фрактала. Получается гистограмма

3. гистограмма разряжена, и вообще +-_Point не считается, поэтому смотришь суммы по окну или средние: avgs[x]=sum(levels[x-window/2]..levels[x+window/2])

4. в avgs[] любым способом выделяешь локальные минимумы/максимумы. Хоть зигзагом, хоть опять-же фракталами - это уровни сопротивлений и пивоты

 
Igor Makanu:

метод действительно кустарный, я не так давно перестал себе верить, но тестеру верю

Вот Вы пишете - вот "на основе которых я хочу считать важность." , это уже сузило значимость и достоверность исследования, т.к. возможно, Вы не все виды оценки события пробой/отбой/ложный пробой проверили, а проверили лишь то, что считали нужным проверить

И почему нужно писать ЕА и тестировать:  в первом сообщении Вы сказали "Как лучше-правильнее задать критерий важности" , что значит лучше? - лучше относительно чего то? Вы разбили свою статистику исследования на периоды по годам? по месяцам? - да хоть на 3 части всю историю - прошлое, настоящее будущее . Критерий лучше подразумевает относительно чего то

Вот поэтому и предлагаю все в тестер и там оценивать на любые вариации лучше/хуже, хоть по кол-ву ордеров, хоть по балансу 

в общем по сабжу у меня больше мыслей нет, в целом мысли вслух

Сейчас я понял ход ваших мыслей, Вы думаете сразу про все нюансы и подводные камни, хорошо. Хоть я старался вопрос ветки сузить, чтобы она не превратилась в 100500 страниц на все возможные варианты тем об уровнях. Я отклонюсь от неё и вам объясню подробнее концепцию. Итак исходные:

работа на графике яп.свечей

моделирование графического анализа и анализа уровней

Модуль анализа уровней может брать уровни разными методами (фракталы - один из.. ещё я упомянул профиль объемов, это что я считаю актуальным, но могут быть и другие)

Для каждого метода взятия уровней есть свои параметры ()

Далее считаем количественные хар-ки уровней, см.выше. Можете предложить и другие если считаете нужным

Далее по какому то критерию отсеиваем лишние, слабые, неактуальные. При этом должен считаться параметр Важность и/или сила уровня. Об этом топик.

Получаем "просеянные" через фильтр важности-актуальности набор уровней.

Обновляем информацию в процессе работы

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

Вот тогда можно оптимизировать торговлю, как видите кроме уровней ещё огромное кол-во влияющих на рез-тат торговли параметров, и естественно все модели принимают какие-либо допущения, на то они  и модели

Igor Makanu:

 это уже сузило значимость и достоверность исследования, т.к. возможно, Вы не все виды оценки события пробой/отбой/ложный пробой проверили, а проверили лишь то, что считали нужным проверить

Поскольку я делаю модели, опираясь на классич. тех анализ, или простым языком на то, как бы я сам оценивал глазами. То я и считаю - вот я вижу на истории фрактал, на котором уровень т.к. цена развернулась, строю линию, листаю график дальше - вот 

пару раз цена подошла близко и отскочила от него (касание), а вот протестировала (хай проколол его ) и отскочила, а вот пробила и т.д.

Если вы найдёте что добавить/скорректировать конкретное к тем количественным пар-рам которые я ввёл (я привел формулы), с удовольствием внимательно выслушаю, а то что модель по определению не может учесть всего, это я со школы помню, спасибо :)

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

 
Maxim Kuznetsov:

1. заводишь массивы double levels[TotalLevels] ; double avgs[TotalLevels]; см.выше TotalLevels=(Highest-Lowest)/_Point

2. суммируешь в нём свои фракталы или что счёшь нужным. levels[(FractalPrice-Lowest)/_Point]+=K; К - "важность" фрактала. Получается гистограмма

3. гистограмма разряжена, и вообще +-_Point не считается, поэтому смотришь суммы по окну или средние: avgs[x]=sum(levels[x-window/2]..levels[x+window/2])

4. в avgs[] любым способом выделяешь локальные минимумы/максимумы. Хоть зигзагом, хоть опять-же фракталами - это уровни сопротивлений и пивоты

Прикольный способ отображения-визуализации, но у меня есть свой и он под мою задачу подходит лучше.

Жаль ваше сообщение никак не касается вопроса ветки, т.е. методов способов определения критерия важности :)

 

Алексей, можете картинку ручками нарисовать?

я Вам покажу на ней (нарисую), что даже виртуально идея сливная

 
Renat Akhtyamov:

Алексей, можете картинку ручками нарисовать?

я Вам покажу на ней (нарисую), что даже виртуально идея сливная

Вы о чём, Ренат, какая идея? Сливная может быть только идея - которая может слить. Как может слить метод определения важности уровней?)) А никакую торговую идею здесь и не обсуждали, мерещиться может слив?)

 
Aleksey Mavrin:

Сейчас я понял ход ваших мыслей, Вы думаете сразу про все нюансы и подводные камни, хорошо.

не знаю как обьяснить, в общем я давно уже убедился, что голова самый не надежный инструмент, как писал выше, могу проверить только то, что считаю нужным, и не факт, что мои предпочтения о "нужности" являются оптимальными

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

вот отличный "мультик" про AI - субтитры на русском, может так объясню ))


 
Igor Makanu:

не знаю как обьяснить, в общем я давно уже убедился, что голова самый не надежный инструмент, как писал выше, могу проверить только то, что считаю нужным, и не факт, что мои предпочтения о "нужности" являются оптимальными

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

вот отличный "мультик" про AI - субтитры на русском, может так объясню ))


Мультик прикольный, хотя рез-тат и не неожиданный (особенно для лярдов прогонов :) ). Все в общем верно говорите, но я бы поправку сделал - голова пока что самый мощный инструмент и в т.ч. в плане обучения. А ненадежность о которой вы говорите - это эффект зашоренности и стереотипизациии мышления, у нейронок, на основе которых OpenAI работает, он выражен ещё больше, чем у нашей с вами головы, верите? Пример из мультика - команда, обученная выкидывать пандус за карту, приходит на карту, где можно пандус  только украсть, сколько им прогонов понадобится чтобы найти решение в этой ситуации? А людям? Поэтому и то и то верно - преимущество нейронок над человеком пока лишь в тех задачах выражено, где им можно лярды прогонов дать для обучения. Человек учиться гораздо быстрее. Поэтому в любой задаче, где нынешние нейронки могут хоть что-то решать, у человека преимущество с большим запасом. Этого не все понимают, кто нейронками занимается. А если ближе к теме топика, то я считаю так - даже если человек сделал неверные предположения и чего то не учёл - он это быстро  поймёт по рез-там экспериментов и скорректирует модель. Никто так не сможет кроме нас! )

 

Разбавлю пост картинками, может подкинет пищи для идей. визуалы - вэлкам)

з.ы. сейчас задумался над ещё одним вопросом - имеет ли смысл считать кол-во тестов и пробоев на том участке истории, который слева от породившего уровень экстремума?

 
Aleksey Mavrin:

Разбавлю пост картинками, может подкинет пищи для идей. визуалы - вэлкам)

з.ы. сейчас задумался над ещё одним вопросом - имеет ли смысл считать кол-во тестов и пробоев на том участке истории, который слева от породившего уровень экстремума?

Сначала научитесь определять уровни, а потом класть картинку.

Данную картинку - в топку!

 
Vitaly Muzichenko:

Сначала научитесь определять уровни, а потом класть картинку.

Данную картинку - в топку!

Ого, действует, оживились персонажи с синдромом собственной гениальности))) Ждём дальнейшей движухи))

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