Опубликовано как идея TradingView по ETHUSDT. Посмотреть график на TradingView
Сканер — это турнирная таблица. Что-то определяет порядок, и обычно это не тот столбец, на который вы смотрите.
Это наш собственный мультитаймфреймовый сканер. Он показывает семь строк из двадцати одной просканированной ячейки, каждая с направлением, оценкой в звёздах, возрастом, входом, стопом, целью и текущим результатом. Вот что его на самом деле сортирует.
Сначала о том, что он умеет, а большинство сканеров нет
Он говорит, почему молчит. Когда у строки нет сигнала, она называет недостающее условие, а не остаётся пустой. Их двенадцать: ждёт пересечения MACD, выравнивания тренда, 200-периодной EMA, ADX, объёма, гистограммы, импульса, балла, либо помечена как RSI в крайности, цена перетянута, стоп задет, устарела.
Сканер, который говорит «ждёт объёма», учит вас сетапу. Тот, что показывает пустой список, — чёрный ящик.
И порог действительно строгий. Чтобы сигнал сработал, десять условий должны выполняться одновременно:
| пересечение MACD | выравнивание тренда |
| цена с нужной стороны 200-периодной EMA | ADX выше своего порога |
| RSI не в крайности | цена не перетянута |
| всплеск объёма | амплитуда гистограммы |
| импульс согласуется | балл качества 70 или выше |
Многие сканеры срабатывают на одном. Именно поэтому остальное стоит разобрать: инструмент, настолько честный о своих условиях, заслужил ту же аккуратность и в своём ранжировании.
Первое. Возраст показывают и почти не учитывают
Строка, считающая ранг, выглядит так:
rank = score × 1000 - (timenow - ts) / 1000000 // ts in milliseconds
Прогоните через неё числа:
| величина | значение |
|---|---|
| один день возраста стоит | 86,4 единиц ранга |
| один балл стоит | 1000 единиц ранга |
| значит один балл равен | 11,6 дня |
Сигнал должен пролежать там полторы недели, прежде чем его возраст обойдётся в один балл. Столбец возраста стоит прямо в таблице, а сортировка к нему почти слепа.
Вот почему устаревшая строка может удерживать первое место на доске, которую люди читают как «что происходит сейчас».
А единица измерения прячет это ещё сильнее
Возраст выводится в днях для каждой строки, каким бы ни был таймфрейм.
| строка | показанный возраст | баров возраста |
|---|---|---|
| сигнал 4H | 11d | 66 |
| сигнал 15m | 2d | 192 |
Число, которое выглядит больше, — это более свежий сетап. На живой доске самый быстрый таймфрейм нёс самые старые сделки, примерно втрое.
Второе. Бонус за схождение добавляют после потолка
Начнём с того, что сделано хорошо. Подсчёт схождения учитывает направление. Инструмент с двумя бычьими сигналами и одним медвежьим считается за два, а не за три. Это звучит очевидно и именно это реализации делают неверно, потому что ленивая версия считает, на скольких таймфреймах есть сигнал вместо того, сколько согласуются.
Итак, подсчёт аккуратен. Неаккуратно взвешивание.
Качество оценивается по стобалльной шкале и там же ограничивается. Затем сверху добавляется бонус: плюс 15, если тот же сигнал есть на двух таймфреймах, плюс 30, если на трёх. Звёзды дают от 95 и от 85.
| сетап | итоговый балл | звёзды |
|---|---|---|
| едва берёт минимум в 70, на 3 таймфреймах | 100 | ★★★ |
| почти идеальный сам по себе | 94 | ★★ |
Потолок применяется к качеству, а затем его обходит согласие.
И мы измерили, чего стоит это согласие. Согласие между таймфреймами вышло 0,60 от случайности на наших собственных данных. Ниже везения. Это самый крупный отдельный член в ранжировании, и он привязан к самому слабому доводу, какой у нас есть.
Третье. Доска стирает своих проигравших
Когда цена проходит стоп сигнала, сигнал перестаёт быть сигналом и покидает таблицу.
Значит любая строка, которая ещё видна, по построению та, которую не выбило стопом. Читать столбец результата как послужной список — значит отбирать по выживанию, а затем измерять выживших.
Для сканера это правильное поведение. Мёртвый сетап не должен занимать место. Вводит в заблуждение это лишь тогда, когда столбец читают как историю, а глаз именно так и поступает со столбцом с таким названием.
Четвёртое. Столбец результата обрезан с обоих концов
Если текущий результат зашёл за стоп, выводится расстояние до стопа. Если за первую цель — расстояние до цели.
Поэтому строка с +1 % и галочкой рядом — это не результат. Это расстояние до первой цели, достигнутой или превзойдённой. Выигравших обрезают, проигравшим ставят пол.
Это тоже оправданно, потому что не даёт устаревшей строке вывести -60 %. И это значит, что столбец нельзя ни складывать, ни усреднять, ни сравнивать между строками.
Дело не в том, что инструмент неверен
Каждое из этих решений разумно. Ни одно из них не ошибка.
Вместе они означают, что доска показывает выживших, упорядоченных почти без оглядки на возраст, с результатами обрезанными с обоих концов, и с оценкой в звёздах, в которой главенствует бонус за свойство, измеренное нами ниже случайности.
Задача не в том, чтобы ему не доверять. Она в том, чтобы знать, какой столбец на какой вопрос отвечает. Направление и звёзды решают порядок. Возраст сообщает и почти не сортирует. Результат описывает выживших и только выживших.
Как проделать это со своим сканером
Найдите строку, которая считает ранг. Не ту, что рисует таблицу, а ту, что её сортирует. А затем прогоните через неё настоящие числа.
Наша выглядела сбалансированной, пока мы не спросили, чего стоит один день возраста против одного балла, и ответом оказалось 11,6 дня на балл.
Если вы не можете найти эту строку, вы не знаете, по чему упорядочена ваша таблица, и столбец, который вы читаете, скорее всего, не он.
Честные границы
Это не бэктест и не утверждение о том, зарабатывают ли эти сигналы. Ничто здесь не измеряет исход. Это прочтение того, как устроен вывод на экран, по его собственному исходному коду, и оно воспроизводится на любом сканере, код которого вы можете увидеть.
Опубликовано как идея TradingView по ETHUSDT. Посмотреть график на TradingView
Прошлое измерение нашего собственного инструментария, описанное задним числом. Ничто здесь не является рекомендацией или указанием на будущие результаты.