LuxAlgo. Часть VII: скринеры, десять рынков в одной таблице
Скринер LuxAlgo сжимает целый тулкит до одной строки таблицы и позволяет держать в поле зрения до десяти тикеров сразу, каждый в своём таймфрейме. Разбираем устройство всех трёх скринеров: элементы и рейтинг, фильтрацию и сортировку, различия между Signals & Overlays, Price Action Concepts и Oscillator Matrix, а также трение, которое возникает при работе.
Пролог. Десять окон вместо одного
Шесть предыдущих частей этого руководства были посвящены одному графику и умению читать его вглубь: сигналам и оверлеям, структуре рынка и ордер-блокам, осцилляторам, бэктестерам, языку условий. В Части VI, «Alert Scripting, язык условий для алертов», разговор дошёл до предела точности: условие выписывалось символ в символ ради одного инструмента на одном таймфрейме. Скринер разворачивает оптику примерно на девяносто градусов. Он читает неглубоко, зато сразу по десяти рынкам, и отвечает не на вопрос «что здесь происходит», а на вопрос «где вообще стоит смотреть». Это инструмент отбора, а не анализа, и дальнейший текст держится на различении этих двух занятий.
Скринер не самостоятельный индикатор и не новый метод. Он показывает те же показания тулкита, что вы уже разбирали, снятые с других символов и сжатые до одной строки. Колонки скринера Price Action Concepts® повторяют содержание Части III, «Price Action Concepts, разметка графика без единой линии от руки». Колонки скринера Signals & Overlays® повторяют Часть IV, «Signals & Overlays, сигнал, который не является входом». Колонки скринера Oscillator Matrix® повторяют Часть V, «Oscillator Matrix, осциллятор, который спорит сам с собой». Правило чтения простое: если ячейка непонятна, ответ лежит в соответствующей ранней части.
Порядок дальнейшего разбора собран не по страницам документации, а по слоям устройства. Сначала общее назначение скринера и способы поставить таблицу на график, затем десять слотов для тикеров и их таймфреймы, затем анатомия колонки и рейтинг как сводка по колонкам. Дальше три отдельные главы под три скринера, две главы про операции над таблицей (фильтрацию и сортировку), глава про трение и сборка рабочего контура.
Содержание
- Пролог. Десять окон вместо одного
- Скринер как смена оптики
- Десять слотов и их таймфреймы
- Анатомия колонки
- Рейтинг: согласие колонок, сжатое до одного символа
- Колонки скринера Signals & Overlays
- Колонки скринера Price Action Concepts
- Колонки скринера Oscillator Matrix
- Фильтрация: как убрать из таблицы всё лишнее
- Сортировка: три разных ответа на один вопрос
- Трение: таймауты расчёта и разные часы торговли
- Рабочий контур: скринер как воронка
- Эпилог
- Источники
Скринер как смена оптики
Устройство скринера обманчиво простое. Скрипт опрашивает несколько символов по очереди, снимает с каждого последние показания родительского тулкита и раскладывает снятое по клеткам одной таблицы поверх графика. Собственных расчётов у него нет, собственной логики отбора тоже: вся арифметика уже сделана тулкитом, скринеру остаётся сборка. Отсюда и его сила, и его границы, и начинать полезнее с границ. Обзорный ролик LuxAlgo, общий для всех трёх скринеров, даёт представление о том, как таблица выглядит в работе на TradingView®.
Что скринер показывает и чего он не показывает
Таблица скринера это срез «сейчас». В каждой ячейке стоит последнее значение или последнее событие по своему символу, и ничего кроме этого: ни истории, ни окна бэктеста, ни отметки о давности события. Собственных алертов документация у скринера тоже не описывает. Он не помнит, что стояло в ячейке час назад, и не сообщает, когда значение стало таким. Это принципиальное свойство конструкции, а не недоработка: скринер отвечает на вопрос о состоянии десяти рынков в текущую минуту, а любой вопрос про динамику приходится задавать графику. Отсюда и его место в работе: единственным инструментом скринер быть не может, первым фильтром быть может.
Три скринера и производный доступ
Скринеров три, по одному на тулкит, и это не три версии одного скрипта, а три разные таблицы с разными наборами колонок. Доступ к ним производный: владение тулкитом автоматически открывает соответствующий скринер, и отдельным продуктом со своей ценой документация скринер нигде не описывает. Следствие удобно для диагностики: если скринер вообще не находится в списке скриптов, вопрос не к настройкам, а к тому, открыт ли у вас родительский тулкит. Сопоставление трёх скринеров по числу колонок и по числу ключей сортировки полезно держать перед глазами с самого начала: эти числа объясняют разницу в характере таблиц лучше любого описания.
Куда поставить таблицу: шесть якорей и перетаскивание
Скринер это отдельный объект-таблица, и его положение задаётся либо настройкой, либо курсором. В выпадающем списке расположения шесть якорных позиций: три вверху и три внизу, по центру и по обоим углам. Кроме этого таблицу можно перетащить прямо на ценовой график, а если скринер оказался в панели ниже цены, его можно поднять в панель с ценой. Выбор здесь не косметический: таблица из десяти строк и десятка колонок закрывает существенную часть площади, и место, где она стоит, определяет, что вы перестанете видеть. Правый верхний угол на большинстве раскладок конфликтует с последними свечами, то есть ровно с тем участком, ради которого график и открыт.
Десять слотов и их таймфреймы
Список тикеров это единственная часть скринера, которую нельзя оставить как есть и надеяться на осмысленный результат. Остальное допустимо не трогать месяцами, а слоты определяют, о каких рынках таблица говорит.
Жёсткий предел в десять тикеров
Предел жёсткий: один экземпляр скринера обслуживает ровно десять слотов, одиннадцатого поля в настройках нет. Ни способа расширить список, ни объяснения, почему выбрано именно десять, документация не приводит. Догадаться, впрочем, нетрудно: каждый слот это отдельный запрос данных по отдельному символу с полным расчётом тулкита поверх них, а о вычислительной цене такой работы LuxAlgo предупреждает отдельно. Практическое последствие лежит не в технике, а в дисциплине: в список попадает не всё, что вам любопытно, а десять инструментов, которые вы готовы проверять каждый день.
Список по умолчанию и логика, которая за ним стоит
Все три скринера приходят с одинаковым набором: четыре криптоактива, один индекс, три американские акции и две валютные пары. Набор показательный, а не рабочий: он собран так, чтобы таблица сразу выглядела заполненной и чтобы в ней встретились рынки с разным расписанием торгов. Порядок слотов при этом не декоративен: пока сортировка выключена, строки идут ровно в том порядке, в каком символы стоят в настройках, и этим порядком можно пользоваться как ручной группировкой.
Таймфрейм на каждый слот: мультитаймфреймовое сканирование
Рядом с каждым символом стоит собственная настройка Timeframe (таймфрейм расчёта), и по умолчанию слот наследует таймфрейм графика, на котором открыт скринер. Достаточно поменять одно значение, чтобы строка начала жить в другом масштабе, чем остальная таблица. Отсюда мультитаймфреймовый режим (MTF), и он же самое интересное применение скринера: один и тот же символ ставится в несколько слотов с разными таймфреймами, и расхождение горизонтов становится видно в одной таблице. Четыре строки по одному инструменту с 15m, 1H, 4H и Daily отвечают на вопрос, который иначе требует четырёх переключений графика, и стоит это четыре слота из десяти.
Дубликаты и правило различающегося разрешения
Правило простое: один и тот же тикер разрешён в нескольких слотах, если у них разные таймфреймы. Полный дубликат, то есть совпадение и символа, и таймфрейма, в таблицу не попадает, строка просто не отображается. Предупреждает ли интерфейс об этом, документация не сообщает, поэтому у ситуации остаётся один надёжный признак: строк меньше десяти, хотя все десять полей заполнены. Чаще всего это не отсутствие данных, а два случайно совпавших слота.
Набор доступных тикеров задаёт TradingView, а не LuxAlgo
Набор доступных тикеров ограничен тарифом данных вашего аккаунта TradingView, а не подпиской LuxAlgo. Скринер не открывает доступ к биржам, которых у вас нет: он обращается к тем же данным, которые вы получили бы, открыв символ в отдельном окне. Знать эту границу нужно заранее, потому что проявляется она не сообщением об ошибке, а тишиной. Практическое следствие для чтения: пустая или короткая таблица чаще означает опечатку в символе или отсутствие данных по нему, чем отсутствие сигналов на рынке. Первый рефлекс при непонятном результате должен быть направлен на список тикеров, а не на настройки тулкита.
Анатомия колонки
Элемент скринера это колонка таблицы, и практически всё, что можно сделать со скринером, делается через элементы. Они собраны в одну группу настроек, называемую Screener Elements, и устроена эта группа одинаково у всех трёх скринеров: сначала перечислены общие колонки, следом профильные колонки родительского тулкита. Разница только в длине списка.
Элемент, переключатель, цвет
Каждый элемент включается и выключается независимо от остальных, и у каждого есть собственный цвет выводимой информации, задаваемый в тех же настройках. Цвет здесь не украшение, а разметка внимания, и распоряжаться им стоит скупо. Авторская рекомендация звучит так: красьте одну или две колонки, по которым фактически принимается решение, а остальные оставляйте нейтральными. Раскрашенная целиком таблица читается не быстрее монохромной, а медленнее: в ней не остаётся ничего выделенного. Порядок колонок в таблице при этом от вас не зависит: чем он задан, документация не сообщает.
Три функции в одной строке настроек
В одной строке настроек живут три разные функции: переключатель показа колонки, поле её цвета и выпадающий список условия фильтрации. Отдельной панели фильтров в скринере нет вообще, отбор целиком раздан по элементам. Решение экономное: всё, что относится к колонке, лежит в одном месте. Одновременно оно создаёт риск, который стоит осознать до того, как вы соберёте рабочую конфигурацию: настройка отбора визуально неотличима от настройки внешнего вида. Забытое условие фильтрации выглядит в интерфейсе так же, как выбранный оттенок, и обнаруживается не в настройках, а по странно короткой таблице.
Пять колонок, общих для всех трёх скринеров
Пять колонок повторяются во всех трёх скринерах: цена, объём, изменение в процентах, абсолютное изменение и рейтинг. Первые четыре не имеют отношения к тулкитам и пришли бы в таблицу от любого скринера на любой платформе. Пятая, рейтинг, устроена принципиально иначе: она не читает рынок, а читает саму таблицу, и потому разбирается отдельно в следующей главе. Общая часть делает три скринера сопоставимыми хотя бы по одному краю: как бы ни различались профильные колонки, левая часть таблицы одна и та же.
Число, состояние, событие: три типа ячеек
Ячейки скринера неоднородны по типу данных, и это главное, что нужно понять до разговора о фильтрации и сортировке. Часть колонок отдаёт число, сопоставимое с порогом. Часть отдаёт состояние, то есть отвечает на вопрос, где мы сейчас находимся. Часть отдаёт последнее случившееся событие, то есть отвечает на вопрос, что произошло последним. И ровно одна колонка отдаёт сводку по всем остальным. Из типа ячейки следует всё остальное: числовые ячейки годятся для пороговых условий и почти всегда служат ключами сортировки, состояния и события отбираются выбором значения из списка, а сортировать их по большей части нельзя.
Событийные ячейки требуют отдельной оговорки, потому что именно на них проще всего обмануться. Слово «последний» в описании колонки не означает «недавний». Столбца с давностью события в таблице нет, поэтому один и тот же съём ликвидности может стоять в ячейке и через три бара после того, как он случился, и через триста. Скринер сообщает факт, но не сообщает срок годности этого факта. Узнать давность можно только на графике, и обойти этот шаг нельзя ни настройкой, ни фильтром. Отсюда простое правило: событийная колонка годится для отбора кандидатов и не годится для решения.
Что выключено по умолчанию и почему это осмысленно
Две общие колонки выключены во всех трёх скринерах: объём и абсолютное изменение цены. Причина не в экономии места, а в сопоставимости. Абсолютные величины плохо сравниваются между активами разных масштабов, тогда как проценты сравниваются: объём биткойна и объём EURUSD в одной колонке не образуют шкалы, по которой можно упорядочить десять строк. Умолчания в остальном разные по числу: 11 из 16 у Signals & Overlays, 8 из 14 у Price Action Concepts, 10 из 12 у Oscillator Matrix. За этими долями стоят разные философии: скринер Oscillator Matrix отдаёт почти всё сразу и готов к работе без настройки, скринер Price Action Concepts включён чуть больше чем наполовину и требует подгонки под задачу, скринер Signals & Overlays стоит посередине.
Ширина таблицы как бюджет внимания
Ширина таблицы конечна, и это ограничение действует жёстче, чем кажется по окну настроек. Таблица рисуется поверх графика целиком: лишние колонки не прячутся за скроллом и не сворачиваются, они отъедают площадь у свечей. Одиннадцать включённых колонок на десяти строках это уже прямоугольник, который на ноутбучном экране закрывает заметную часть последнего движения цены. Поэтому набор колонок правильнее решать в обратном порядке относительно интуитивного: сначала выключить всё, что не участвует в решении, потом посмотреть на оставшуюся ширину, и только потом возвращать колонки по одной.
«Набор колонок это решение о плотности, а не о полноте»
У этой экономии есть побочный эффект, который легко пропустить, потому что он связывает два, казалось бы, независимых решения. Выключая колонку ради ширины, вы одновременно меняете знаменатель рейтинга: сводная колонка считается только по включённым элементам, и её значение на тех же данных становится другим. Решение об оформлении таблицы превращается в решение о показании, которое эта таблица выдаёт.
Рейтинг: согласие колонок, сжатое до одного символа
Рейтинг стоит в таблице особняком, потому что он не читает рынок. Он читает остальные колонки той же строки и сообщает, насколько они согласны между собой. Колонка удобная и опасная примерно в равной мере, и разобраться с ней стоит до того, как вы начнёте по ней фильтровать и сортировать.
Доля бычьих показаний среди включённых элементов
Механика простая: скринер берёт включённые элементы, считает, какая доля из них сейчас читается как бычья, и переводит эту долю в один из пяти символов. Не путайте эту величину с компонентом Confluence Meter (измеритель конфлюэнса) из тулкита Oscillator Matrix: тот считает согласие осцилляторов внутри одного графика и разбирался в Части V, а рейтинг скринера считает согласие включённых колонок таблицы и живёт только здесь. Расчёт при этом не взвешен: медленный оверлей и быстрый сигнал вносят в рейтинг одинаковый вклад, хотя говорят о разных горизонтах.
Шкала из пяти символов
Шкала и пороги одинаковы у всех трёх скринеров, и символы одни и те же: ▲ △ ― ▽ ▼. Знак нейтрального рейтинга это горизонтальная черта интерфейса, а не знак препинания, и в таблице его легко принять за пропуск данных. Пять градаций симметричны относительно середины: треугольник вверх означает согласие в бычью сторону, залитый треугольник почти полное согласие.
Плавающий знаменатель: почему два рейтинга несравнимы
Знаменатель этой доли есть число включённых элементов, и он плавает вместе с вашими настройками. Включили колонку или выключили, и рейтинг на тех же данных того же символа изменился, хотя на рынке не произошло ничего. Отсюда главный практический вывод: рейтинг сравним только внутри одной конфигурации. Ваш рейтинг и чужой рейтинг с другим набором колонок это разные величины с одинаковым обозначением, и скриншот таблицы без перечня включённых элементов не говорит о рейтинге ничего. Сравнивать можно строки одной таблицы, снятые одновременно, и на этом список допустимых сравнений заканчивается. При всём этом рейтинг участвует и в фильтрации, как категориальный элемент, и в сортировке, как числовой ключ, причём во всех трёх скринерах.
Пересекающиеся пороги: дефект в документации
Один дефект в этой шкале печатный, и он повторяется на всех трёх страницах элементов. Знать о нём стоит заранее, чтобы не тратить вечер на согласование цифр, которые не согласуются. Полоса медвежьего рейтинга напечатана с нижней границей нейтральной полосы вместо верхней, так что при буквальном чтении одно и то же значение доли попадает сразу в две градации. Симметрия пятиступенчатой шкалы восстанавливается однозначно, поэтому в таблице выше стоит исправленный диапазон.
Колонки скринера Signals & Overlays
Скринер Signals & Overlays самый широкий из трёх: шестнадцать элементов, из них включены сразу одиннадцать. Пять колонок в этом списке общие для всех скринеров и разобраны в предыдущих главах, поэтому дальше речь пойдёт только об одиннадцати профильных, которые тянут показания родительского тулкита. Набор распадается на три блока: колонка сигнала вместе со счётчиком выходов, пять колонок оверлеев и четыре числовых показателя режима рынка. Заполненная по умолчанию таблица складывается из трёх общих колонок и восьми профильных.
Сигнал и счётчик выходов
Колонка Signal показывает по каждому тикеру последний напечатанный сигнал, и у неё есть свойство, которое легко пропустить: она однорежимная. В настройках скринера выбирается одно из двух семейств, подтверждающие сигналы или контртрендовые, и в ячейку попадает только выбранное. Пустая ячейка означает поэтому не отсутствие событий, а отсутствие событий выбранного вида. Смысл самих сигналов, включая то, почему подтверждающий сигнал не является точкой входа, разбирался в Части IV; скринер не добавляет к нему ничего, кроме возможности увидеть десять таких сигналов рядом.
Рядом стоит колонка Exits, которая считает сигналы выхода, напечатанные после последнего сигнала. Это единственная колонка скринера, измеряющая не состояние рынка, а плотность собственных событий тулкита. Ноль говорит, что после сигнала выходов не было. Три или четыре говорят, что движение уже несколько раз показало признаки затухания, хотя направление формально не сменилось. Заодно это единственный доступный в таблице намёк на давность: чем больше выходов накопилось, тем дальше вы ушли от точки, где сигнал появился.
Состояния оверлеев в одной ячейке
Пять колонок описывают оверлеи, и четыре из них отдают состояние: Smart Trail, Trend Catcher, Trend Tracer и Neo Cloud. Ячейка отвечает на вопрос, где цена находится относительно оверлея сейчас, и ничего не сообщает о том, что было раньше. Пятая колонка группы, Reversal Zones (зоны разворота), сообщает положение цены относительно зон. По умолчанию включены три: Smart Trail, Trend Catcher и Trend Tracer, а зоны разворота и Neo Cloud выключены.
Причин такого выбора документация не объясняет, но они читаются из устройства элементов. Три включённых оверлея различаются скоростью и вместе дают связную оценку тренда: Trend Catcher быстрее, Trend Tracer медленнее, Smart Trail держит сопровождение. Зоны разворота и Neo Cloud многоуровневые, у них по несколько границ, и сведение такого объекта к одному слову теряет большую часть смысла: на графике видно, у какой именно границы стоит цена, а в таблице остаётся только факт, что она где-то внутри конструкции.
Числовые показания режима рынка
Четыре профильные колонки описывают не направление, а режим рынка: Trend Strength (сила тренда), Lux Volatility (волатильность), Squeeze Index (индекс сжатия) и Volume Sentiment (настроение по объёму). Три из них выдают величину: сила тренда выше 50% означает трендовый рынок, ниже 50% боковой; индекс сжатия растёт по мере того, как диапазон цены сужается; настроение по объёму отвечает по собственной шкале, которую документация не приводит, и единственное из четырёх выключено по умолчанию. Волатильность в этом ряду стоит особняком: её показание в интерфейсе названо словом, Stable либо Volatile, и именно поэтому в главе про фильтрацию она окажется единственным исключением из механики порогов. В список ключей сортировки она при этом попала наравне с числовыми колонками, и объяснения этому источник не даёт.
В отборе такие колонки работают иначе, чем сигнальные. Вопрос, который им задают, звучит так: годится ли инструмент под вашу методику именно сейчас. Трендовая методика на боковом рынке даёт ложные входы независимо от качества сигнала, а скальпинг в сжатом диапазоне не даёт нужного хода. Проверять режим до проверки сигнала разумно, и в таблице такая проверка занимает один взгляд по четырём столбцам.
Чувствительность сигналов и период оверлеев в настройках скринера
Ниже группы элементов лежат настройки, питающие значения колонок: Signals Sensitivity (чувствительность сигналов), выбор режима сигналов и период оверлеев со значениями от 1 до 5. Точных подписей двух последних полей документация не приводит, поэтому здесь они названы по назначению. Это те же параметры, что у тулкита на графике, но отдельный их экземпляр, живущий внутри скринера. Связи между двумя экземплярами нет ни в одну сторону: правка чувствительности в тулките не меняет в таблице ничего, и наоборот.
Отсюда самое частое недоумение в работе со скринером: таблица отобрала тикер, вы открываете график, а сигнала там нет. Это не сбой, а два разных набора параметров, которые никто не согласовал. Приводить их к одному виду приходится вручную и заново каждый раз, когда вы правите настройки тулкита. Типы, значения по умолчанию и диапазоны этих полей документация не публикует, за единственным исключением: у периода оверлеев известен диапазон от 1 до 5. Это пробел источника, а не наша недосказанность.
«Скринер и тулкит на одном графике это два независимых экземпляра одних и тех же настроек, и согласовывать их приходится руками»
Колонки скринера Price Action Concepts
Скринер Price Action Concepts включён по умолчанию меньше остальных: четырнадцать элементов, из них восемь колонок сразу. Профильных среди четырнадцати девять, и включены из них пять. Скупость здесь не случайна: разметка Price Action Concepts на графике, разобранная в Части III, занимает всё поле, а в таблице от неё остаётся девять ячеек. Чем сильнее сжатие, тем важнее понимать, что именно при сжатии потерялось.
Структура рынка одной ячейкой
Колонка Structure отдаёт последнее событие структуры рынка, и её значения принадлежат семейству из трёх имён: слом структуры (BOS), смена характера движения (CHoCH) и поддержанный CHoCH (CHoCH+). Направление в значении есть, а уровня, на котором событие случилось, в ячейке нет, и это первое, что теряется при сжатии. Полное ранжирование этих значений от сильного к слабому документация приводит не на странице элементов, а на странице сортировки, поэтому и мы разберём его в главе про сортировку.
Второе, чего в ячейке нет, это давность. Слом структуры мог случиться на предыдущем баре и сорок баров назад, ячейка выглядит одинаково. Для структуры это существеннее, чем для большинства колонок: свежий слом и слом, после которого цена успела уйти на половину диапазона, означают разные вещи, а таблица их не различает. Проверка на графике здесь не формальность, а обязательная часть чтения строки.
Ордер-блок и три колонки его объёма
Колонка Order Block сообщает не сам блок, а положение цены относительно области последнего найденного ордер-блока. Объём блока разложен на три отдельные колонки: Buy OB Volume (объём покупок), Sell OB Volume (объём продаж) и OB Volume (суммарный объём). По умолчанию включена только суммарная, две составляющие включаются руками. Суммарный объём говорит о значимости блока, а сравнение покупок с продажами говорит о перекосе, то есть о том, кто наполнял блок.
Разложение на три колонки сделано ровно ради этого сравнения, и обе составляющие числовые, а значит годятся и для порогового отбора, и в качестве ключей сортировки. Плата известна: две дополнительные колонки поверх графика. Здесь особенно хорошо видно, чем различаются вопросы, которые задаются таблице. Суммарный объём отвечает, стоит ли смотреть на этот тикер, а покупки и продажи по отдельности отвечают, в какую сторону смотреть.
Имбалансы, съёмы ликвидности, равные максимумы и минимумы, зоны премиума и дисконта
Остальные четыре профильные колонки собирают прочие объекты разметки, и различаются они не темой, а тем, насколько дорого обходится сжатие объекта до одной ячейки. Дороже всех платит колонка имбалансов: вид искомого имбаланса задан отдельным параметром детекции, поэтому одна и та же ячейка у двух пользователей может говорить о разных объектах. Колонки съёмов ликвидности и равных максимумов и минимумов теряют уровень, на котором всё случилось, и сводятся к отметке о последнем событии, причём вторая по умолчанию выключена. Зоны премиума, равновесия и дисконта переносятся в таблицу почти без потерь, потому что и на графике положение цены в них описывается одним словом.
Выключенная по умолчанию колонка зон премиума и дисконта выглядит потерей. Из всех колонок этого скринера она устроена проще всего: три возможных значения, никакой скрытой давности, немедленно понятное чтение. Для позиционного отбора, где вопрос сводится к «дорого или дёшево относительно диапазона», это самая полезная ячейка таблицы, и включать её стоит первой из выключенных.
Стоит заметить, чем этот скринер отличается от двух других по составу данных. Из девяти профильных колонок числовые только три, и все три относятся к объёму ордер-блока. Шесть остальных отдают либо состояние, либо последнее событие, так что таблица Price Action Concepts почти целиком категориальная. Для отбора из этого следует практическая разница: здесь вы чаще выбираете значение из списка, чем задаёте порог, а упорядочить таблицу по большинству колонок нельзя вовсе.
Группа Indicator Settings и четыре параметра детекции
Параметры, по которым скринер ищет объекты разметки, вынесены в отдельную группу Indicator Settings: длина структуры, длина детекции ордер-блоков, вид имбаланса и глубина просмотра для равных максимумов и минимумов. Ни типов, ни значений по умолчанию, ни диапазонов документация не приводит ни для одного из четырёх, поэтому описать их можно только по назначению. Практическое следствие важнее самих чисел: длина структуры и длина ордер-блоков в скринере должны совпадать с теми, что стоят у вас на графике, иначе таблица отберёт не то, что вы потом увидите.
Колонки скринера Oscillator Matrix
Скринер Oscillator Matrix самый узкий из трёх и одновременно самый плотный: двенадцать элементов, десять включены сразу. Выключены только объём и абсолютное изменение цены, то есть все семь профильных колонок работают с первой минуты. Настраивать, чтобы получить полную картину, здесь нечего; настраивать приходится, чтобы картину сократить.
Три числовые колонки: Money Flow, OverFlow, HyperWave
Три колонки отдают числа: Money Flow (денежный поток), OverFlow (избыток ликвидности) и HyperWave. На них же держится основное применение этого скринера: крайние состояния собраны в столбец, и самый перепроданный из десяти тикеров определяется по таблице, а не последовательным перебором графиков. Помнить нужно про одно: шкалы у трёх колонок разные. Денежный поток устроен вокруг центральной линии 50, HyperWave нормализован в диапазоне от 0 до 100, у избытка ликвидности своя шкала, и устройство всех трёх осцилляторов разбиралось в Части V.
Из разных шкал следует правило чтения, которое пригодится в любом пороговом отборе: колонка сравнивается сама с собой по разным тикерам, а не с соседней колонкой той же строки. Порог для денежного потока и порог для HyperWave это два независимых числа, и подобрать их можно только на своих инструментах и своих таймфреймах. Готовых значений документация не предлагает ни для одной из трёх колонок.
HWO Signal, разворот, дивергенция и конфлюэнс
Оставшиеся четыре колонки отвечают не числами. Три из них событийные: HWO Signal, Reversal и Divergence сообщают о последнем случившемся, каждая на своём материале, на сигнале HyperWave, на развороте и на расхождении цены с HyperWave. Четвёртая, Confluence, устроена иначе: она отдаёт длящееся состояние конфлюэнса, а не отметку о событии. У трёх событийных колонок работает свойство, разобранное в главе про анатомию колонки: факт в ячейке есть, срока у факта нет. Поэтому каждая годится, чтобы наметить кандидата, и ни одна не годится, чтобы закрыть по нему вопрос.
Плотность этого скринера меняет порядок работы с ним. У двух других вы собираете таблицу, добавляя колонки к скромному умолчанию; здесь вы получаете полную таблицу сразу и решаете, что из неё убрать. Практически это удобнее: набор мал, все семь профильных колонок читаются вместе. Первое сокращение обычно делается не ради ширины, а ради рейтинга, знаменатель которого зависит от числа включённых колонок.
Параметры осцилляторов, вынесенные в скринер
Параметры осцилляторов внутри скринера сгруппированы по функциям, а не сложены в один список: Smart Money Flow, HyperWave и Reversals. Группировка сама объясняет устройство таблицы: колонок семь, а независимых расчётов за ними три, поэтому правка одного параметра способна изменить сразу несколько ячеек строки. Ни одного типа, значения по умолчанию или диапазона источник не публикует, и это тот же пробел, что у двух других скринеров.
На этом различия между тремя скринерами заканчиваются. Дальше все три ведут себя одинаково: одна и та же архитектура условий отбора, один и тот же переключатель направления сортировки, одни и те же операции над видимостью строк. Разными остаются только словари, на которых родительские тулкиты говорят о рынке, и эти словари уже разобраны.
Фильтрация: как убрать из таблицы всё лишнее
Фильтрация в скринере устроена проще, чем кажется, и именно поэтому её легко понять неправильно. Она не запрашивает данные заново и не пересчитывает ячейки: значения в таблице остаются теми же, меняется только состав выведенных строк. Тикер, не прошедший условие, просто не появляется. Ближайшая аналогия здесь не запрос к базе данных, а маска, наложенная поверх готового результата. Архитектура фильтрации одинакова во всех трёх скринерах, поэтому разбирать её достаточно один раз.
Фильтр живёт внутри элемента, а не в отдельной панели
Устройство отбора уже описано в главе про анатомию колонки: выпадающий список условия висит на самом элементе, в той же строке настроек, где стоят переключатель колонки и её цвет. Здесь важнее следствие для работы. Действующее условие нигде не подсвечено и не собрано в отдельный перечень, поэтому забытый фильтр обнаруживается не глазами, а арифметикой: строк в таблице меньше, чем заполненных слотов. Проверка в этом случае одна и она скучная: пройти список элементов сверху донизу и посмотреть, у какого из них выпадающий список стоит не в нейтральном положении.
Две механики: выбор состояния и операторы Above и Below
Форму условия задаёт тип данных элемента, а не ваше желание. У категориальной колонки выпадающий список предлагает те значения, которыми эта колонка вообще умеет отвечать, и вы отмечаете одно из них: так устроен отбор по рейтингу, по сигналу, по структуре рынка, по состояниям оверлеев. У числовой колонки вместо перечня значений появляется оператор Above / Below (выше / ниже) и поле под порог. Порогов по умолчанию источник не приводит, поэтому первое число вы ставите почти вслепую и подгоняете его по тому, сколько строк осталось в таблице.
Условия складываются по логическому И
Условия на разных элементах не конкурируют между собой, а накладываются друг на друга: в таблице выживает только тот тикер, у которого сошлось всё выставленное сразу. Максимальное число одновременных фильтров нигде не заявлено, но реальный предел ставит не интерфейс, а размер выборки. Десять строк это очень мало для последовательного отсева. Два жёстких условия на таком наборе регулярно оставляют ноль строк, и пустая таблица здесь не поломка, а осмысленный ответ: ни один из ваших десяти рынков не находится в описанном состоянии.
Пробелы: исключение Lux Volatility и неопубликованные списки значений
Два места документация оставляет незакрытыми. Первое: волатильность отмечена как исключение из механики выше и ниже, но чем она фильтруется вместо этого, не сказано; по устройству колонки логично ожидать выбора между значениями Stable и Volatile, однако это предположение, а не факт из источника. Второе: списки поддерживаемых значений не перечислены ни для одной категориальной колонки ни в одном из трёх скринеров. Узнать, что именно предлагает колонка структуры рынка или колонка конфлюэнса, можно только открыв её выпадающий список в настройках.
Сортировка: три разных ответа на один вопрос
Фильтрация решает, кто попадает в таблицу. Сортировка решает, кто стоит в ней первым, и на десяти строках это почти столь же весомый вопрос: верхняя строка получает внимание уже потому, что она верхняя. Устройство сортировки в скринере предельно скромное, и его ограничения полезно знать заранее, до того как вы построите на ней рабочую раскладку.
Один ключ и переключатель Ascending
Сортировка глобальная и единственная: один выпадающий список ключа плюс переключатель Ascending. Многоуровневой сортировки нет, поэтому упорядочить таблицу сначала по рейтингу, а внутри равных рейтингов по силе тренда, невозможно. Базовое поведение это сортировка по убыванию, Ascending разворачивает порядок. Ключом становится не любая колонка: годятся лишь те, за которыми стоит число или упорядоченная шкала. Колонка, отдающая состояние или последнее событие, в перечень ключей не попадает, сколько бы она ни значила для вашего решения.
Ключи трёх скринеров и что из этого следует
Наборы ключей распределены неравномерно. У скринера Signals & Overlays шесть ключей кроме None, у скринера Price Action Concepts тоже шесть, у скринера Oscillator Matrix только три: рейтинг, денежный поток и HyperWave. Ограничение ощутимое: избыток ликвидности величина числовая, но ключом сортировки не служит, и конфлюэнс, дивергенция, разворот и HWO Signal тоже. У самого широкого скринера картина не лучше: в ключи не попали ни колонка сигнала, ни состояния четырёх оверлеев, так что упорядочить таблицу по сигнальным колонкам нельзя даже теоретически.
Структура как порядковая шкала
Price Action Concepts единственный скринер, где ключом служит не число. Значения колонки структуры принадлежат семейству BOS, CHoCH, CHoCH+, и они не равноправны: у них есть порядок по силе, а значит есть и шкала, по которой строки можно выстроить. Одна тонкость требует внимания. Без переключателя Ascending таблица идёт от самых сильных медвежьих структур к самым сильным бычьим, то есть наверху окажется не самый бычий тикер, а самый медвежий. Слова «по убыванию» здесь работают не так, как подсказывает привычка, и Ascending разворачивает эту шкалу наравне с числовыми ключами.
Режим Structure (Absolute): сила без направления
Отдельное значение Structure (Absolute) снимает вопрос о стороне и выстраивает строки по одной лишь выраженности структуры. Бычий и медвежий слом одного класса оказываются рядом, а не на противоположных концах таблицы. Режим отвечает на другой вопрос: не «куда решилась структура», а «насколько она решена». Это удобно, когда вы ищете рынки с ясной картиной, не выбирая сторону заранее, и собираетесь определять направление уже на графике.
Значение None возвращает порядок слотов
Значение None снимает упорядочивание, и таблица возвращается к тому порядку, в каком вы сами расставили символы в настройках Tickers. Это не отсутствие порядка, а возврат к вашему собственному: если слоты заполнены осмысленно, например сначала криптовалюты, затем акции, затем валютные пары, то таблица с выключенной сортировкой читается быстрее любой отсортированной. Положение каждой строки в ней предсказуемо, и взгляд перестаёт искать нужный тикер заново при каждом обновлении.
Трение: таймауты расчёта и разные часы торговли
Всё описанное выше работает исправно, но у скринера есть трение, и половина его известна заранее. Документация LuxAlgo выносит два предупреждения на все три вводные страницы: о вычислительной нагрузке и о непостоянстве показаний между рынками с разным расписанием. Оба стоит прочитать до того, как вы решите, что скрипт сломался, потому что оба описывают штатное поведение среды, а не дефект.
Почему скринер тяжёл для TradingView
Задача, которую решает скринер, дороже, чем выглядит. По каждому из десяти слотов запрашиваются данные в своём таймфрейме, и по каждому считаются показания целого тулкита, а не одна серия индикатора. Умножьте одиннадцать включённых колонок на десять символов, и станет понятно, откуда берётся нагрузка. LuxAlgo говорит об этом прямо, отдельным предупреждением, и следствием называет редкие таймауты расчёта. Как таймаут проявляется на экране, источник не уточняет, поэтому дальше речь пойдёт только о том, что документация предлагает с ним делать.
Лечение таймаута расчёта
Лечение обескураживающе простое: изменить любую настройку скринера либо удалить скрипт с графика и добавить его заново. Обе операции заставляют скрипт пересчитаться с нуля, но цена у них разная. Правка одной настройки сохраняет конфигурацию целиком, а заново добавленный скрипт открывается с исходными значениями полей, если вы не сохранили свои как значения по умолчанию: тогда список тикеров, таймфреймы слотов, фильтры и цвета придётся вводить снова. Отсюда полезная привычка: хранить рабочую конфигурацию дважды, как chart layout (раскладка графика) в TradingView и как сохранённые значения полей самого скрипта. Тогда переустановка скрипта перестаёт быть дорогой операцией, а эксперименты ставятся на копии, не трогая проверенную раскладку.
Криптовалюты против сессионных рынков
Второе предупреждение тоньше. У криптовалют торговля идёт круглосуточно, у акций и валютных пар есть сессии, и из этого следует, что один и тот же скринер с одним и тем же набором тикеров может выдать разные значения в зависимости от того, на графике какого символа он открыт. Документация фиксирует само расхождение, но причину не разбирает, поэтому формулировать её приходится осторожно: скринер живёт на графике конкретного символа и наследует его расписание, а строки по рынкам с другим расписанием обновляются не в такт. Заметнее всего это на границах сессий и в выходные, когда часть таблицы уже сутки как не менялась.
«Скриншот таблицы без указания базового графика и времени снятия не доказывает ничего: два одинаковых на вид кадра могут расходиться по значениям»
Дисциплина базового графика
Практические следствия складываются в несколько простых правил. Скринер разумно держать на графике того класса активов, который вы действительно отбираете. Снимки таблицы, сделанные на разных базовых символах, между собой несопоставимы. Смешанную таблицу из криптовалют и акций осмысленно читать в часы работы более медленного рынка, а не в выходные. Повторяющиеся таймауты лечатся снижением нагрузки: один экземпляр скринера на график, минимум разных таймфреймов, выключенные колонки, которые всё равно никто не читает. Документация подтверждает здесь только несопоставимость показаний с разных базовых символов, остальное авторские наблюдения.
Как отличить трение от ошибки настройки
Развести эти две вещи помогает один признак, и он надёжен: трение среды лечится пересчётом и не воспроизводится стабильно, а ошибка настройки воспроизводится каждый раз и лечится только правкой настроек. Расхождение таблицы и графика по одному и тому же тикеру почти всегда относится ко второй категории: либо параметры скринера не совпадают с параметрами тулкита на графике, либо таймфрейм слота не равен таймфрейму графика. Есть и третья категория, до настроек не доходящая: скринера вообще нет в списке скриптов. Это вопрос доступа, разобранный в самом начале части, а не вопрос конфигурации.
Рабочий контур: скринер как воронка
Осталось собрать из разобранных частей рабочий контур. Эта глава авторская: новых фактов об инструменте в ней нет, есть только порядок, в котором перечисленные механизмы складываются во что-то пригодное для ежедневной работы.
Отбор, а не сигнал
Скринер отвечает на вопрос «на что смотреть», а не на вопрос «что делать». Строка, прошедшая фильтр, это повод открыть график, и ничего больше. Разумный порядок настройки идёт от основания: сначала набор тикеров и таймфреймы слотов, потом набор колонок, потом одно условие фильтрации и только затем сортировка. Обратный порядок даёт либо пустую, либо нечитаемую таблицу. Одно жёсткое условие почти всегда полезнее двух: на десяти строках второй фильтр чаще обнуляет выборку, чем уточняет её. Рейтинг хорош как первичный отбор и бесполезен как окончательный критерий, поскольку он не взвешен и зависит от вашего же набора колонок.
Три конфигурации под три горизонта
Ниже три конфигурации под три горизонта. Это пример сборки, а не рекомендация: колонки, порог и ключ подбираются под ваш рынок и вашу манеру торговли, а таблица показывает лишь логику, по которой части соединяются между собой.
Что делать со строкой, которая прошла фильтр
Дальше обязательна проверка на графике, и она короткая: совпадают ли настройки скринера с настройками тулкита, тот ли таймфрейм открыт, закрылась ли свеча, на которой построено показание. Скринер не заменяет ни алерты, ни бэктест: автоматизация отобранного разбиралась в Части VI, «Alert Scripting, язык условий для алертов», а проверка гипотез в Части II, про бэктестеры и AI-стратегии. Ценность скринера в итоге измеряется не тем, что он находит, а тем, сколько графиков он позволяет не открывать.
Эпилог
Серия завершена. Часть I начиналась с установки скриптов на график и первого захода в меню индикаторов; Часть VII заканчивается таблицей, которая обходит десять графиков вместо вас. Между этими двумя точками лежит всё остальное: разметка структуры, сигналы и оверлеи, осцилляторы, бэктестеры, язык условий. Скринер стоит в серии последним не по остаточному принципу. Он бесполезен до того, как прочитаны части про сами тулкиты, потому что не объясняет ни одной своей ячейки и не берётся этого делать: он предполагает, что вы уже знаете, что означает состояние Trend Tracer и чем поддержанный CHoCH отличается от обычного.
Указатель на этот раз ведёт назад, а не вперёд. За расшифровкой колонок возвращайтесь к Части III про Price Action Concepts, Части IV про Signals & Overlays и Части V про Oscillator Matrix. За автоматизацией отобранного к Части VI про Alert Scripting. За проверкой гипотез к Части II про бэктестеры и AI-стратегии. За установкой скриптов, настройкой алертов TradingView и агентом Quant к Части I. Дальше только практика: одна конфигурация скринера, месяц наблюдений, потом правка.
Источники
Основание этой части составляет раздел Screeners официальной документации LuxAlgo: двенадцать страниц, по четыре на каждый скринер, а именно вводная страница, страница элементов, страница фильтрации и страница сортировки. Вводные страницы открываются по адресам Screener (S&O) Introduction, Screener (PAC) Introduction и Screener (OSC) Introduction. Три остальные страницы каждого скринера открываются карточками внизу его вводной страницы, а их адреса получаются заменой последнего сегмента на elements, filtering и sorting.
При сверке обнаружились три расхождения, и о них честнее сказать прямо. На всех трёх страницах элементов полоса медвежьего рейтинга напечатана как от 20% до 60% и пересекается с нейтральной полосой от 40% до 60%. На странице элементов Oscillator Matrix описание колонки HyperWave дословно повторяет описание колонки OverFlow. На страницах элементов и сортировки Price Action Concepts объёмные колонки ордер-блока подписаны по-разному, хотя речь об одних и тех же колонках. Кроме того, часть параметров (настройки сигналов, оверлеев, детекции структуры и осцилляторов внутри скринеров) документация оставляет без типов, значений по умолчанию и диапазонов, поэтому в тексте они описаны по назначению, а не по числам. Обучающий ролик, общий для трёх скринеров, доступен на канале LuxAlgo.
Похожие посты
LuxAlgo. Часть VI: Alert Scripting, язык условий для алертов
В настройках трёх тулкитов LuxAlgo спрятано многострочное текстовое поле. В нём живёт собственный язык: он умеет то, чего не умеет конструктор пользовательских алертов, и умеет описывать не событие, а сюжет из нескольких событий, растянутый на десятки баров. Разбираем язык целиком: словарь, грамматику, побочные эффекты и подводные камни.
LuxAlgo. Часть V: Oscillator Matrix, осциллятор, который спорит сам с собой
Пятая часть руководства по LuxAlgo целиком отдана тулкиту Oscillator Matrix. Разбираем, как устроены HyperWave и его сигнальная линия, почему дивергенции упираются в жёсткий предел в 500 линий, что показывают пороги Money Flow, чем кружок отличается от треугольника в сигналах разворота, как считается конфлюэнс и какие семнадцать событий тулкит отдаёт в алерты. В конце: сводка всех опубликованных значений по умолчанию.
LuxAlgo. Часть IV: Signals & Overlays, сигнал, который не является входом
Часть IV руководства по LuxAlgo целиком отдана самому популярному тулкиту компании. Разбираем, почему подтверждающий сигнал по замыслу авторов не является точкой входа, чем контртрендовый режим платит за раннюю правоту, как читать четыре класса ML-классификатора в двух режимах по-разному, зачем одному числу чувствительности три разных способа назначения, что именно рисуют пять оверлеев и почему уровни TP и SL никуда не едут после появления. В конце: девятнадцать предустановленных алертов, конструктор пользовательских алертов и сводка всех опубликованных значений по умолчанию.
Комментарии
Пока нет комментариев. Будьте первым.