От новичка до эксперта: Создание индикатора для определения зон ликвидности
Содержание:
Введение
В нашей предыдущей статье мы предприняли глубокое исследовательское путешествие, чтобы выявить потенциальные соотношения между зонами ликвидности и их последующими диапазонами пробоя. Статистически наиболее последовательным концептуальным соотношением, которое было получено, было 1:3 (глубина зоны ликвидности к диапазону пробоя/импульса).
Теперь, когда мы определили это ключевое значение, очевиден следующий логический шаг: превратить информацию в практическое преимущество. Трейдеры во всем мире хотят знать, как именно это соотношение 1:3 становится практически полезным? Ответ кроется в разработке стратегии.
Сегодня мы сконцентрируем наше обсуждение на создании пользовательского индикатора, который воплотит эти соотношения в жизнь, преобразуя теоретические наблюдения в практические сигналы в режиме реального времени на ваших графиках. Прежде чем перейти к этапу реализации, ниже я сначала рассмотрю основную концепцию, чтобы убедиться, что она полностью соответствует требованиям.
Обзор концепции
Зоны ликвидности представляют собой периоды консолидации рынка — четкие диапазоны, в которых цена колеблется между двумя четко определенными уровнями с течением времени. Для наглядности давайте использовать цену A и цену B в качестве концептуальных опорных точек для границ основы, а не фиксированных или абсолютных уровней цен. При типичной бычьей настройке Цена A представляет собой минимум основы, в то время как Цена B отмечает максимум основы; цена колеблется между этими двумя уровнями на этапе консолидации. В медвежьих сценариях эта структура просто зеркально отражается (с Ценой A в качестве максимума и Ценой B в качестве минимума основы). Несмотря на то, что во время этих пауз рынок выглядит сбалансированным, институциональные участники активно накапливают или распределяют позиции, при этом ликвидность намеренно формируется вокруг экстремумов диапазона.
В конце концов, цена выходит из этого равновесия в результате импульсивного пробоя. В бычьих условиях этот пробой происходит выше Цены B (максимум основы), в то время как в медвежьих условиях он происходит ниже Цены A (минимум основы). Пробой устанавливает новый контрольный уровень, который мы обозначаем как Цена C — максимум, образованный импульсивным ростом в бычьих случаях, или минимум, образованный импульсивной распродажей в медвежьих случаях. Эти движения редко бывают случайными; обычно они вызваны поглощением оставшейся ликвидности, включая ордера стоп-лосс, размещенные за пределами диапазона, ордера пробоя от розничных участников и заблокированные позиции на неправильной стороне консолидации.
В условиях высокой вероятности - будь то сценарии продолжения после снятия ликвидности или сценарии разворота после более глубоких манипуляций — цена не может просто бесконечно расти после пробоя. Вместо этого она часто возвращается к первоначальной зоне ликвидности, определяемой диапазоном A–B. Такое поведение отражает основные рыночные механизмы: импульсивное движение приводит к смещению и неэффективности, ликвидность собирается на одной стороне диапазона, и цена откатывается назад, чтобы восстановить равновесие на рынке, смягчить неэффективность или привлечь дополнительную ликвидность для следующей фазы направленного движения. На иллюстрации ниже (рис. 1) концепция представлена графически.

Рис. 1. Концептуальное представление спроса на ликвидность
В наших предыдущих исследованиях это поведение оценивалось скорее количественно, чем визуально. При повторяющихся высококачественных сетапах на нескольких инструментах и таймфреймах мы измерили взаимосвязь между глубиной зоны ликвидности (расстоянием между Ценами A и B) и величиной импульсивного пробоя (от границы диапазона до Цены C). Из полученных данных последовательно выводилась повторяющаяся пропорциональная зависимость, чаще всего приближающаяся к соотношению 1:3 (глубина зоны ликвидности к величине пробоя/импульса), которая формирует статистическую основу для модели, реализованной и протестированной в данном исследовании.
Это наблюдаемое соотношение служит практическим примером того, как институциональное управление ликвидностью часто приводит к асимметричному росту после этапов консолидации. Во многих случаях на реальном рынке более узкие зоны ликвидности (например, диапазоны в 20-40 пипсов на младших таймфреймах) предшествуют значительно более крупным движениям смещения (часто на 60-120 пипсов и более), когда сторона пробоя примерно в три раза (или более) превышает предыдущую глубину диапазона перед значимым откатом или повторным тестированием. Такие паттерны тесно согласуются с общепринятыми Концепциями умных денег (SMC) и наблюдениями по стратегии трейдинга Inner Circle Trader (ICT), согласно которым снятия ликвидности приводят к сильным импульсивным продолжениям или разворотам за счет сбора сгруппированных ордеров и стимулирования последующей фазы движения.
Тем не менее, эта пропорциональная взаимосвязь не является универсальной константой для всех валютных пар, рыночных условий, таймфреймов или режимов волатильности. Например, пары с высоким трендом во время крупных новостных событий могут демонстрировать рост, близкий к 1:4 или 1:5, в то время как неустойчивые или колеблющиеся сессии (такие как азиатская консолидация на индексах) часто дают меньшие мультипликаторы (например, 1:1.5–1:2.5). Различия в классах активов - форекс по сравнению с индексами, криптовалютой или сырьевыми товарами — еще больше увеличивают вариативность из—за различных пулов ликвидности, динамики участников и характеристик среднего истинного диапазона.
Таким образом, выявленная нами статистическая тенденция представляет собой скорее вероятностный ориентир, чем жесткое правило. Такая неотъемлемая изменчивость подчеркивает важность адаптивности: включив в индикатор настраиваемый входной параметр (например, RatioMultiplier), трейдеры могут эмпирически протестировать и точно настроить пороговое значение, чтобы оно наилучшим образом соответствовало конкретным инструментам, таймфреймам или стилю торговли. Значение "3×" может быть оптимальным для пары XAUUSD M15, в то время как значение "2,5×" подходит для пары GBPJPY M15, или "4×" лучше подходит в периоды высокой волатильности, такие как выпуски NFP.
В конечном счете, реальная выгода этого исследования заключается не в точном определении неизменной константы, а в демонстрации того, что существует измеримая, повторяющаяся взаимосвязь между размером спроектированных зон ликвидности и последующим импульсом пробоя. До применения этого количественного подхода такие зоны часто оценивались субъективно с помощью визуальных сигналов, таких как "плотность" диапазона или кластеры теней. Количественно оценивая эту переменную, мы выявляем объективное преимущество — выявляем установки, при которых рынок исторически обеспечивал асимметричный потенциал прибыли после резкого снятия ликвидности. Это понимание служит основным обоснованием для разработанного здесь индикатора: преобразование повторяющейся институциональной модели поведения в настраиваемый инструмент в режиме реального времени, позволяющий трейдерам более систематично ориентироваться на интеллектуальный денежный поток.
Наиболее логичным выводом из нашего анализа было приблизительное соотношение 1:3 — импульсная сторона пробоя часто примерно в три раза (или более) превышает глубину предыдущей зоны ликвидности. Это представлено не как жесткое универсальное правило, а как ориентир с высокой вероятностью, который тесно согласуется с устоявшимися Концепциями умных денег (SMC) и рыночными моделями Inner Circle Trader (ICT). На практике более мелкие, четко очерченные зоны консолидации часто предшествуют более крупным, более взрывоопасным перемещениям после того, как остатки ликвидности сняты и структура рынка меняется.
Теперь, когда эта динамика четко определена — зона ликвидности → импульсивный пробой (часто ~ 1:3) → повторное тестирование с высокой вероятностью, - у нас есть надежная, воспроизводимая структура, которая отражает институциональный цикл манипуляций, смещения и коррекции в основе ценового движения, обусловленного ликвидностью.
Данная концепция служит основой для следующего этапа проекта: преобразования теоретических знаний в практический, наглядный торговый инструмент. Разрабатываемый нами пользовательский индикатор предназначен для следующих целей:
- Автоматически обнаруживать и выделять зоны с допустимой ликвидностью на основе объективных критериев консолидации.
- Измерять и отслеживать глубину каждой выявленной зоны.
- Распознавать потенциальные пробои и вычислять формирующийся импульсный диапазон в режиме реального времени.
- Визуализировать наблюдаемое соотношение 1:3 (с полной гибкостью пользовательской настройки соотношения) непосредственно на графике.
- Выделять и, при необходимости, оповещать о потенциальных зонах повторного тестирования, когда цена возвращается к исходным границам ликвидности после пробоя, соответствующего критериям.
Кодируя эту логику в MQL5, мы переходим от концептуального наблюдения к исполняемой модели, интегрированной в график. В результате получается объективный инструмент, который снижает субъективность, отфильтровывает шум и позволяет трейдерам лучше согласовывать входы с потоком институциональных ордеров, что в конечном итоге улучшает тайминг, соотношение риска и прибыли и общую уверенность в установках как продолжения, так и разворотов.
В следующем разделе перейдем к практической реализации, подробно описывая логику MQL5, ключевые переменные, правила определения зон, условия проверки пробоя и методы визуализации, необходимые для воплощения этой рыночной модели в жизнь на графике.
Реализация
Объявление индикаторов и вводные данные
В верхней части индикатора определяем область применения, назначение и возможность настройки инструмента. Индикатор предназначен для работы непосредственно в окне графика и предоставляет целенаправленный набор входных данных, управляющих как логикой, так и визуализацией. Такие параметры, как LookbackBars и RatioMultiplier, определяют, насколько далеко алгоритм будет искать действительные основы ликвидности и насколько сильным должно быть импульсивное движение относительно своей основы. Визуальные вводные данные, включая цвета, непрозрачность, стили буфера и длину расширения, позволяют трейдеру адаптировать презентацию без изменения базовой логики. Такое разделение обеспечивает стабильность аналитической модели и гибкость визуальных предпочтений.
#property indicator_chart_window #property indicator_buffers 8 #property indicator_plots 4 input int LookbackBars = 500; input double RatioMultiplier = 3.0; input int ZoneExtendBars = 50; input color DemandColor = clrLimeGreen; input color SupplyColor = clrTomato; input int ZoneOpacity = 40;
Глобальные массивы и буферы индикаторов
Далее объявляем глобальные массивы для ценовых данных и буферов индикаторов. Вместо того чтобы полагаться исключительно на входящие массивы OnCalculate, мы явно копируем наши собственные массивы OHLC и time и управляем ими. Такой подход дает нам полный контроль над индексацией, обеспечивает согласованность при расширении зон в будущее и позволяет избежать неоднозначности при нанесении баров на объекты. Восемь буферов индикаторов выполняют различные функции: сохраняют границы зон, сигнализируют о наличии зон и сохраняют информацию о времени для управления жизненным циклом. Такая структура позволяет индикатору функционировать как визуально, так и программно, если он впоследствии будет использоваться советником или другим индикатором.
double OpenArr[], HighArr[], LowArr[], CloseArr[]; datetime TimeArr[]; // Buffers double DemandHigh[], DemandLow[], SupplyHigh[], SupplyLow[]; double ZoneSignal[], ZoneStartTime[], ZoneEndTime[], ZoneType[];
Логика инициализации (OnInit)
В процессе инициализации мы нормализуем значения точек для корректной обработки как стандартных, так и дробных инструментов ценообразования. Затем настраиваем метаданные индикатора, привязываем буферы и явно инициализируем все буферы значением EMPTY_VALUE, чтобы предотвратить отрисовку артефактов. Каждый график настраивается независимо, что позволяет визуально различать зоны спроса и предложения, используя при этом общий стиль визуализации. Наконец, все ранее нанесенные зоны очищаются, чтобы гарантировать, что график запускается в чистом, детерминированном состоянии. Это гарантирует, что каждая загрузка индикатора отражает только текущие расчеты.
int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME, "Liquidity Zone 1:3 Model"); SetIndexBuffer(0, DemandHigh, INDICATOR_DATA); SetIndexBuffer(1, DemandLow, INDICATOR_DATA); SetIndexBuffer(2, SupplyHigh, INDICATOR_DATA); SetIndexBuffer(3, SupplyLow, INDICATOR_DATA); SetIndexBuffer(4, ZoneSignal, INDICATOR_CALCULATIONS); SetIndexBuffer(5, ZoneStartTime, INDICATOR_CALCULATIONS); SetIndexBuffer(6, ZoneEndTime, INDICATOR_CALCULATIONS); SetIndexBuffer(7, ZoneType, INDICATOR_CALCULATIONS); ArrayInitialize(DemandHigh, EMPTY_VALUE); ArrayInitialize(SupplyHigh, EMPTY_VALUE); DeleteAllZones(); return INIT_SUCCEEDED; }
Очистка и управление объектами (OnDeinit и DeleteAllZones)
Надлежащая очистка данных имеет решающее значение для объектно-ориентированных индикаторов. При удалении или пересчете индикатора мы систематически удаляем все объекты графика, созданные этим инструментом, используя строгое соглашение об именовании. Это предотвращает накопление объектов, загромождение графиков и снижение эффективности. Централизация логики удаления в отдельной функции обеспечивает согласованное поведение при повторной инициализации, изменении таймфреймов или ручном удалении.
void OnDeinit(const int reason) { DeleteAllZones(); } void DeleteAllZones() { for(int i = ObjectsTotal(0) - 1; i >= 0; i--) { string name = ObjectName(0, i); if(StringFind(name, "LQ_ZONE_") == 0) ObjectDelete(0, name); } }
Полезные функции: Отображение диапазона свеч и времени
Чтобы сохранить основную логику читаемой и пригодной для повторного использования, выделяем общие операции во вспомогательные функции. Функция CandleRange() позволяет рассчитать диапазон максимумов и минимумов бара, что повышает наглядность при сравнении базовых и импульсных свечей. Функция GetTimeForBar() обеспечивает точное отображение времени даже при расширении зон за пределы доступных исторических баров. Это особенно важно для проектирования зон в будущем, где еще не существует прямых временных меток.
double CandleRange(int index) { return HighArr[index] - LowArr[index]; } datetime GetTimeForBar(int index) { if(index < ArraySize(TimeArr)) return TimeArr[index]; int delta = index - ArraySize(TimeArr) + 1; return TimeArr[ArraySize(TimeArr) - 1] + PeriodSeconds() * delta; }
Логика рендеринга зоны (DrawZone)
Функция DrawZone() отвечает за преобразование обнаруженной базы ликвидности в видимый объект графика. Используя временные и ценовые экстремумы базовой свечи, мы строим прямоугольник, который простирается вперед на определенное пользователем количество баров. Функция обрабатывает как исторические сценарии, так и сценарии прямой проекции, применяет соответствующие цвета и степень прозрачности, а также обеспечивает неинтерактивность объектов и их фоновую визуализацию. Это позволяет сохранить информативность зон, не мешая ручному анализу или торговым действиям.
void DrawZone(string name, datetime t1, datetime t2, double high, double low, color clr) { ObjectCreate(0, name, OBJ_RECTANGLE, 0, t1, high, t2, low); ObjectSetInteger(0, name, OBJPROP_COLOR, clr); ObjectSetInteger(0, name, OBJPROP_BACK, true); ObjectSetInteger(0, name, OBJPROP_TRANSPARENCY, ZoneOpacity); }
Буферное заполнение зон (FillZoneBuffers)
В то время как прямоугольники обеспечивают визуальную четкость, буферы позволяют представлять зоны на основе данных. Эта функция синхронизирует значения буфера со сроком службы прямоугольника, границами зоны заполнения и сигнальными маркерами на всех барах, охватываемых зоной. Сохраняя время начала и окончания в специальных буферах, мы сохраняем полную временную информацию о каждой зоне. Такое двойное представление — объекты для визуализации и буферы для логики — делает индикатор расширяемым и готовым к работе с советником.
void FillZoneBuffers(int start, int end, double high, double low, bool isDemand) { for(int i = start; i <= end; i++) { if(isDemand) { DemandHigh[i] = high; DemandLow[i] = low; ZoneType[i] = 1; } else { SupplyHigh[i] = high; SupplyLow[i] = low; ZoneType[i] = -1; } ZoneSignal[i] = 1; } }
Обслуживание буферов (ClearOldBuffers)
Рынки движутся вперед, и зоны в конечном итоге истекают. Эта функция гарантирует, что значения буфера будут очищены по истечении прогнозируемого срока службы зоны. Вместо того чтобы очищать буферы вслепую, мы проверяем срок действия, чтобы избежать преждевременного удаления активных зон. Такой подход обеспечивает чистоту памяти, предотвращает ложные сигналы и гарантирует, что видимыми и доступными остаются только соответствующие структуры.
void ClearOldBuffers(int index) { if(ZoneEndTime[index] < TimeCurrent()) { DemandHigh[index] = EMPTY_VALUE; SupplyHigh[index] = EMPTY_VALUE; ZoneSignal[index] = EMPTY_VALUE; } }
Основной цикл расчета (OnCalculate)
Основой индикатора является OnCalculate. Здесь мы копируем необходимые данные о ценах, применяем индексацию рядов и определяем, сколько баров следует обработать, исходя из установленных пользователем ограничений. Алгоритм сканирует исторические бары в поисках простого, но мощного паттерна: основу консолидации, за которой следует импульсивная свеча в том же направлении, диапазон которой соответствует или превышает заданный порог соотношения. Когда такое условие выполняется, базовая свеча классифицируется как валидная зона ликвидности и передается в процедуры рисования и буферизации. Эта логика напрямую реализует соотношение ликвидности и импульса 1:3, выявленное в нашем исследовании, преобразуя статистическую информацию в действенный сигнал, основанный на графике.
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[]) { ArraySetAsSeries(time, true); ArraySetAsSeries(high, true); ArraySetAsSeries(low, true); CopyTime(_Symbol, _Period, 0, LookbackBars, TimeArr); CopyHigh(_Symbol, _Period, 0, LookbackBars, HighArr); CopyLow (_Symbol, _Period, 0, LookbackBars, LowArr); for(int i = LookbackBars - 2; i >= 1; i--) { double baseRange = CandleRange(i); double impulseRange = CandleRange(i - 1); if(impulseRange >= baseRange * RatioMultiplier) { bool bullish = CloseArr[i - 1] > OpenArr[i - 1]; string name = "LQ_ZONE_" + IntegerToString(i); datetime t1 = TimeArr[i]; datetime t2 = GetTimeForBar(i + ZoneExtendBars); DrawZone(name, t1, t2, HighArr[i], LowArr[i], bullish ? DemandColor : SupplyColor); FillZoneBuffers(i, i + ZoneExtendBars, HighArr[i], LowArr[i], bullish); } } return rates_total; }
Заключительные соображения по реализации
Такая реализация намеренно отдает предпочтение ясности и структурной дисциплине, а не чрезмерной оптимизации. Каждый раздел логики отражает концептуальный этап рыночной модели: идентификацию, валидацию, проектирование и управление жизненным циклом. Просматривая код таким образом, читатель может ясно увидеть, как институциональное поведение — консолидация, смещение и восстановление — преобразуется в детерминированные правила. Что еще более важно, индикатор остается адаптивным: можно настраивать коэффициенты, добавлять фильтры и улучшать визуализацию без ущерба для основного фреймворка.
Теперь, когда логика полностью определена и реализована, следующим шагом является переход от теории и структуры к проверке с помощью тестирования. Использование этого инструмента на графике позволяет наблюдать соотношение между основой и импульсом в соотношении 1:3 в реальных рыночных условиях, для различных инструментов, сессий и режимов волатильности. Применяя индикатор к нескольким парам и таймфреймам, мы можем оценить, насколько стабильно держится соотношение, где оно работает лучше всего, а где рыночный контекст вносит изменения. Этот этап тестирования направлен не на то, чтобы заставить модель соответствовать каждому сценарию, а на сбор практических данных, уточнение пороговых значений и подтверждение того, что статистическая информация преобразуется в повторяемое, релевантное для сделки поведение при воздействии реального ценового движения.
Тестирование
После успешной компиляции без ошибок мы прикрепили индикатор к живому графику для проверки в режиме реального времени. В приведенном ниже скриншоте мы демонстрируем его работу на паре XAUUSD (золото/доллар США), высоколиквидном инструменте, в котором структуры, ориентированные на ликвидность, особенно заметны благодаря институциональному участию.

Рис. 2. Тестирование индикатора зоны ликвидности на паре XAUUSDmicro
Выявленные зоны ликвидности удивительно хорошо соответствовали реальному движению цены:
- Зоны были точно расположены на предыдущих диапазонах консолидации.
- Пробои из этих зон неизменно приводили к импульсивным движениям, которые соответствовали (или превышали) соотношению по умолчанию 1:3 (глубина зоны к величине пробоя), подтверждая статистическую основу нашего предыдущего исследования.
Наиболее обнадеживающим является то, что настройка соотношения по умолчанию (3.0) на паре XAUUSD работала эффективно, а соответствующие настройки запускали чистые зоны с высокой вероятностью, которые соответствовали наблюдаемому институциональному поведению. Каких-либо немедленных корректировок не потребовалось, что подтвердило то, что модель хорошо адаптируется от исследований к практическому применению на этом символе.
Дополнительным примечательным наблюдением является относительная редкость квалифицирующих настроек. Строгие критерии (последовательность бычьих/медвежьих свечей + диапазон пробоя ≥ 3 × базовый диапазон) естественным образом отсеивают маргинальные или шумные консолидации. Такая ограниченность может быть преднамеренным преимуществом для трейдеров, стремящихся сократить чрезмерную торговлю: индикатор высвечивает только структуры, ориентированные на ликвидность с более высокой степенью уверенности, поощряя терпение и выборочные входы в соответствии с более сильными институциональными намерениями.
Я пошел еще дальше, протестировав индикатор на высоковолатильных инструментах — в первую очередь на индексе волатильности Volatility Index (75s). При значении RatioMultiplier, полученном в результате исследования, равном 3,0, индикатор подавал очень мало сигналов. Значимое определение зоны стало возможным только после снижения коэффициента до 2,0, хотя цена продолжала придерживаться установленных уровней благодаря четким ценовым реакциям.
Я наблюдал аналогичное поведение на паре EURUSD, где было обнаружено только ограниченное количество зон с коэффициентом по умолчанию, пока множитель не был скорректирован в сторону понижения. Эти наблюдения подтверждают важный вывод: хотя соотношение 1:3 обеспечивает статистически достоверную основу, оптимальная эффективность требует адаптивности. Различные инструменты реагируют на различное соотношение импульса к основе в зависимости от присущей им волатильности и структуры рынка.
Этот вывод подтверждает решение использовать соотношение в качестве настраиваемых вводных данных. Это позволяет трейдерам и исследователям изменять пороговое значение, изучать альтернативные соотношения и калибровать модель под конкретные инструменты, а не навязывать одно статичное правило. На рисунках 3 и 4 ниже показаны эти сравнительные результаты по различным инструментам.

Рис. 3. Тестирование на индексах волатильности

Рис. 4. Тестирование на паре EURUSD
Заключение
Мы успешно воплотили концепцию соотношения основы и импульса в функциональный индикатор зоны ликвидности. Результаты подтверждают четкую структурную взаимосвязь между основой консолидации — будь то спрос или предложение — и последующим импульсом к пробою. Хотя в нашем предыдущем исследовании соотношение 1:3 считалось хорошим средним показателем, дальнейшее тестирование показало, что такая пропорция не является универсальной. Оптимальное соотношение варьируется в зависимости от инструментов и рыночных условий, а это означает, что фиксированные настройки могут последовательно работать не во всех сценариях.
Надеюсь, что эта статья дала вам практическую информацию. Наша будущая работа будет сосредоточена на воплощении этих концепций в полностью автоматизированную торговую систему, дальнейшей проверке идей путем систематического тестирования и исполнения в режиме реального времени. Для ознакомления ниже представлены основные уроки и вспомогательные приложения.
Основной урок
| Основной урок | Описание: |
|---|---|
| Соотношение зоны ликвидности и импульса пробоя - это измеримый рыночный паттерн. | Исследования неизменно показывали повторяющуюся взаимосвязь между глубиной зон консолидации/ликвидности и размером последующего импульсивного пробоя, чаще всего примерно 1:3 в среднем по многим высококачественным сетапам. |
| Это соотношение является ориентиром с высокой вероятностью, а не универсальной константой. | Хотя соотношение 1:3 хорошо зарекомендовало себя в качестве начальной точки для нескольких инструментов (например, XAUUSD), оно значительно варьируется в зависимости от пары, класса активов, таймфрейма и рыночных условий и требует корректировки (например, 2.0 для Volatility 75 Index или нестабильных сессий), чтобы охватить действительные, надежные зоны, не упуская возможностей и не добавляя шума. |
| Гибкость, обеспечиваемая вводом данных пользователем, является ключом к практическому применению. | Делая RatioMultiplier настраиваемым, индикатор может быть адаптирован к любому символу или стилю торговли. Трейдеры могут эмпирически тестировать и оптимизировать значение по каждому инструменту, превращая статистические наблюдения в персонализированные, объективные преимущества, которые соответствуют институциональному поведению ликвидности на различных рынках. |
| Структура с более старшими таймфреймами повышает надежность зон ликвидности. | Использование старших таймфреймов для определения основ ликвидности и величин импульсов обеспечивает более четкие структуры и более стабильные соотношения. Эти зоны, как правило, остаются в силе, когда цена позже анализируется на младших таймфреймах, что усиливает нисходящий характер рыночного поведения, обусловленного ликвидностью. |
| Количественная оценка преобразует субъективные концепции в воспроизводимую логику. | Преобразуя визуальные интерпретации спроса и предложения в измеримые правила - базовый диапазон, величину импульса и пороговые значения соотношения, - мы устраняем неоднозначность и обеспечиваем последовательное обнаружение, тестирование на истории, автоматизацию и дальнейшую статистическую обработку. |
Вложения
| Название исходного файла | Описание |
|---|---|
| Liquidity_Zone_Indicator.mq5 | Пользовательский индикатор MetaTrader 5, который определяет и визуализирует зоны ликвидности (спроса и предложения) на основе количественного соотношения между базовой и импульсной величинами. Индикатор определяет основы консолидации, проверяет импульсы пробоев с помощью настраиваемого коэффициента умножения, полученного на основе статистических исследований, проецирует зоны на график вперед и выделяет области повторного тестирования с высокой вероятностью. Разработан таким образом, чтобы его можно было адаптировать к различным инструментам и таймфреймам, с полностью настраиваемыми параметрами для тестирования, калибровки и дальнейшей автоматизации. |
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная статья: https://www.mql5.com/en/articles/20986
Предупреждение: все права на данные материалы принадлежат MetaQuotes Ltd. Полная или частичная перепечатка запрещена.
Данная статья написана пользователем сайта и отражает его личную точку зрения. Компания MetaQuotes Ltd не несет ответственности за достоверность представленной информации, а также за возможные последствия использования описанных решений, стратегий или рекомендаций.
Осциллятор Parafrac V2: Интеграция Parabolic SAR и среднего истинного диапазона (Average True Range)
Знакомство с языком MQL5 (Часть 31): Освоение API и функции WebRequest в языке MQL5 (V)
Нейросети в трейдинге: Масштабируемые трансформеры со структурной декомпозицией признаков (Основные компоненты)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Если цена не придет по этому лимитному ордеру, то сделка не состоится, верно? Но если сделка необходима, вам придется открыться рыночным ордером, чтобы убедиться, что она произойдет. Вы можете сделать это где угодно, но результат будет сильно отличаться в зависимости от места.
Есть ли разница - купить условные 1000 контрактов в диапазоне 5 пунктов или с огромным проскальзыванием в диапазоне 50 пунктов? Конечно, есть, во втором случае вы покупаете дороже и менее выгодно. Любой дурак будет покупать таким образом, это не профессионально. Поэтому крупный участник рынка должен думать, в каком месте есть подходящие условия для открытия крупной сделки, а в каком - нет.
Типы ордеров и их согласование - это основы, спасибо, но все немного сложнее.
Недостаток в том, что вы создали ложную дилемму. Вы предполагаете сценарий рыночного ордера, как будто это неизбежная реальность для крупных участников, и последствия проскальзывания этого рыночного ордера, чтобы оправдать концепцию зон ликвидности. Это круговая порука, вы пришли к необходимости "хорошего места" для исполнения только потому, что сначала предположили, что используете рыночный ордер.
Ответ на ваш собственный гипотетический вопрос прост:Не используйте рыночный ордер. Если сделка "необходима", вы все равно выставляете лимит по нужной вам цене и ждете. Если он не исполняется, вы либо корректируете свою цену, либо сделка не происходит. Не существует сценария, когда профессиональная организация говорит: "Мы должны торговать прямо сейчас по любой цене", а затем решает эту проблему, ища на графике зону с кластеризованнымистопами. Крупные участники не торгуют с (высоким) кредитным плечом, они никогда не торопятся.
По сути, вы создали проблему - проскальзывание рыночного ордера (потребляющего ликвидность), - которую уже решает лимитный ордер (обеспечивающий ликвидность), и используете эту придуманную проблему для подтверждения теории зоны ликвидности.
Учитывая использование лимитного ордера, то есть предоставление ликвидности рынку, нет причин "охотиться" или "хватать" ликвидность, они фактически предоставляют ее сами, ожидая, пока те, кто спешит, заполнят свой ордер. Все просто, не нужно ничего усложнять.
Недостаток в том, что вы создали ложную дилемму. Вы предполагаете сценарий рыночного ордера, как будто это неизбежная реальность для крупных участников, и последствия проскальзывания этого рыночного ордера, чтобы оправдать концепцию зон ликвидности. Это круговая порука, вы пришли к необходимости "хорошего места" для исполнения только потому, что сначала предположили, что используете рыночный ордер.
Ответ на ваш собственный гипотетический вопрос прост:Не используйте рыночный ордер. Если сделка "необходима", вы все равно выставляете лимит по нужной вам цене и ждете. Если он не исполняется, вы либо корректируете свою цену, либо сделка не происходит. Не существует сценария, когда профессиональная организация говорит: "Мы должны торговать прямо сейчас по любой цене", а затем решает эту проблему, ища на графике зону с кластеризованнымистопами. Крупные участники не торгуют с (высоким) кредитным плечом, они никогда не торопятся.
По сути, вы создали проблему - проскальзывание рыночного ордера (потребляющего ликвидность), - которую уже решает лимитный ордер (обеспечивающий ликвидность), и используете эту придуманную проблему для подтверждения теории зон ликвидности.Допустим, вы не используете рыночные ордера вообще, а торгуете исключительно лимитными ордерами. Однажды вы окажетесь в ситуации, когда вам придется подтягивать свой лимитный ордер вслед за убегающей ценой и покупать все выше и выше. Результат тот же самый: вы купили в диапазоне 50 пунктов по невыгодной средней цене.
А в жизни бывает все что угодно, и срочная необходимость по любым причинам в числе факторов, которые вынуждают действовать прямо сейчас, а не ждать у моря погоды. Более проворный конкурент выхватит нужную ликвидность у вас из под носа, а рынок пойдет дальше без вас - вы не можете себе этого позволить, если уверены, что цена вырастет.
По сути все находятся перед одинаковым выбором: гарантированно купить чуть менее выгодно сегодня, или подождать лучшей цены, но тогда есть риск, что завтра придется покупать уже дороже.
Поэтому важно знать, в каком месте будет всплеск ликвидности, чтобы совершить сделку в нужном крупном объеме, а не действовать наугад и вслепую. Ценовое пространство не однородно, это пересеченная местность с разной плотностью "поверхности под ногами" в разных местах.
Поэтому важно знать, в каком месте будет всплеск ликвидности, чтобы совершить сделку в необходимом большом объеме, а не действовать наугад и вслепую. Ценовое пространство не является однородным, это пересеченная местность с разной плотностью "поверхности под ногами" в разных местах.
Откуда вы знаете? Каков реальный механизм, с помощью которого крупный участник определяет, где произойдет следующий всплеск ликвидности?
Графики - это производное, запаздывающее представление того, что уже произошло в книге заявок. Фактическая информация о том, где сейчас находится ликвидность, содержится в данных 2-го уровня - фактической книге заявок, времени и продажах, а не в свечных формациях.
Институты, работающие с крупными объемами, имеют прямой доступ к этим реальным данным о микроструктуре. У них есть отношения с прайм-брокерами, они видят реальные потоки, используют системы алгоритмического исполнения, построенные на анализе реального портфеля заказов. График - это карикатурная версия этой информации, причем с задержкой.
Таким образом, мы вернулись к исходной точке. Воображаемые уровни на каком-то графике, на который реальные деньги вообще не обращают внимания.
Откуда вы знаете? Каков реальный механизм, с помощью которого крупный участник определяет, где произойдет следующий всплеск ликвидности?
Графики - это производное, запаздывающее представление того, что уже произошло в книге заявок. Фактическая информация о том, где сейчас находится ликвидность, содержится в данных 2-го уровня - фактической книге заявок, времени и продажах, а не в свечных формациях.
Институты, работающие с крупными объемами, имеют прямой доступ к этим реальным данным о микроструктуре. У них есть отношения с прайм-брокерами, они видят реальные потоки, используют системы алгоритмического исполнения, построенные на анализе реального портфеля заказов. График - это карикатурная версия этой информации, причем с задержкой.
Таким образом, мы вернулись к исходной точке. Воображаемые уровни на каком-то графике, на который реальные деньги вообще не обращают внимания.
График это история, да, но:
1) там все еще остаются позиции, которые дадут реакцию по мере движения цены к ним или от них
2) график сам по себе служит сигналом к дальнейшим действиям и делает это не в прошлом, а прямо сейчас участники рынка дружно смотрят на график цены и принимают решения
Далее, вы теперь сами говорите, что ликвидность где-то находится. То есть это все-таки зона, потому что в другом месте ликвидности недостаточно, верно? И это ценная информация, доступа к которой нет у простых людей, которые сидят дома с ноутбуками и ретейл торговыми терминалами. Более осведомленные участники рынка охотятся за деньгами менее осведомленных. Это именно охота, ведь рынок не создает деньги, а только распределяет их от одних к другим.
Вот теперь мы действительно вернулись к исходной точке, когда вы сами утверждаете тезисы, с которым изначально спорили.
Хотите узнать подробнее о создании ликвидности? Почитайте про Ливермора, который 100 лет назад разгонял акции, чтобы затем продать их на возникшем ажиотаже. Вот это оно и есть, создание ликвидности: провоцирование массы участников покупать там, где надо продавать и наоборот. С тех пор ничего не изменилось. Чтобы что-то продать, нужен кто-то, кто у вас это купит, а чтобы он это сделал по нужной вам цене, нужно убедить его в том, что он совершает выгодную сделку.
Если ваше имя не Джи Пи Морган и у вас нет доступа к описанной вами непубличной информации, то все, что вам остается, это анализировать график и логически обоснованно предполагать то, что за ним кроется.
Самый известный пример - стоп-ордера за экстремальными значениями цены. Это очевидное место, где можно поставить свой лимитный ордер именно там и получить большой объем на чужих стопах. Есть и другие, менее очевидные места.
Да, график - это история, но:
1) там все еще есть позиции, которые будут реагировать на движение цены к ним или от них
2) сам график служит сигналом для дальнейших действий, и он делает это не в прошлом, а прямо сейчас участники рынка смотрят на график цены и принимают решения
Далее, вы сами сейчас говорите, что ликвидность где-то есть. Значит, это все еще область, потому что в других местах ликвидности недостаточно, верно? И это ценная информация, к которой не имеют доступа обычные люди, сидящие дома с ноутбуками и розничными торговыми терминалами. Более осведомленные участники рынка охотятся за деньгами менее осведомленных. Это именно охота, потому что рынок не создает деньги, а лишь распределяет их от одного к другому.
Теперь мы действительно вернулись к исходной точке, когда вы сами утверждаете тезис, который изначально оспаривали.
Хотите узнать больше о создании ликвидности? Почитайте о Ливерморе, который 100 лет назад раздувал акции, чтобы затем продать их на возникшей шумихе. Именно в этом и заключается создание ликвидности: провоцировать массы участников покупать там, где они должны продавать, и наоборот. С тех пор ничего не изменилось. Чтобы продать что-то, нужно, чтобы кто-то купил это у вас, а чтобы заставить его сделать это по нужной вам цене, нужно убедить его, что он заключает выгодную сделку.
Если только вас не зовут G.P. Morgan и вы не имеете доступа к описанной вами непубличной информации, все, что вам нужно сделать, - это проанализировать график и сделать логическое предположение о том, что за ним стоит.
Люди действительно смотрят на одни и те же графики и реагируют на одни и те же уровни, создавая самореализующуюся динамику. Это реально. Но это доказывает нечто гораздо более слабое: это означает, что ценовые уровни могут привлекать активность, потому что участники ожидают этого, а не потому, что крупный игрок спроектировал это или потому, что структурная ликвидность действительно находится там в смысле книги заявок.
Опять же, ликвидность на рынке обеспечивают лимитные ордера, а не рыночные. Для того чтобы крупный участник "разместил там лимитный ордер и получил исполнение по чужим стопам", цена сначала должна достичь этого экстремума. Либо рынок доходит до него естественным путем, и в этом случае никто ничего не проектировал, либо кто-то толкает его туда намеренно, что является хрестоматийной манипуляцией и незаконно на регулируемых рынках.
Тот факт, что информация о реальной ликвидности существует, но недоступна розничным трейдерам, не делает анализ графиков достойной заменой. Отсутствие лучшего инструмента не оправдывает некачественный. Это все равно что утверждать, что, поскольку вы не можете позволить себе термометр, прикосновение к радиатору - верный способ измерения комнатной температуры.
Искоренение самообмана - первый шаг к успеху. Но если вы настаиваете, пусть обманывают себя, меня это никак не касается.