Начинать построение нужно с прошлого в будущее, тогда по ходу можно сразу определить, что пробито, а что нет.
Все точки собираем в массив - координата точки (время/цена), направление (вверх/вниз), состояние (пробит/непробит), конец линии (время пробития).
При первом построении, на каждом баре, перепроверяем все непробитые уровни, помечаем отработанные.
Потом, на каждом тике проверяем только "живые" уровни.
Начинать построение нужно с прошлого в будущее, тогда по ходу можно сразу определить, что пробито, а что нет.
Все точки собираем в массив - координата точки (время/цена), направление (вверх/вниз), состояние (пробит/непробит), конец линии (время пробития).
При первом построении, на каждом баре, перепроверяем все непробитые уровни, помечаем отработанные.
Потом, на каждом тике проверяем только "живые" уровни.
Согласен. В данном случае, удобнее анализировать с прошлого к настоящему. Да, как я и думал, проще не будет. Придётся создать массив структур, например, и оперировать данными..
Тока вот момент. Нам же нужно отработанные уровни, которые стали отработанными не при первом анализе баров при запуске индикатора, а после.. сделать отработанными в последствии. Как я понимаю, мы будем сверять последнюю поступившую цену с последним записанным в массив ценой и если цены выше или ниже последней записанной цены в массиве, то этот уроень помечаем отработанным и он станет как на скрине пунктирным и массиве помечен "отработанным". Верно?
Тока вот момент. Нам же нужно отработанные уровни, которые стали отработанными не при первом анализе баров при запуске индикатора, а после.. сделать отработанными в последствии. Как я понимаю, мы будем сверять последнюю поступившую цену с последним записанным в массив ценой и если цены выше или ниже последней записанной цены в массиве, то этот уроень помечаем отработанным и он станет как на скрине пунктирным и массиве помечен "отработанным". Верно?
ну да, на каждом тике перебираем "живые" точки, если точка "нижняя", то текущая цена должна оказаться ниже нее, если точка "верхняя" - то цена должна пройти выше нее.
ну да, на каждом тике перебираем "живые" точки, если точка "нижняя", то текущая цена должна оказаться ниже нее, если точка "верхняя" - то цена должна пройти выше нее.
Я имею ввиду, что весь массив перебирать нет резона. Достаточно одной первой (нижней или верхней) и всё. Ну на крайняк, если кому нужно торговать на минутках, то можно до какого-нить индекса проверять. Хотя,.. минутки здесь не особо катят)) Поэтому, если от Н1 и выше, полагаю, что анализ 1 бара будет вполне приемлим. Больше не резон.
Я уже написал почти индикатор построения уровней. Индикатор очень замороченный и зависимостей не мало. Логика не стандартная, поэтомупользоваться тем, что можно найти - нельзя.
Остался один единственный момент, который хочется обсудить. Суть в том, что есть уровни, которые уже отработанны индикатор не должен принимать в рассчёт и, если нужно, рисовать тоже не должен.. Поэтому этот момент нужно как-то учитывать. У меня логика сложнее, но, что бы не напрягать никому мозг, проще представить, что исторические уровни это экстремумы зиг-зага.
Суть в том, что как можно оптимально отобрать отработанные уровни от не отработанных. Т.е. отработанные уровни не отрисовывать (пропускать их). На данный момент, я придумал, при переборе баров от 0-го индекса к последнему (хотя там не последний, а время бара, до которого мы перебираем т.к. уровни находящиеся слишком далеко от настоящего не так актуальны) если появляется экстремум, запоминать его цену. А дальше, пока цена ныряет в откат пока цены(если рассматривается экстремум из нижних) выше запомненной цены, мы пропускаем все бары.
Для большего понимания своих мыслей привожу скриншот с описаием этой ситуации.
Но это ситуация когда отрисовываются лишь уровни по нижним экстремумам. А нужно и п оверхним тоже. Так вот сложность в том, что нужно понять как определять какой сейчас экстремум - нижний или верхний, а дальше анализировать бары и сравнивать их цену с ценой самого экстремума. Это как-бы просто, но это единственный вариант или можно ещё как-то? Может кто-то подобное писал..
Ведь если заглянуть в будущее, то придётся ещё удалять уровни по мере их отработки. А это тоже вопрос.. Не хочется перегружать логику.
Что значит отработанные или не отработанные уровни. Что, если уровень пробит, то он разве уже в дальнейшем не работает? Считаю, что в общем неверный подход. Я уже давно сделал для себя скрипт, который, может рисовать уровни по фракталам, по High и Low, по Open и Close, уровни с максимальным количеством пересечений ценой. Во внешних параметрах можно задавать временной диапазон для расчёта уровней, высоту ценовых поддиапазонов, минимальное расстояние между уровнями, количество баров слева и справа от фракталов и ещё ряд других параметров и кое-какой сервис.
Что значит отработанные или не отработанные уровни. Что, если уровень пробит, то он разве уже в дальнейшем не работает? Считаю, что в общем неверный подход. Я уже давно сделал для себя скрипт, который, может рисовать уровни по фракталам, по High и Low, по Open и Close, уровни с максимальным количеством пересечений ценой. Во внешних параметрах можно задавать временной диапазон для расчёта уровней, высоту ценовых поддиапазонов, минимальное расстояние между уровнями, количество баров слева и справа от фракталов и ещё ряд других параметров и кое-какой сервис.
Скажем так, каждому своё.. Если у Вас работают все уровни, как отработанные, так и не отработанные - торгуйте хоть уровни, которые были в 1999 году, например. Меня это не интересует. К тому же, уровни торгуют все по-разному. У меня это лишь базовая составляющая. Дальше, ещё будут моменты, которые я ещё не все обдумал.
Скрипт сделать можно, но если торговля будет по всем символам терминала или по заданному списку торговых инструментов, то скрипт не катит в таком случае.
Taras Slobodyanik, а как у Вас так получается, что линии уровней всегда до настоящего времени отрисованы, а не до бесконечности? Ведь есть 2 варианта:
1. Рисуем отреезки от начала уровня, до его окончания действия.
2. Рисует Лучи.
Я так понимаю, у Вас отрезки. Но отрезок имеет начальные первую точку (её время и цену) и конечную точку. Если даже конечная точка настоящее время, то с каждым новым баром придётся перерисовывать конечную точку для всех линий. Вы перерисовываете 2-ую точку?
Скажем так, каждому своё.. Если у Вас работают все уровни, как отработанные, так и не отработанные - торгуйте хоть уровни, которые были в 1999 году, например. Меня это не интересует. К тому же, уровни торгуют все по-разному. У меня это лишь базовая составляющая. Дальше, ещё будут моменты, которые я ещё не все обдумал.
Скрипт сделать можно, но если торговля будет по всем символам терминала или по заданному списку торговых инструментов, то скрипт не катит в таком случае.
Если вас это не интересует, тогда зачем предлагать обсудить алгоритм построения уровней. Нужно было назвать ветку Давайте обсудим мой алгоритм построения уровней.
Валяется где-то и индикатор по аналогичному алгоритму, что и у скрипта. Но мне скрипт показался более удобным. Если торговля на множестве символов, то не проблема сделать исполнение скрипта на всех открытых графиках по однократному нажатию кнопки.
Я так понимаю, у Вас отрезки. Но отрезок имеет начальные первую точку (её время и цену) и конечную точку. Если даже конечная точка настоящее время, то с каждым новым баром придётся перерисовывать конечную точку для всех линий. Вы перерисовываете 2-ую точку?
Конечная точка, конечно, с настоящим временем )
На предыдущем примере был включен параметр, вытягивающий пробитые линии на 15 баров вправо (после пробоя).
Но в массиве всё имеет правильный конец.
Линии рисуются трендовыми отрезками.
Да, непробитые линии удлиняются на каждом новом баре.
Все точки собираем в массив - координата точки (время/цена), направление (вверх/вниз), состояние (пробит/непробит), конец линии (время пробития).
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Я уже написал почти индикатор построения уровней. Индикатор очень замороченный и зависимостей не мало. Логика не стандартная, поэтомупользоваться тем, что можно найти - нельзя.
Остался один единственный момент, который хочется обсудить. Суть в том, что есть уровни, которые уже отработанны индикатор не должен принимать в рассчёт и, если нужно, рисовать тоже не должен.. Поэтому этот момент нужно как-то учитывать. У меня логика сложнее, но, что бы не напрягать никому мозг, проще представить, что исторические уровни это экстремумы зиг-зага.
Суть в том, что как можно оптимально отобрать отработанные уровни от не отработанных. Т.е. отработанные уровни не отрисовывать (пропускать их). На данный момент, я придумал, при переборе баров от 0-го индекса к последнему (хотя там не последний, а время бара, до которого мы перебираем т.к. уровни находящиеся слишком далеко от настоящего не так актуальны) если появляется экстремум, запоминать его цену. А дальше, пока цена ныряет в откат пока цены(если рассматривается экстремум из нижних) выше запомненной цены, мы пропускаем все бары.
Для большего понимания своих мыслей привожу скриншот с описаием этой ситуации.
Но это ситуация когда отрисовываются лишь уровни по нижним экстремумам. А нужно и п оверхним тоже. Так вот сложность в том, что нужно понять как определять какой сейчас экстремум - нижний или верхний, а дальше анализировать бары и сравнивать их цену с ценой самого экстремума. Это как-бы просто, но это единственный вариант или можно ещё как-то? Может кто-то подобное писал..
Ведь если заглянуть в будущее, то придётся ещё удалять уровни по мере их отработки. А это тоже вопрос.. Не хочется перегружать логику.