Вот такой комментарий получил сегодня, цитата:
personazh2015
Друг, я хотел тебя поблагодарить за твой нереальный индикатор покупки *где стрелочка* из десятков раз, что я видел на таймфрейме в 4 часа, он ошибься, только по 1 валютной паре это EOSETH. Остальном он бомба
Речь про индикатор CryptoBottom (прикрепил). Как обычно, никогда не перерисовывается, в будущее не подглядывает, не мухлюет, исходный код открыт, бесплатен, придумал и закодил я.
Может кому-то интересно будет как он вообще работает. Строк кода мало, и понять их не сложно.
Индикатор срабатывает (появляется стрелочка), когда выполняется одновременно все 4 условия:
1) Свечка красная
2) Свечка с длинным телом
3) Низ тела свечи ниже прошлого низа свечи
4) Цена сильно просела
Теперь подробнее как это реализовано.
1. Свечка красная
Самое простое. Условие в строке кода:
up = close < open and "len" > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0
То есть close должен быть ниже чем open, это нам гарантирует что данная свечка будет именно красной. (close < open).
2. Свечка с длинным телом
Тут уже сложнее. Сначала нужно вообще формализовать "А что значит слишком длинная?". Ведь цены то у разных активов разные. Так свеча длинной в 1 доллар у биткойна довольно маленькая, а свеча длинной в 1 долларов у Риппла это уже огромная. Так что предварительно нужно как то измерить "А что такое нормальная свечка для данного актива?". А уже потом, зная длину тела среднестатической свечки актива сравнивать текущую, чтобы понять длиннее она обычных или нет? Код:
sma = sma("len", 100) - измеряет длину предыдущих 100 свечек, и выводит из них среднее-арифметическое. Теперь мы знаем сколько баксов свечка в среднем у данного актива и на данном таймфрейме.
А в следующей строке условие ("len" > sma * 3), то есть свечка считается длинной, если её тело более чем в 3 раза больше средней свечки. Хвосты при этом игнорируются.
up = close < open and "len" > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0
3. Низ тела свечи ниже прошлого низа свечи
Предыдущая свечка, до "свечи дна" (которая со стрелкой) может быть любого цвета. Однако, нижняя граница "свечи дна" должна быть ниже прошлого. А так как мы не знаем какая свечка была до неё, то мы рассчитываем минимум.
min = min(open, close) - считает что меньше открытие свечи или закрытие свечи (что меньше open или close?)
И снова условие (min < min[1]). Единичка в квадратных скобках означает предыдущая свеча. То есть условие проверяет является ли низ тела текущей свечи ниже низа тела предыдущей свечи.
up = close < open and "len" > sma * 3 and min < min[1] and fastrsi < 10 ? 1 : 0
4. Цена сильно просела
Насколько сильно просела цена определяется обычным индикатором RSI, с коротким периодом 2 вместо стандартного периода 14. Если RSI показывает ниже 10 значит цена просела весьма сильно.
fastrsi < 10
Объяснение
Почему эта пляска с бубном работает? - Хороший был бы вопрос. Тут 2 варианта ответа:
1) Просто так совпало
2) Видимо тут есть рациональное зерно
Точно узнать совпадение это или нет нельзя, но гораздо вероятнее что это не совпадение. Итак, рисуется график и трейдеры видят свечу длинную, свечу красную, которая ниже прошлой ушло, при том что цена уже сильно просела, и вот от наблюдения этого всего у них начинают руки чесаться "Тут надо брать на отскок". Не у всех конечно, но у многих. И вот в этот момент появляются эти новые покупатели, у которых руки зачесались, которых ранее не было. Из-за появления этих новых покупателей баланс сил начинает перевешиваться в сторону покупателей, а не продавцов. А когда покупателей становится больше чем продавцов - цена разворачивается вверх, и стало быть это дно. Так я это вижу. Я могу ошибаться.