LuxAlgo. Часть III: Price Action Concepts, разметка графика без единой линии от руки
Часть III руководства по LuxAlgo целиком отдана тулкиту Price Action Concepts. Разбираем, как алгоритм отличает слом структуры от смены характера движения, почему BOS не появится, пока не случился CHoCH, что показывают зелёные и красные микробары внутри ордер-блока, чем инверсный FVG отличается от двойного, зачем модулю ликвидности панель в углу графика, и как из тринадцати категорий условий собрать одну последовательность, которая пришлёт вам ровно одно уведомление. Отдельная глава посвящена тому, что тулкит рисует задним числом, а не в реальном времени.
Пролог. Когда график размечает себя сам
Разметка ценового графика по правилам ценового действия до сих пор живёт как ручная практика. Человек открывает график, отматывает историю на несколько сотен баров назад, глазом находит точки, в которых движение развернулось, отмечает области, пройденные слишком быстро, и в какой-то момент решает: структура сломана или всё ещё продолжается. Тулкит Price Action Concepts® для TradingView® не добавляет к этому словарю ни одного нового понятия. Он берёт словарь целиком и переводит его в набор алгоритмов, которые размечают график сами, без единой линии, проведённой от руки. Вопрос, ради которого написана эта часть, звучит просто: что меняется, когда решение о положении уровня принимает не глаз, а формула с числовым параметром в поле настроек.
Разобрано будет всё, что тулкит наносит на цену: два события структуры рынка и две её одновременные размерности, объёмные ордер-блоки с внутренней активностью, общий для нескольких модулей механизм отработки, пять типов имбаланса, четыре подмодуля ликвидности, зоны премиума и дисконта, уровни прошлых периодов и сетка коррекций Фибоначчи, которая пересобирается из выходов остальных модулей. Дальше идут ретроспективная отрисовка, справочник настроек, алерты тулкита и способ собрать из отдельных условий одно составное. Скринер и бэктестер Price Action Concepts в эту часть не входят: у них свои места в серии, как и у тулкитов Signals & Overlays® и Oscillator Matrix®.
Часть II была отдана ИИ-платформе бэктестинга: трём бэктестерам, готовым AI-стратегиям, языку Strategy Scripting, прогнозированию и вебхукам. Там инструмент оценивал заранее сформулированное правило по прошлым данным и отвечал на вопрос, сколько это правило заработало бы. Здесь инструмент ничего не оценивает: он размечает график в настоящем времени и отвечает на вопрос, что происходит с ценой сейчас. Это два разных жанра работы с одним и тем же экраном, и смешивать их не стоит. Одно понятие из Части II понадобится нам в тринадцатой главе: режимы инвалидации незавершённой последовательности условий разобраны там, в главе про Step & Match, и повторять этот разбор мы не станем.
Стоит сказать заранее, с какой позиции написан текст. Тулкит по умолчанию выключает почти всё, что умеет, и это не оплошность разработчиков, а единственная работающая логика: шесть модулей, включённых одновременно, превращают график в мозаику, в которой не читается ничего, включая саму цену. Честный способ пользоваться этим инструментом вычитающий, а не складывающий. Отсюда и порядок изложения: каждый модуль разбирается вместе с ценой его включения, чтобы отбор нужных опирался на устройство инструмента, а не на витрину продукта.
«Тулкит не отвечает на вопрос, куда пойдёт цена. Он отвечает на вопрос, где вы условились считать, что структура сломана.»
Содержание
- Пролог. Когда график размечает себя сам
- Карта тулкита: шесть модулей и десять групп настроек
- Структура рынка: CHoCH, BOS и грамматика тренда
- Две структуры одновременно: внутренняя, свинговая и цвет свечей
- Объёмные ордер-блоки: зона, у которой есть содержимое
- Отработка уровня: как блок и имбаланс уходят с графика
- Имбалансы: пять способов увидеть пропущенную цену
- Ликвидность: трендовые линии, паттерны, равные экстремумы и съёмы
- Дорого и дёшево: зоны премиума, дисконта и уровни прошлых периодов
- Fibonacci Retracements: сетка, которая пересобирается сама
- Ретроспективная отрисовка: что тулкит знает в реальном времени
- Справочник настроек: значения по умолчанию и бюджет вычислений
- Алерты тулкита: тридцать три условия и один вызов
- Конструктор пользовательских алертов: последовательность шагов как язык
- Эпилог
- Источники
Карта тулкита: шесть модулей и десять групп настроек
Что тулкит рисует вместо вас
Обещание продукта вендор формулирует широко: набор алгоритмов берёт на себя всё, что трейдер обычно чертит руками, от уровней поддержки и сопротивления до трендовых линий и графических фигур, а адресатом названы одинаково новичок и профессионал. По этому обещанию тулкит вполне можно судить: он действительно не требует ни собственных построений, ни знания правил разметки, чтобы начать что-то показывать. Технически всё это остаётся одним индикатором TradingView, написанным на Pine Script®, поэтому вся разметка живёт в одном скрипте и настраивается из одной панели.
Шесть модулей и седьмой без карточки
Стартовая страница документации устроена как навигационная сетка и не содержит ни одной настройки: шесть карточек модулей, карточка алертов и карточка справочника настроек. Модули названы так: Market Structure (структура рынка), Volumetric Order Blocks (объёмные ордер-блоки), Liquidity Concepts (ликвидность), Imbalance Concepts (имбалансы), Premium/Discount Zones (зоны премиума и дисконта) и Previous Highs/Lows (максимумы и минимумы прошлых периодов). У каждого своя страница, своя группа настроек и своя глава или пара глав в этом руководстве.
Модулей, однако, семь. Fibonacci Retracements карточки на стартовой странице не получил, но у него есть и отдельная страница документации, и отдельная группа настроек, и собственная логика, не сводимая ни к одному соседу. Читатель, который ориентируется по навигационной сетке, седьмой модуль просто не найдёт, и это стоит держать в голове с самого начала: витрина на входе описывает тулкит неполно.
Десять групп настроек и путь к ним
Панель настроек открывается двумя способами. Первый: навести курсор на название индикатора в левом верхнем углу графика, дождаться ряда иконок и щёлкнуть по шестерёнке. Второй: дважды щёлкнуть по любому элементу, который тулкит нарисовал, по границе блока, по линии структуры, по метке. Источник перечисляет оба пути без предпочтения и не обещает, что двойной щелчок откроет сразу ту группу настроек, к которой относится нарисованный элемент, так что рассчитывать на это не стоит. Оба пути описываются здесь один раз на всю серию: у остальных тулкитов LuxAlgo панель открывается ровно так же, и дальше мы будем возвращаться к этому абзацу, а не повторять его.
Групп внутри панели ровно десять, и порядок у них такой: MARKET STRUCTURE, VOLUMETRIC ORDER BLOCKS, LIQUIDITY CONCEPTS, IMBALANCE CONCEPTS, PREMIUM & DISCOUNT ZONES, HIGHS & LOWS MTF, FIBONACCI RETRACEMENTS, GENERAL STYLING, CUSTOM ALERT CREATOR, CALCULATION. Первые семь соответствуют семи модулям, восьмая собирает оформление, девятая отдана составным условиям оповещений, десятая ограничивает бюджет вычислений. Большинство переключателей отображения в этих группах выключено, поэтому сразу после установки график показывает заметно меньше, чем витрина продукта, и это правильная отправная точка, а не повод искать неисправность.
Модель оповещений заявлена трёхуровневой, и уровни действительно устроены по-разному. Первый: встроенные алерты, которые есть у большинства концепций тулкита и выбираются в диалоге TradingView поштучно. Второй: один алерт, покрывающий сразу много условий, через отдельное условие в том же диалоге. Третий: составные условия, которые собираются прямо в настройках тулкита, в группе CUSTOM ALERT CREATOR. Двенадцатая и тринадцатая главы разбирают эти уровни подробно, и к ним же будут отсылать следующие части серии.
Структура рынка: CHoCH, BOS и грамматика тренда
Два события, из которых собран тренд
Модуль структуры рынка находит и рисует структуру сам, а цель у этой конструкции заявлена через отрицание: обойтись без запаздывающих оверлеев, которыми тренд читают обычно. Произнести это стоит отдельно, потому что от индикатора тренда ждут ровно обратного. Скользящие средние в расчёте структуры не участвуют вовсе: алгоритм смотрит только на геометрию свинг-точек и на то, какие из них цена уже пробила.
Идентификаций всего две. Смена характера движения (CHoCH) отмечает возможный разворот. Слом структуры (BOS) отмечает продолжение. Третьего события нет, и это главное, что нужно понять про модуль: вся разметка тренда, сколько бы меток ни висело на графике, собрана из двух букв одного алфавита. Разница между ними не в силе движения и не в его размере, а в том, какую свинг-точку цена пробила и в каком контексте это произошло.
Смена характера движения и её поддержанная форма
Смена характера движения в источнике названа также смещением структуры рынка, и оба названия описывают одно событие. Документация формулирует его так: бычий CHoCH фиксируется, когда цена пробивает предыдущий свинговый минимум, находясь в восходящем движении, а медвежий CHoCH фиксируется, когда цена пробивает предыдущий свинговый максимум, находясь в нисходящем. Смысл в обоих случаях один: возможный разворот. Скажем честно, что такая формулировка допускает двойное чтение, поскольку метка может называться по направлению новой структуры, а не по направлению сломанной. Проверяется это не в тексте, а на графике: включите модуль, дождитесь обеих меток и посмотрите, что именно оказалось подписано.
Подформы у смены характера движения две, и различаются они не собой, а тем, что случилось перед ними. Ведущий CHoCH получает на графике метку CHoCH: раннего предупреждения о развороте перед ним не было. Поддержанный CHoCH получает метку CHoCH+: перед ним успел появиться несостоявшийся более высокий максимум в восходящем движении, то есть фактически более низкий максимум, либо несостоявшийся более низкий минимум в нисходящем, то есть более высокий минимум. Знак «плюс» в метке означает ровно это: у разворота была подготовка, и алгоритм её заметил.
Слом структуры и правило очерёдности
Слом структуры устроен зеркально смене характера движения и означает продолжение. Бычий BOS фиксируется, когда цена пробивает предыдущий свинговый максимум в восходящем движении и печатает новый более высокий максимум. Медвежий BOS фиксируется, когда цена пробивает предыдущий свинговый минимум в нисходящем движении и печатает новый более низкий минимум. Никакой дополнительной проверки силы движения при этом не производится: уровень пробит, новый экстремум напечатан, метка поставлена.
У слома структуры есть предусловие, которого нет у смены характера движения, и оно определяет весь вид разметки на свежем графике. Слом может появиться только после того, как произошла смена характера движения. Пока первого CHoCH не случилось, ни одной метки продолжения на графике не будет, сколько бы новых максимумов цена ни напечатала. После первого разворотного события картина меняется: несколько BOS подряд внутри одного тренда это нормальное поведение движка, а не сбой и не дублирование меток.
HH, HL, LH, LL: подписи свинг-точек
За отдельный слой разметки отвечает переключатель Show Swing High/Low (подписи свинг-точек), по умолчанию выключенный. Ни одного нового события он не добавляет, а надписывает уже случившиеся точки разворота четырьмя кодами: HH, HL, LH, LL. Читаются они парами: два кода описывают максимумы, два минимума, и вместе они несут ту же информацию о тренде, что и линии структуры, только в заметно более компактной форме. Почему эти подписи появляются на графике задним числом, разбирается в десятой главе.
Наконец, разметку можно проредить, не выключая модуль целиком. Внутри группы MARKET STRUCTURE типы структуры фильтруются выпадающими списками, и набор значений в них один и тот же: All, CHoCH (All), CHoCH+, CHoCH, BOS, None. То есть на графике можно оставить одни только поддержанные смены характера движения и убрать всё остальное, включая продолжения. Списков при этом два, отдельно для внутренней и отдельно для свинговой структуры, и почему их именно два, объясняет следующая глава.
Две структуры одновременно: внутренняя, свинговая и цвет свечей
У разметки структуры есть свойство, которое сбивает с толку при первом знакомстве: на графике всегда присутствуют две независимые картины сразу. Это не два режима, между которыми переключаются, и не два экземпляра индикатора, положенных друг на друга. Тулкит ведёт краткосрочный и долгосрочный счёт свинг-точкам параллельно и наносит оба результата на одну и ту же цену. Разбирать этот слой проще всего с того, чем две картины различаются визуально: различие сделано намеренно грубым.
Пунктир против сплошной линии
Внутренняя структура строится по краткосрочным свинг-точкам и отрисовывается пунктирными линиями с мелкими метками. Свинговая структура строится по долгосрочным свинг-точкам и отрисовывается сплошными линиями с крупными метками. Правило чтения отсюда следует короткое: всё пунктирное и мелкое относится к внутренней картине, всё сплошное и крупное к свинговой. События внутри обеих картин одни и те же, CHoCH и BOS, поэтому на графике совершенно нормально видеть внутренний BOS посреди свинговой коррекции: две размерности не обязаны соглашаться друг с другом, и как раз их несогласие несёт больше информации, чем совпадение.
Обе картины при этом считаются по одному и тому же потоку данных. В группе MARKET STRUCTURE лежит собственный селектор Timeframe (таймфрейм расчёта) со значением по умолчанию Chart, то есть по умолчанию структура ищется на таймфрейме открытого графика. Задать внутренней структуре один таймфрейм, а свинговой другой нельзя: поле здесь одно на обе размерности. Это стоит запомнить сразу, потому что дальше в тулките встретятся ещё два поля с тем же названием, и управляют они совсем другими объектами.
Диапазоны длины, которые не пересекаются
Глубину просмотра для поиска свинг-точек каждая размерность получает из собственного числового поля. У внутренней структуры значение по умолчанию 5 и допустимый диапазон от 5 до 49. У свинговой значение по умолчанию 50 и допустимый диапазон от 50 до 100. Диапазоны не пересекаются ни в одной точке, и это не оплошность интерфейса, а конструктивное решение: две размерности невозможно свести к одному периоду, как бы вам этого ни хотелось. Тулкит не даёт схлопнуть два взгляда в один и тем самым защищает собственную идею: структура читается только на двух масштабах сразу.
Внешний вид этих линий настраивается не там, где живёт их логика. Размер меток задаётся двумя отдельными списками, Internal Label Style и Swing Label Style, со значениями Tiny, Small, Normal, и оба лежат в группе GENERAL STYLING. Там же находится список Structures Theme (тема структур) с двумя значениями. Значение Colored берёт пользовательские цвета внутренней структуры и применяет их к уровням, меткам и окрашиванию свечей. Значение Monochrome убирает цвет из всей структурной разметки целиком, оставляя белую и серую палитру, и это самый прямой способ уместить структуру на графике, где цвет уже занят другим индикатором.
Color Candles: структура без единой метки
Color Candles (окрашивание свечей) по умолчанию выключено, и включать его имеет смысл только вместе с осознанным решением о том, что именно вы хотите видеть. Свечи перекрашиваются по текущему состоянию внутренней структуры, и это существенная деталь: свинговая картина на цвет тел не влияет никак. Состояний четыре, ровно по числу событий, и различаются они по двум признакам сразу: направление задаёт сам цвет, бычьи состояния зелёные, медвежьи красные, а тип события задаёт насыщенность, у CHoCH оттенок тёмный, у BOS обычный. Собственной палитры у окрашивания нет, цвета наследуются из пользовательских настроек внутренней структуры, поэтому смена цвета уровней автоматически меняет и цвет свечей.
Прикладной смысл функции назван в документации прямо, и он неожиданно экономный. Включив окрашивание и выключив отображение обеих структур целиком, вы получаете график, на котором нет ни одной линии и ни одной метки, но состояние структуры по-прежнему перед глазами. Освобождённая площадь уходит другим индикаторам. Для тех, кто держит на графике три или четыре инструмента одновременно, это единственный способ не отказываться от структуры вовсе.
Сильные и слабые экстремумы
Show Strong/Weak HL по умолчанию выключено. Работает функция со средним масштабом: берёт уровни, образованные среднесрочными свингами, и считает по объёму на обоих свингах относительную величину в процентах. Эта величина и делит экстремумы на сильные и слабые. Сила здесь означает не размах движения, а то, сколько объёма стояло за формированием уровня по сравнению с парным ему.
Здесь спрятана ловушка, на которую натыкаются регулярно. И подписи свинг-точек HH, HL, LH, LL, и сильные со слабыми экстремумами управляются периодом внутренней структуры, а не свинговой. Увеличив свинговую длину до сотни, вы не измените ни одну из этих подписей: они продолжат считаться по значению внутреннего поля. Логика в таком устройстве есть, обе функции работают с точками, а не с уровнями структуры, но из интерфейса она не следует никак, и проверять эту зависимость приходится опытным путём.
Объёмные ордер-блоки: зона, у которой есть содержимое
Ордер-блок это самая нагруженная конструкция тулкита. Прямоугольник на графике здесь не просто отмечает область: он несёт внутри себя гистограмму активности и две цифры справа, и почти всё, что модуль умеет, включено по умолчанию. Именно поэтому сразу после установки график выглядит занятым, хотя большинство переключателей выключено: из десяти включённых по умолчанию переключателей пять относятся к ордер-блокам.
Откуда берутся блоки и почему их пять
Определение объёмного ордер-блока держится на одном допущении, и допущение это стоит держать на виду. Зону тулкит размечает сам, а смысл ей приписывается такой: считается, что именно здесь набирали позицию участники, осведомлённые лучше прочих. Слово «считается» тут несущее: ценовой график не располагает способом отличить накопление от совпадения, а зона строится по геометрии свинг-точек, а не по наблюдаемому факту чьих-то действий. Пользоваться такими зонами предложено как потенциальными уровнями поддержки и сопротивления, и это единственное заявленное применение модуля.
Бычий ордер-блок изначально появляется вблизи свингового минимума и работает как потенциальная поддержка. Медвежий появляется вблизи свингового максимума и работает как потенциальное сопротивление. Строятся блоки по тем же свинг-точкам, что и структура, но с собственным полем Length (длина), у которого значение по умолчанию 5. Это глубина просмотра: чем больше значение, тем более долгосрочные блоки находит детектор и тем реже они появляются.
Ответ на самый частый вопрос новичка, почему блоков на графике так мало, лежит в двух включённых по умолчанию настройках. Show Last (сколько блоков показывать) включено, а число рядом с ним равно 5, то есть на графике живут только пять последних блоков, а всё, что старше, уходит молча. Hide Overlap (скрытие перекрытий) тоже включено: если два блока накладываются друг на друга, остаётся более свежий. К этому добавляется Show Mid-Line, включённое по умолчанию, оно рисует пунктирную линию по среднему уровню области блока. Эта средняя линия понадобится в следующей главе: на неё опирается один из методов отработки, значение Average.
Внутренняя активность покупок и продаж
Internal Buy/Sell Activity (внутренняя активность покупок и продаж) по умолчанию включено, и именно это отличает объёмный ордер-блок от обычного прямоугольника. Внутри интервала, на котором блок построен, рисуются микробары: зелёные показывают активность покупок, красные активность продаж. Читать их следует как отдельную маленькую гистограмму, вложенную в зону, а не как часть ценового графика.
Заявленное применение этой гистограммы состоит из трёх шагов. Сначала вы смотрите, согласуется ли внутренняя активность с типом блока, то есть преобладают ли покупки на бычьем блоке, или же активность распределена по интервалу примерно поровну. Затем делаете вывод об истощении одной из сторон на этом уровне. И только потом оцениваете, вероятнее ли пробой зоны или отскок цены от её границы. Это интерпретация, а не расчёт: числового порога, отделяющего согласованную активность от равномерной, тулкит не предлагает, и вывод остаётся полностью за вами.
Metrics: объём блока и его доля
Metrics (метрики блока) выводятся переключателем Show Metrics, который по умолчанию включён, и располагаются справа от блока, рядом с самым свежим историческим ценовым баром. Значений там два. Первое это накопленный объём внутри интервала построения блока: чем он больше, тем более значимым блок считается. Второе, в процентах, это доля данного блока в суммарном объёме всех объёмных ордер-блоков, отображённых на графике в этот момент.
Со вторым значением надо обращаться осторожно именно потому, что оно относительно. Доля пересчитывается всякий раз, когда появляется новый блок или отрабатывается старый, и сравнивать процент, снятый вчера, с процентом, снятым сегодня, бессмысленно: знаменатель за это время сменился целиком. Полезна эта цифра ровно в одном сценарии, когда нужно быстро ранжировать между собой блоки, которые прямо сейчас перед вами.
Положение метрик по горизонтали не фиксировано: они привязаны к самому свежему историческому бару и смещаются вправо по мере печати новых баров. Размер текста задаётся списком OB Metrics Size в группе GENERAL STYLING со значениями Tiny, Small, Normal и Auto, где Auto масштабирует надпись так, чтобы она поместилась внутри области блока. Со значением по умолчанию у этого поля есть неясность: страница модуля называет Small, а на странице справочника настроек значение по умолчанию не продублировано. Честнее сказать об этом расхождении, чем выбрать одну из версий и выдать её за проверенный факт.
Блоки со старшего таймфрейма
Селектор Timeframe в группе VOLUMETRIC ORDER BLOCKS включает мультитаймфреймовый режим (MTF): внутренние и свинговые объёмные ордер-блоки со старшего или младшего таймфрейма выводятся прямо на текущий график. Ни границы блока, ни его объём при переносе не пересчитываются: часовой блок, выведенный на пятнадцатиминутный график, сохраняет ровно те цены и ровно тот объём, с которыми сложился на своём таймфрейме.
Плата за это удобство описана в документации отдельным предупреждением. Механизм запроса данных с чужого таймфрейма влияет и на то, где блок окажется во времени, и на то, в какой момент его данные будут получены. Практический вывод один: мультитаймфреймовое отображение годится, чтобы держать старший контекст в поле зрения, но решение по конкретному блоку принимается на его родном таймфрейме.
Отработка уровня: как блок и имбаланс уходят с графика
Ни ордер-блок, ни имбаланс не живут на графике вечно. У каждого есть условие исчезновения, и это условие настраивается: отработка (митигация) означает ровно одно, цена пробила объект, и объект автоматически ушёл с графика. В документации механизм разложен по двум страницам, ордер-блоков и имбалансов, и на каждой описан наполовину: обе говорят только о своих объектах и не упоминают, что правило у них общее. Собрать его удобнее заранее, до разговора об имбалансах, потому что дальше он понадобится в каждой главе, где на графике появляется зона.
Три метода отработки и один способ ничего не удалять
Условие задаётся выпадающим списком Mitigation Method (метод отработки), и встречается этот список в настройках не однажды: свой у объёмных ордер-блоков, свой у имбалансов. Значений у блоков три: Close (закрытие), Wick (тень свечи) и Average (среднее). У имбалансов те же три плюс четвёртое, None, при котором отработанные имбалансы не удаляются никогда и остаются на графике как след прошедшего движения. Различаются методы одним: тем, какую именно цену алгоритм принимает за доказательство пробоя.
Порядок строгости выстраивается сам собой. Wick снимает уровни раньше всех: достаточно, чтобы границы коснулась тень одной свечи. Close оставляет их жить дольше всех, потому что требует закрытия за границей, а не касания. Average стоит посередине и опирается на ту самую среднюю линию области, которую рисует Show Mid-Line, то есть уровень считается отработанным ровно на половине пути. Здесь же прячется мелкое расхождение источника: справочник настроек описывает Average у ордер-блоков как пересечение средней линии именно ценой закрытия, тогда как страница модуля говорит просто о цене. Разница в один тик кажется несущественной ровно до момента, когда от неё зависит, стоит уровень на графике или его уже нет.
Брейкер-блоки: вторая жизнь отработанного блока
Отработанный блок можно и не выбрасывать. Переключатель Show Breakers, по умолчанию выключенный, оставляет пробитые ордер-блоки на графике в новом качестве. Брейкер-блок это уровень, который цена уже продавила и к которому может вернуться с другой стороны: зона перестала быть поддержкой, но не перестала быть заметной. Условие исчезновения у брейкера собственное и с методом отработки не совпадает.
Предупреждение, которое стоит услышать до включения переключателя: единственный визуальный признак, отличающий брейкер от живого блока, это несплошная заливка фона. Ни отдельной метки, ни другого цвета, ни рамки. При мелком масштабе и на светлой теме разница почти не читается, а зон на графике становится больше: к живым блокам добавляются все пробитые, которые прежде исчезали. Получается набор одинаковых на вид прямоугольников, часть которых уже отработана, и глаз не имеет быстрого способа их разделить.
Три независимых поля Timeframe
Селекторов таймфрейма расчёта в тулките три, и связи между ними нет: один в группе MARKET STRUCTURE, один в VOLUMETRIC ORDER BLOCKS, один в IMBALANCE CONCEPTS. У каждого значение по умолчанию Chart, то есть таймфрейм открытого графика. Изменение одного не трогает два других, поэтому вполне возможна конфигурация, в которой структура считается по 4H, блоки по 1H, а имбалансы по таймфрейму графика. Это скорее предупреждение, чем приглашение: три источника данных на одном экране трудно удержать в голове, а тулкит нигде не подписывает, с какого таймфрейма пришёл конкретный объект.
Последняя деталь принадлежит уже следующей главе. Значение None в методе отработки имбалансов означает, что по факту пробоя не удаляется ничего, а общее число имбалансов на графике ограничено жёстко и без исключений. Что происходит, когда одно упирается в другое, разбираем дальше.
Имбалансы: пять способов увидеть пропущенную цену
Имбаланс это участок, который цена прошла слишком быстро. Торговля внутри него либо не состоялась вовсе, либо состоялась в одностороннем порядке, и на графике остаётся ценовой интервал, в котором сделок почти не было. Идея модуля в том, что такой интервал остаётся незакрытым делом рынка и цена к нему возвращается. Типов имбаланса пять, и выбираются они выпадающим списком: FVG, Inverse FVG, Double FVG, Volume Imbalance, Opening Gap. Переключатель отображения по умолчанию выключен, так что сразу после установки тулкита ни одного имбаланса на графике нет.
FVG: три свечи и незакрытый разрыв
У FVG жёсткая геометрия: три свечи подряд, и тени первой и третьей не дотягиваются до тела средней. Подсвечивается при этом не вся формация, а только просвет между этими тенями: узкая горизонтальная полоса, сквозь которую цена прошла один раз и на скорости. Условия формирования источник задаёт выражениями, и ниже они воспроизведены дословно, потому что это функциональные записи, а не описание словами: первая строка бычий случай, вторая медвежий.
low[0] > high[2]
high[0] < low[2]
Читается это так: в бычьем случае минимум текущей свечи выше максимума свечи, отстоящей на два бара назад; в медвежьем максимум текущей свечи ниже минимума позапрошлой. Между ними остаётся интервал, который ни одна из трёх свечей не закрыла. В условие входит только соотношение крайних свечей, а средняя в формуле не участвует вовсе: её роль в том, чтобы разрыв возник, а не в том, чтобы его подтвердить.
Инверсный FVG и двойной FVG
Отработанный FVG не обязан просто исчезать. Инверсный FVG (IFVG) это тот же разрыв после отработки, сменивший роль: зона, работавшая в одну сторону, становится зоной ретеста в противоположную. Отработанный бычий FVG превращается в медвежий инверсный FVG, и от цены ожидается возврат вверх, внутрь этой зоны. Отработанный медвежий превращается в бычий инверсный, и возврат ожидается вниз. Смена знака здесь не опечатка: имя зоны говорит о том, как её собираются использовать дальше, а не о том, из чего она выросла.
У этого механизма есть ограничение, названное в источнике компромиссом ради производительности: инверсный FVG строится только по отработке самого свежего обнаруженного FVG. Более старые разрывы, которые отрабатываются позже, для этой цели не рассматриваются. Практический смысл прост: если в нужном месте истории инверсной зоны нет, это ожидаемое поведение алгоритма, а не пропуск и не повод менять настройки.
Двойной FVG (BPR) устроен иначе: это не превращение, а пересечение. Когда новый FVG перекрывает более ранний FVG противоположной направленности, итоговой зоной становится именно область наложения, а не объединение двух областей. Бычий двойной FVG получается, когда новый бычий разрыв перекрывает более ранний медвежий; медвежий собирается зеркально. Зона от этого делается уже и точнее исходных, и в этом вся её ценность.
Объёмный имбаланс и гэп открытия
Два оставшихся типа считаются по двум соседним свечам и различаются глубиной разрыва. Объёмный имбаланс (Volume Imbalance) фиксируется, когда тела соседних свечей не перекрываются, а тени перекрываются: сделки на этих уровнях были, но тела прошли мимо друг друга. Гэп открытия (Opening Gap) строже, здесь не перекрываются даже тени, и между свечами остаётся пустая ценовая область, в которой не происходило ничего.
Искать эти два типа стоит не там, где хочется, а там, где они бывают. На акциях они встречаются часто: у рынка есть ночь и выходные, и цена регулярно открывается не там, где закрылась. На криптовалютах и на форексе торговля почти непрерывна, и такие разрывы появляются в основном на секундных таймфреймах. Человек, включивший объёмный имбаланс на часовом графике биткоина, увидит пустой экран и решит, что модуль сломан. Модуль не сломан, просто выбран класс инструментов, на котором этого явления почти не бывает.
Volatility Threshold и предел буфера
Два числовых поля определяют, как имбалансы выглядят и сколько их доживает до вашего взгляда. Extend Imbalance (продление имбаланса) по умолчанию 10: на столько баров область продлевается вправо, за пределы свечей, которые её образовали. Volatility Threshold (порог волатильности) по умолчанию 0 и работает как фильтр по размаху: чем выше значение, тем более крупные имбалансы остаются на графике, а мелкие отсеиваются ещё до отрисовки.
С порогом волатильности стоит обращаться осторожно по двум причинам. Первая: это множитель к внутренней оценке волатильности, а не абсолютная величина в пунктах или в цене, поэтому одно и то же число ведёт себя на разных инструментах по-разному. Вторая: документация не публикует ни минимума, ни максимума, ни шага этого поля, зато отмечает, что изменение на единицу даёт заметно другой результат. Поле принимает дробные значения, и подбирать его придётся вручную, глядя на конкретный график, а не переносить найденное значение с инструмента на инструмент.
Наконец, у модуля есть жёсткий предел, о котором график никак не сообщает: буфер рассчитан на 200 имбалансов. Двести первый обнаруженный имбаланс заставляет тулкит выбросить самый старый, молча и без следа. В сочетании со значением None в методе отработки это даёт неочевидный режим работы: если по отработке не удаляется ничего, буфер ротируется исключительно по возрасту, и глубина истории, которую вы видите, определяется уже не поведением цены, а размером буфера.
Ликвидность: трендовые линии, паттерны, равные экстремумы и съёмы
Под общим именем в группе настроек LIQUIDITY CONCEPTS собраны четыре механизма, у которых почти нет ничего общего, кроме исходной посылки: цена движется туда, где скопилась ликвидность. Первый рисует наклонные зоны, второй распознаёт графические паттерны и выводит результат в таблицу, третий отмечает горизонтальные пары равных экстремумов, четвёртый ставит небольшую коробку на отдельной свече. Все четыре по умолчанию выключены. Полезнее считать эту группу не модулем, а полкой, на которой лежат четыре независимых инструмента, и снимать с неё по одному.
Трендовые линии ликвидности
Liquidity Trendlines (трендовые линии ликвидности) устроены не так, как линия, проведённая рукой по двум касаниям. Считаются они не по точкам разворота, а по тому, сколько ликвидности стоит на ценовых уровнях, и получается не линия, а наклонная зона. Условие у неё жёсткое: пока участники рынка не дошли до этих уровней и не поторговали на них, рисовать нечего. В восходящем движении зона синяя и работает как поддержка, в нисходящем красная и работает как сопротивление. Пробой её границы алгоритм трактует как ожидаемый разворот тренда, и ровно на это событие настроен встроенный алерт.
О втором свойстве стоит знать раньше, чем вы начнёте оценивать модуль на глаз. Отрисовка здесь ретроспективная: линия появляется не тогда, когда цена подошла к уровню, а тогда, когда выполнились условия отображения, и рисуется назад по истории. На прошлом участке графика такая линия всегда выглядит проведённой безупречно, потому что она и была проведена по уже известным данным. Этому свойству отдана десятая глава целиком. Число линий ограничивается числовым полем: по умолчанию на графике остаются 5 восходящих и 5 нисходящих, и это в первую очередь регулятор захламления.
Одиннадцать паттернов и панель в углу графика
Второй подмодуль занят распознаванием графических паттернов и выводит результат двумя способами сразу: линиями на самой цене и текстовой строкой в Dashboard (панель показателей), закреплённой в правом верхнем углу графика. Панель отвечает на единственный вопрос, какую фигуру детектор видит прямо сейчас, и этим избавляет от привычки угадывать название по геометрии. Полный перечень фигур удобнее брать не со страницы модуля, а из списка условий, который предлагает Custom Alert Creator (конструктор пользовательских алертов): там фигуры названы поимённо. Их одиннадцать.
Горизонт поиска задаётся выпадающим списком с числовыми значениями от 1 до 10: чем больше значение, тем более долгосрочные фигуры ищет детектор и тем реже он их находит. Значение по умолчанию документация не указывает, его придётся прочитать в самой панели настроек. Show Patterns Zones (зоны паттернов) по умолчанию включено: вокруг линий фигуры рисуется заливка, которая делает её заметной боковым зрением. Встроенный алерт у подмодуля один, на обнаружение паттерна.
Найденный паттерн против запасного уровня
Самое важное про этот подмодуль сказано не в списке фигур, а в стиле линии. Сплошные линии означают, что паттерн действительно найден. Пунктирные означают, что не подошёл ни один и вместо фигуры начерчен обычный уровень поддержки или сопротивления, запасной вариант на случай, когда сказать нечего. Модуль рисует всегда, при любом состоянии рынка, и это конструктивное решение, а не побочный эффект. Понимать его следует буквально: наличие линий на графике не свидетельствует о том, что алгоритм что-то нашёл. Свидетельствует тип линии, и различить его беглым взглядом труднее, чем кажется.
Равные максимумы и минимумы
Третий подмодуль работает с парами. Равные максимумы и минимумы (EQH/EQL) он ищет среди уже подтверждённых свинг-точек и отмечает те случаи, где два экстремума встали на одном уровне. Прикладной смысл, названный источником, такой: пара намекает на возможный разворот и на приближающиеся события структуры рынка, то есть на CHoCH и BOS. Это единственный из четырёх подмодулей, прямо связанный с главной осью тулкита: остальные три живут сами по себе и о структуре ничего не знают.
Здесь документация расходится сама с собой, и делать вид, что расхождения нет, было бы нечестно. Страница модуля описывает числовое поле длительности со значением по умолчанию 3, и то же число задаёт задержку подтверждения в барах. Страница справочника настроек вместо числового поля описывает выпадающий список Equal H&L со значениями Short-Term и Long-Term. Какое из двух описаний соответствует вашей версии индикатора, надёжнее посмотреть в самой панели настроек. Общая механика от этого не меняется: свинг-точка должна сначала подтвердиться, поэтому равные экстремумы наносятся задним числом и на живом баре не появляются никогда. Размер их меток задаётся полем EQHL Label Style в группе GENERAL STYLING.
Съём ликвидности: коробка на одной свече
Четвёртый подмодуль работает на самом коротком масштабе из возможных, на масштабе одной свечи. Там, где цена зашла в ликвидную область и поторговала внутри неё, тулкит ставит прямо на баре небольшую коробку с обводкой. Бычий съём получает синюю обводку, и коробка занимает участок от минимума бара вверх до нижней границы тела свечи. Медвежий получает красную обводку и занимает участок от максимума бара вниз до верхней границы тела. Геометрия здесь и есть содержание: коробка накрывает ровно ту часть свечи, куда цена сходила и откуда вернулась.
Бычий и медвежий съёмы, отмеченные на одной области одновременно, источник читает как нерешительность рынка, и это единственная интерпретация, которую он предлагает для такой пары. Встроенный алерт здесь тоже один, на съём ликвидности. Стоит заметить контраст со следующей главой: съём это событие, привязанное к конкретному бару, а зоны премиума и дисконта, к которым мы переходим, ни о каком событии не сообщают вовсе.
Дорого и дёшево: зоны премиума, дисконта и уровни прошлых периодов
В документации это две отдельные страницы, между которыми нет ни одной перекрёстной ссылки. Мы соединяем их в одну главу, потому что оба модуля отвечают на один и тот же вопрос: дорого ли сейчас относительно недавнего контекста. Ни один из них не говорит, что делать. Оба задают фон, на котором читаются все остальные элементы разметки, и в этом их единственная функция.
Три полосы: премиум, равновесие, дисконт
Модуль складывает друг на друга три ценовые области и предлагает читать их как ценник. Верхняя полоса это зона премиума: всё, что происходит внутри неё, считается дорогим. Нижняя это зона дисконта, то есть «дёшево». Между ними лежит зона равновесия, нейтральная по определению. Дополнительно все три работают как обычные уровни поддержки и сопротивления, то есть отскок от границы полосы имеет для модуля тот же вес, что и положение цены внутри неё. В группе настроек у модуля ровно один переключатель, Premium/Discount Zones, и по умолчанию он выключен.
Метода расчёта источник не публикует. Ни длины свинга, ни глубины просмотра, ни процентных границ трёх полос на странице модуля нет, и восстановить их по описанию невозможно. Это стоит знать до того, как вы начнёте строить на зонах правило: вы не сможете сказать, от чего именно зависит их положение, и не сможете предсказать, как оно изменится при смене таймфрейма.
Зона как фильтр, а не как сигнал
Единственное аналитическое утверждение, ради которого модуль существует, формулируется как правило совпадения. Бычье условие или восходящее движение внутри зоны дисконта означает более высокую вероятность разворота. Медвежье условие внутри зоны премиума означает то же самое в обратную сторону. Грамматика этой фразы важнее её содержания: подлежащее в ней есть, и это не зона. Зона ничего не порождает, она только повышает или понижает вес того, что породил другой модуль. Использовать её как источник входов означает читать фильтр как сигнал, и это самая частая ошибка в обращении с этой частью тулкита.
Максимумы и минимумы дня, недели, месяца и квартала
Highs & Lows MTF (максимумы и минимумы старших периодов) устроен проще любого другого модуля тулкита и потому оказывается полезнее, чем ожидаешь. Работает он только с завершёнными периодами: у каждого берутся крайняя верхняя и крайняя нижняя цены, а на текущий график эта пара выносится двумя горизонтальными линиями, к которым дальше предлагается относиться как к поддержке и сопротивлению. Периодов ровно четыре, у каждого свой независимый переключатель, и все четыре по умолчанию выключены. Произвольный период задать нельзя: набор фиксирован, и это ограничение, а не настройка.
У каждой из пяти групп собственный выпадающий список стиля линии со значениями сплошная, пунктирная и точечная, а цвет задаётся отдельно для каждой пары уровней. Практический смысл раздельной настройки виден при включении сразу нескольких периодов: без разных стилей восемь горизонтальных линий сливаются в неразличимую сетку, в которой невозможно понять, какая из них недельная, а какая квартальная.
Максимум и минимум выбранного дня недели
Пятая пара уровней устроена иначе. Это отдельная функция, которая берёт не календарный период, а конкретный день недели: он выбирается одним выпадающим списком со значением по умолчанию Monday, и выбрать можно только один день за раз. Поведение в реальном времени зависит от совпадения. Если выбранный день совпадает с текущим торговым днём, уровни обновляются прямо по ходу сессии, отслеживая текущие максимум и минимум. В остальных случаях берётся последнее завершённое вхождение этого дня недели.
У функции есть оговорка, которую источник даёт отдельным примечанием: для части инструментов отдельные дни недели соответствуют закрытому рынку, и выбор такого дня может не дать ни одного уровня. Наконец, все восемь уровней прошлых периодов появляются как готовые варианты границы диапазона в модуле коррекций Фибоначчи, и без включённого переключателя соответствующего периода такая граница остаётся пустой. Разбор этой зависимости в следующей главе.
Fibonacci Retracements: сетка, которая пересобирается сама
Шесть предыдущих модулей рисуют объекты: линии структуры, коробки блоков и имбалансов, полосы зон, горизонтальные уровни прошлых периодов. Седьмой устроен принципиально иначе. Он не добавляет на график новую сущность, а раскладывает пропорциональную сетку между двумя точками, которые вычислил кто-то другой. Fibonacci Retracements (коррекции Фибоначчи) это единственная часть тулкита, надстроенная над выходами всех остальных, и именно этим она интересна.
Привычный инструмент коррекций знаком каждому, кто размечал график рукой. Выбираются две ценовые точки, между ними раскладываются уровни в известных пропорциях, дальше остаётся смотреть, как цена ведёт себя возле них. Здесь сохранён весь сценарий, кроме одного шага, и как раз этот шаг меняет жанр работы.
Две привязки вместо ручного построения
Обе точки задаются выпадающими списками: Fibonacci Top / Fibonacci Bottom (верхняя и нижняя привязка). Мышь в построении не участвует вовсе, и поставить границу на произвольный бар нельзя. Списки наполнены выходами других модулей: свинг-точками, границами зон премиума и дисконта, событиями внутренней структуры, крайними значениями ордер-блоков и имбалансов, уровнями прошлых периодов. Вы выбираете не координату, а правило, по которому координата будет вычисляться заново.
Отсюда следует главное свойство модуля. Как только структура печатает новое событие, появляется свежий ордер-блок или закрывается недельная свеча, соответствующая привязка меняет значение, и сетка перестраивается сама. Ручная разметка стареет молча: линия, поставленная неделю назад, остаётся на месте и продолжает выглядеть убедительно, хотя рынок давно ушёл. Здесь такого не случается, но платой становится потеря контроля над тем, где именно окажется край построения.
Значение None на любой из двух сторон убирает построение целиком, а не одну границу: без пары привязок раскладывать нечего.
Двадцать пять вариантов границы
Оба списка одинаковы и содержат 25 позиций вместе с None. Внутри списка позиции разложены по группам, и группы повторяют устройство тулкита: свинг-точки, зоны премиума и дисконта, события внутренней структуры, ордер-блоки, имбалансы, уровни прошлых периодов.
Списки показывают все позиции всегда, независимо от того, работает ли модуль, который эту позицию считает. Выбрав Imbalance Top при выключенных имбалансах или Previous Week High при выключенном недельном переключателе, вы получите не ошибку и не предупреждение, а пустое место там, где ожидали сетку. Проверять это стоит первым делом: внешне такое поведение неотличимо от неудачно выбранного диапазона.
Пять коэффициентов и ни одним больше
Коэффициентов ровно пять. Это пять независимых числовых полей, у каждого своя пара с переключателем подписи, и расширить набор нельзя: шестого уровня в этом модуле не существует. Переключатель Ratios по умолчанию включён и печатает численное значение коэффициента справа от линии. Сами значения коэффициентов документация не публикует, поэтому набор по умолчанию придётся прочитать в самом индикаторе.
Отдельно рисуются линии самих привязок, то есть уровни 0 и 1: за это отвечает Show Top/Bottom Levels (показывать крайние уровни), включённый по умолчанию. Без него сетка висит в воздухе, и понять, между чем и чем она построена, можно только по расположению промежуточных линий.
Anchor To Origin и правило старшей точки
Последняя настройка модуля отвечает не за расчёт, а за геометрию отрисовки. Anchor To Origin (привязка к точке формирования) решает, откуда начинать сетку слева: с бара, на котором выбранная граница сложилась, или с правого края графика. Здесь источник расходится сам с собой: справочник настроек называет привязку включённой по умолчанию, а страница модуля описывает как основное поведение противоположный вариант, построение от последнего бара с проекцией вперёд на 20 баров. За значение по умолчанию мы принимаем данные справочника и отмечаем расхождение как факт, а не выбираем за источник.
Совместимость у этой настройки ограниченная, и список поддержанных вариантов короче списка вариантов границы. Привязка работает для свинговых максимума и минимума, для внутренних максимума и минимума, а также для трёх значений группы премиума и дисконта: Premium, Equilibrium Average (среднее равновесия) и Discount. Для этих трёх точкой привязки становится более старая из двух точек, свингового максимума и свингового минимума.
Несовместимые границы ведут себя неприятно тихо: переключатель остаётся включённым, но на построение не влияет. Общее правило для случая, когда обе границы совместимы, но сложились на разных барах, простое: точкой привязки становится более старая из двух. Сетка тогда накрывает весь отрезок истории между привязками, а не только его правый конец, и читается уже не как проекция вперёд, а как разметка прошедшего движения.
Ретроспективная отрисовка: что тулкит знает в реальном времени
Страницы с таким названием в документации нет. Предупреждения о том, что часть разметки появляется задним числом, разложены по четырём страницам в виде коротких коллаутов, и порознь каждое читается как техническая мелочь. Собранные вместе, они дают самый важный вывод обо всём тулките, и посвятить им отдельную главу честнее, чем оставить их в сносках.
Свинг-точка появляется позже, чем случилась
Источник формулирует это прямо и без смягчений: свинг-точки наносятся ретроспективно и не определяются на том баре, где вы их видите. Использование их как сигнала в реальном времени объявлено недопустимым. Предупреждение редкое по откровенности, потому что признаёт неудобное: метка стоит на баре, о котором алгоритм в тот момент ещё ничего не знал.
Здесь возникает кажущееся противоречие. Та же страница утверждает, что движок определяет и рисует структуру в реальном времени. Непротиворечивое прочтение выглядит так: событие пробоя, то есть CHoCH или BOS, фиксируется в момент, когда оно происходит, а свинг-точка, относительно которой пробой посчитан, наносится назад по истории. В реальном времени вы получаете факт пробоя, но не позицию точки, от которой он отсчитан. Это разбор, а не утверждение вендора, и проверять его нужно на живом графике.
Цена подтверждения, измеренная в барах
Задержка подтверждения не абстрактна и измеряется в барах: она равна длине свинга. При внутренней длине 5 подтверждение стоит 5 баров, при свинговой длине 50 стоит 50 баров. На часовом графике вторая цифра означает, что свинговая точка встанет на своё место примерно через двое суток после того, как цена там побывала.
У остальных ретроспективных элементов свои сроки. Трендовые линии ликвидности рисуются назад по истории, как только выполнены условия отображения, и величину задержки документация не приводит. Равные максимумы и минимумы требуют подтверждённых свинг-точек, и здесь задержка равна значению числового поля модуля, которое страница модуля описывает со значением по умолчанию 3.
Что появляется на графике сразу
Про имбалансы источник не говорит ничего, и записать это надо именно так: ретроспективность не заявлена. Разница между отсутствием факта и наличием отрицания принципиальна, и достраивать её по правдоподобию нельзя. Условие формирования FVG записано через три соседние свечи и будущих баров в себе не содержит, но прямого утверждения о моменте отрисовки страница модуля не даёт.
Отдельный случай это ордер-блоки в мультитаймфреймовом режиме. Механизм запроса данных с чужого таймфрейма влияет не только на положение блока по горизонтали, но и на момент, когда данные блока становятся доступны. Практическое следствие названо в источнике прямо: уже отработанный блок может отображаться как неотработанный. Решение по такому блоку принимается на его родном таймфрейме, а не на том, куда его перенесли.
«График, на котором каждая метка стоит идеально, показывает не качество алгоритма, а свойство отрисовки.»
Как проверить это на своём графике
Проверка занимает несколько минут и не требует ничего, кроме самого TradingView. В режиме повтора баров история отматывается назад, на графике остаётся один модуль структуры рынка с включёнными подписями свинг-точек, и дальше график прокручивается вперёд по одному бару. Сопоставить нужно два бара: тот, на котором метка появилась, и тот, к которому она привязана. Расстояние между ними и есть та самая задержка, и оно совпадёт со значением поля длины.
Отсюда следует правило, которое стоит дороже любой отдельной настройки. Прошедший график убедителен всегда, потому что показывает работу алгоритма, знавшего продолжение, и качество разметки по нему не измеряется. Проверять имеет смысл только вперёд, по одному бару.
Справочник настроек: значения по умолчанию и бюджет вычислений
Справочник настроек это самая тяжёлая страница документации, и пересказывать её целиком в одном месте бессмысленно: параметры модулей уже разошлись по главам выше, каждый к своему предмету. Здесь остаётся то, что не принадлежит ни одному модулю, и сводка опубликованных значений по умолчанию, к которой удобно возвращаться из любой главы.
GENERAL STYLING: пять полей, меняющих читаемость
В группе общего оформления ровно пять полей, и ни одно из них не меняет логику расчёта. Все пять управляют читаемостью, то есть тем, поместится ли разметка в кадр и отличите ли вы одну размерность структуры от другой. Именно поэтому эти поля постоянно ищут не там, где они лежат: по смыслу они относятся к модулям, а по расположению к общему оформлению.
Значение Colored у темы структур означает, что уровни, метки и окрашивание свечей берут пользовательские цвета внутренней структуры. Значение Monochrome переводит всё в бело-серую палитру, и на загруженном графике это нередко разумнее цветного варианта. У размера метрик блока есть четвёртое значение, которого нет у остальных полей: Auto масштабирует текст так, чтобы он поместился внутри области блока.
Calculated Bars и стоимость истории
Группа CALCULATION состоит из одного поля, и это единственное место, где тулкит говорит о собственной стоимости. Calculated Bars (число рассчитываемых баров) по умолчанию 10000: первичный расчёт ограничивается указанным числом самых свежих баров. Чем меньше значение, тем быстрее считается скрипт, и на перегруженной раскладке уменьшение этого числа помогает заметнее, чем отключение отдельных модулей.
Значение 0 в этом поле означает всю доступную историю, а не отсутствие расчёта. Это самая неверно понимаемая настройка тулкита: ноль здесь читается как снятое ограничение, а не как ноль баров, и человек, поставивший его ради скорости, получает ровно противоположный результат.
Что включено сразу после установки
Значения по умолчанию заметно смещены в сторону выключенного состояния. Включёнными идут ровно десять переключателей: показ последних ордер-блоков, внутренняя активность покупок и продаж, метрики блока, средняя линия, скрытие перекрытий, зоны паттернов, подписи коэффициентов Фибоначчи, крайние уровни, привязка к точке формирования и подсветка срабатываний конструктора. Всё остальное выключено, и график сразу после установки показывает существенно меньше, чем обещает витрина тулкита.
Значения длин различаются по области применения: внутренняя структура 5, свинговая структура 50, длина ордер-блоков 5. Два совпадающих числа не случайны, поскольку оба поля управляют одним и тем же механизмом поиска свинг-точек, но названы по-разному и настраиваются независимо друг от друга.
У этой таблицы есть свойство, о котором стоит сказать прямо: она полна ровно настолько, насколько полон источник. Документация не публикует ни минимумов, ни максимумов, ни шага для числовых полей, только значения по умолчанию. Для большинства выпадающих списков не указаны и они: приведены лишь наборы вариантов. Это касается типов структуры, метода отработки у блоков и у имбалансов, чувствительности паттернов, стилей меток и темы структур. Их фактические значения придётся прочитать в самом индикаторе, и подставлять сюда правдоподобные догадки было бы хуже, чем оставить пробел.
Алерты тулкита: тридцать три условия и один вызов
Одиннадцать глав ушло на то, что тулкит рисует и как это настраивается. Эта и следующая заняты тем, что он сообщает, когда вы на график не смотрите. Вводная страница документации обещает трёхуровневую модель оповещений, но каналов доставки на деле два: конструктор пользовательских алертов, заявленный третьим уровнем, собственного канала не имеет и выходит наружу одним из этих двух. Его механику разбирает тринадцатая глава, здесь речь о самих каналах.
Два независимых механизма оповещения
Разметка на графике работает, пока вы на график смотрите. Всё остальное время за вас смотрит механизм оповещения, и устроен он в тулките двумя способами, у которых нет ничего общего, кроме результата. Первый: скрипт отдаёт в диалог алерта TradingView готовый набор условий, и вы выбираете из списка одно. Второй: скрипт отдаёт единственное условие с названием any alert() function call, а всё содержательное решается заранее, внутри настроек индикатора. Устройство обоих одинаково у всех трёх тулкитов LuxAlgo, поэтому разбирается здесь один раз и целиком.
Разница между ними практическая, а не вкусовая. Предустановленный алерт не требует ничего, кроме включённой функции: условие и частота срабатывания выбираются в диалоге TradingView, и на этом настройка заканчивается, но каждое условие стоит отдельного алерта. Второй механизм переворачивает пропорцию: алерт один, условий внутри него сколько угодно, но перечень их живёт не в TradingView, а в нижней части настроек тулкита, и о его существовании легко не догадаться.
Тридцать три предустановленных условия
Предустановленных условий тридцать три, и распределены они неравномерно. Больше всего досталось структуре рынка: двенадцать позиций, потому что каждое из двух событий существует в бычьей и медвежьей форме, CHoCH делится ещё на ведущий и поддержанный, и весь набор удваивается на две структурные размерности. Ордер-блоки дают десять условий, ликвидность шесть, имбалансы четыре, а тридцать третье отдано семейству конструктора пользовательских алертов. Тексты сообщений по умолчанию содержательны: уведомление об отработке ордер-блока приводит верхнюю и нижнюю границы зоны.
Дальше идёт наблюдение, которого в источнике нет: оно требует сопоставления двух его разделов. Перечень условий, доступных через any alert() function call, шире перечня предустановленных, и разница не косметическая. За границей предустановленного списка остаются обнаружение графического паттерна, выход цены из ордер-блока и целое семейство состояний имбаланса: новый имбаланс, отработка, нахождение внутри зоны, вход и выход. Если нужное вам событие в этом списке, выбора между механизмами у вас нет.
Один алерт на множество условий
Порядок работы со вторым механизмом фиксирован, и ни один шаг в нём не является необязательным.
- Включить в настройках тулкита функцию, к которой относится нужное событие.
- Включить сами условия в блоке переключателей внизу настроек тулкита.
- При необходимости отредактировать шаблон сообщения.
- Создать алерт в TradingView, выбрав источником Price Action Concepts.
- Выбрать условие
any alert() function callи подтвердить создание.
Первые два пункта стоит развести сознательно: включённая функция означает, что тулкит вообще рассчитывает соответствующие объекты, а включённый переключатель условия означает, что о конкретном их событии будет отправлено уведомление. Одно без другого не работает, и молчание не сопровождается ни ошибкой, ни предупреждением: график выглядит нормально, TradingView считает алерт активным, уведомлений нет.
Плейсхолдеры в тексте алерта
Поле Alert message (текст алерта) в настройках тулкита принимает не только произвольную строку, но и плейсхолдеры: имена в фигурных скобках, подставляемые значениями в момент срабатывания. Семейств три: символьные описывают инструмент, временные описывают момент, плейсхолдеры данных описывают цену и объём. Это единственное место серии, где общие плейсхолдеры разбираются целиком; следующие части приведут только собственные плейсхолдеры значений своих индикаторов.
Плейсхолдер {sector} возвращает na, когда сектора у инструмента нет, то есть на криптовалютах вы почти всегда получите именно это. Плейсхолдер {tf} отдаёт таймфрейм графика вместе с суффиксами S, D, W и M, поэтому принимающая сторона должна уметь читать не только числа. Три плейсхолдера объёма относятся к самому свежему ордер-блоку и наследуют его ограничение: без данных по объёму подставлять в них нечего. И главное: плейсхолдеры работают внутри поля сообщения тулкита и не работают в собственном поле сообщения TradingView.
Тело запроса в формате JSON
То же поле умеет отдавать не прозу, а структуру. Если уведомление адресовано не человеку, а программе, сообщение оформляется как JSON-тело запроса, и принимающий вебхук разбирает его без единого регулярного выражения. Документация приводит готовый шаблон, ниже он воспроизведён дословно: ключи не переводятся, строковые значения берутся в кавычки вместе с плейсхолдером, числовые остаются без кавычек. О самих вебхуках подробно говорилось в Части II.
{
"alert": "{default}",
"ticker": "{ticker}",
"tf": "{tf}",
"ohlcv":{
"open": {open},
"high": {high},
"low": {low},
"close": {close},
"volume": {volume},
"order block buy volume": {ob_buy_volume},
"order block sell volume": {ob_sell_volume},
"order block total volume": {ob_volume}
},
"bartime": {time}
}
Конструктор пользовательских алертов: последовательность шагов как язык
Конструктор пользовательских алертов не создаёт алерт и не заменяет предыдущую главу: он собирает одно составное условие внутри настроек тулкита, а наружу оно выходит теми же двумя маршрутами. Устройство аскетично: у каждой категории условий три элемента, переключатель включения (по умолчанию выключен), выпадающий список условия и выпадающий список Step (шаг). Вся механика берётся из третьего списка, и это тот редкий случай, когда одно поле превращает набор фильтров в язык описания сценариев.
Десять категорий условий и три внешних входа
Категорий десять. В таблицах документации поимённо читаются девять: структура рынка, ордер-блок, имбаланс, трендовая линия, паттерн, съёмы ликвидности, премиум и дисконт, сессия и объём ордер-блока. Название десятой в опубликованных материалах не зафиксировано, и достраивать его по правдоподобию нельзя: откройте группу CUSTOM ALERT CREATOR и перепишите список целиком. Премиум и дисконт стоят в этом списке особняком: предустановленных алертов у зон нет, и конструктор остаётся единственным способом получить по ним уведомление.
К десяти категориям добавлены три внешних входа. External Condition 1 и External Condition 2 сравнивают источник с источником, External Condition 3 сравнивает источник с числом. Операторов шесть: Greater Than (больше), Lower Than (меньше), Crossing Over (пересечение вверх), Crossing Under (пересечение вниз), Crossing (пересечение) и Equal (равно). Источником служит open, high, low, close либо выход любого индикатора, уже добавленного на график. В последовательность встраивается чужая логика, и конструктор перестаёт быть замкнутым на разметку тулкита.
Одна деталь в документации не сходится: список шагов у External Condition 2 описан как заканчивающийся на 10, тогда как у прочих категорий он доходит до 11. Похоже на опечатку справочника, но утверждать этого нельзя: проверьте верхнюю границу списка в индикаторе.
Шаги и правило непрерывной нумерации
Числовые значения шага от 1 до 11 задают обязательный хронологический порядок: условие шага 1 должно сработать первым, затем шага 2 и так далее, а алерт срабатывает в момент завершения последнего шага. Это иная логика, чем привычное соединение условий по «и»: такой набор проверяется на одном баре и описывает состояние рынка, а последовательность разворачивается во времени и описывает сюжет.
Правило нумерации жёстче, чем ожидаешь от выпадающего списка: шаги обязаны образовывать непрерывный ряд, начинающийся с единицы. Если минимальный использованный шаг равен 2 либо в ряду есть пропуск, скрипт возвращает ошибку, а не игнорирует лишнее условие молча. Чаще всего в эту яму попадают не при сборке последовательности, а при её разборке.
Операторы OR, All и Invalidate
Помимо чисел в списке шага есть три слова, и каждое выводит условие из цепочки по-своему. OR (шаг вне последовательности) означает, что условие вызывает алерт самостоятельно. All (фильтр для всех шагов) превращает условие в универсальное требование: оно обязано выполняться на каждом шаге, на каждом условии OR и на каждом условии инвалидации. Типовое применение: категория сессии с временным окном и значением All заставляет весь сценарий укладываться в нужные часы. Invalidate (шаг инвалидации) сбрасывает незавершённую последовательность к первому шагу; таких условий может быть несколько, и объединены они по «или».
Отдельно от операторов шага стоит выпадающий список Invalidation Behavior (режим инвалидации) с тремя взаимоисключающими значениями: None, Invalidate On Step 1 и Invalidate On Any Repeated Step. Их поведение с примерами последовательностей разобрано в Части II, в главе про Step & Match. Держите в голове одно: это одно поле с тремя значениями, а не два независимых переключателя.
Максимальный интервал и подсветка срабатываний
Maximum Step Interval (максимальный интервал между шагами) по умолчанию 10 и измеряется в барах, а не во времени. Если между соседними шагами прошло больше указанного числа баров, последовательность сбрасывается, даже когда следующий шаг был бы выполнен безупречно. Именно это поле чаще всего портит перенос готового сценария с одного таймфрейма на другой.
«Десять баров на пятиминутном графике описывают меньше часа, десять баров на дневном описывают две торговые недели. Число одно, сценарии разные.»
Highlight Custom Alert Triggers (подсветка срабатываний) по умолчанию включено: в нижней части графика появляется отметка в момент, когда составное условие оказалось истинным. Рисуется она только при действительно настроенном условии. Полезна отметка в отладке: прогнав историю, вы увидите, сколько раз последовательность вообще срабатывала, а сценарий без единой отметки за полгода описывает, скорее всего, не редкое событие, а невозможное. Сессионная категория, к слову, задаётся парой полей времени со значением по умолчанию 00:00.
Условия по объёму ордер-блока
Последняя категория работает не с событиями, а с числами. Объём ордер-блока раскрывает данные внутренней активности самого свежего блока как условия алерта, и источников данных восемь. Четыре числовые: объём покупок, объём продаж, суммарный объём и процентная доля; каждый сравнивается с вашим числом (по умолчанию 0) оператором больше, меньше или равно. Четыре оставшихся логические и возвращают истину или ложь напрямую.
Два логических условия из четырёх описывают согласие внутренней активности с типом блока, и на них в документации допущена опечатка: в обеих строках таблицы напечатан бычий ордер-блок, хотя вторая половина каждого правила относится к медвежьему. Правильная пара такая. Positive Association (положительное соответствие) истинно, когда покупок больше продаж на бычьем блоке либо покупок меньше продаж на медвежьем. Negative Association (отрицательное соответствие) истинно в зеркальных случаях.
Предусловие у конструктора то же, что и у любого алерта тулкита: базовые функции всех задействованных категорий должны быть включены. Последовательность из структуры и имбаланса при выключенном модуле имбалансов не сработает ни разу, и сообщения об этом не будет. Собранная правильно, она читается как одно предложение: вы формулируете не прогноз, а условие, при котором стоит посмотреть на график.
Эпилог
Разметка, которую Price Action Concepts наносит на график, собрана из немногого: двух событий структуры, двух структурных размерностей, зон трёх видов, механизма отработки, позиционных фильтров и сетки Фибоначчи, пересобирающейся сама. Цена этой разметки названа честно: часть элементов появляется задним числом, часть требует данных по объёму, часть встречается только на определённых классах инструментов, а метод расчёта одного модуля вообще не опубликован. Ни один элемент разметки не является торговым решением: тулкит отвечает на вопрос, где вы условились считать структуру сломанной, и на этом его работа заканчивается.
Часть IV отдана тулкиту Signals & Overlays и построена вокруг одного утверждения: сигнал не является входом. Этот тулкит живёт на том же ценовом графике и потому конкурирует с разметкой Price Action Concepts за площадь кадра напрямую. Там появятся подтверждающие и контртрендовые сигналы, ML-классификатор, пять оверлеев, панель показателей и другая логика чувствительности. Таблицу значений по умолчанию из одиннадцатой главы держите под рукой: у двух тулкитов есть настройки, совпадающие по названию и расходящиеся по поведению. А за архитектурой алертов и за механикой конструктора Часть IV будет отсылать сюда.
Источники
Фактическую основу этой части составляют десять страниц раздела Price Action Concepts в документации LuxAlgo: вводная страница тулкита, страницы структуры рынка, объёмных ордер-блоков, ликвидности, имбалансов, зон премиума и дисконта, уровней прошлых периодов, коррекций Фибоначчи, алертов, а также справочник настроек. Композиция глав авторская и с оглавлением источника не совпадает.
В шести местах документация расходится сама с собой, и каждое расхождение отмечено в тексте. Описание направления меток CHoCH допускает двойное чтение. Значение по умолчанию у размера метрик ордер-блока названо на странице модуля и не продублировано в справочнике. Метод Average описан на двух страницах с разной точностью: справочник говорит о пересечении средней линии ценой закрытия, страница модуля просто о цене. Равные максимумы и минимумы на странице модуля описаны числовым полем длительности, а в справочнике настроек выпадающим списком со значениями Short-Term и Long-Term. Значение по умолчанию у привязки к точке формирования на двух страницах подано по-разному, за основу взят справочник. Верхняя граница списка шагов у External Condition 2 названа десятым шагом, тогда как у прочих категорий список доходит до одиннадцатого. Отдельно от этих шести стоит опечатка источника: в таблице условий по объёму ордер-блока обе строки соответствий напечатаны с упоминанием бычьего блока, и пара восстановлена по смыслу.
Стоит сказать и о том, чего в источнике нет вовсе. Документация не публикует метод расчёта зон премиума и дисконта, не приводит минимумы, максимумы и шаг числовых полей и не указывает значения по умолчанию для большинства выпадающих списков. Всё это помечено в тексте как неизвестное и не достроено по правдоподобию. Дисклеймер вендора лежит по адресу luxalgo.com/legal/disclaimer. Значения и ссылки сверялись с документацией в августе 2026 года.
Похожие посты
LuxAlgo. Часть VII: скринеры, десять рынков в одной таблице
Скринер LuxAlgo сжимает целый тулкит до одной строки таблицы и позволяет держать в поле зрения до десяти тикеров сразу, каждый в своём таймфрейме. Разбираем устройство всех трёх скринеров: элементы и рейтинг, фильтрацию и сортировку, различия между Signals & Overlays, Price Action Concepts и Oscillator Matrix, а также трение, которое возникает при работе.
LuxAlgo. Часть VI: Alert Scripting, язык условий для алертов
В настройках трёх тулкитов LuxAlgo спрятано многострочное текстовое поле. В нём живёт собственный язык: он умеет то, чего не умеет конструктор пользовательских алертов, и умеет описывать не событие, а сюжет из нескольких событий, растянутый на десятки баров. Разбираем язык целиком: словарь, грамматику, побочные эффекты и подводные камни.
LuxAlgo. Часть V: Oscillator Matrix, осциллятор, который спорит сам с собой
Пятая часть руководства по LuxAlgo целиком отдана тулкиту Oscillator Matrix. Разбираем, как устроены HyperWave и его сигнальная линия, почему дивергенции упираются в жёсткий предел в 500 линий, что показывают пороги Money Flow, чем кружок отличается от треугольника в сигналах разворота, как считается конфлюэнс и какие семнадцать событий тулкит отдаёт в алерты. В конце: сводка всех опубликованных значений по умолчанию.
Комментарии
Пока нет комментариев. Будьте первым.