Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 22
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Детектор блоков заказов
Идея, лежащая в основе
Перед сильным импульсным движением обычно появляется одна последняя свеча, идущая в «неправильном» направлении — последняя свеча продажи перед резким скачком цены вверх или последняя свеча покупки перед обвалом цены. Эта свеча рассматривается как след потока ордеров, который питал движение: зона, которую она занимает, — это место, где, вероятно, формировалась крупная позиция перед прорывом. Этот индикатор формализует процесс обнаружения в три этапа: подтверждает подлинные фрактальные точки колебаний, отслеживает закрытие, решительно пробивающее одну из них с помощью импульсной свечи с реальным телом (а не слабым толчком доджи), а затем ищет назад от этого прорыва последнюю противоположную свечу — диапазон этой свечи становится блоком ордеров.
Как и детекторы гэпов и «ликвидностных промывок» из этой серии, зона здесь действительно «жива»: пока она не сглажена, она продолжает расширяться вперед до текущего бара, и как только цена вновь входит в неё, область застывает точно на этом баре и (по умолчанию) становится серой — так что с первого взгляда можно определить, какие зоны ещё «непроверенные», а какие уже были повторно протестированы.
Как это интерпретировать
- Бычий блок ордеров (по умолчанию зелёный/белый) — последняя свеча с закрытием вниз перед импульсивным закрытием выше недавнего максимума колебания. Непроверенное предложение, превратившееся в спрос; часто рассматривается как потенциальная поддержка при откате.
- Медвежий блок ордеров (по умолчанию красный) — последняя свеча с закрытием вверх перед импульсивным закрытием ниже недавнего минимума колебания. Непроверенный спрос, превратившийся в предложение; часто рассматривается как потенциальное сопротивление при отскоке.
- Расширяющаяся (цветная) зона — пока не смягчена; её правый край продолжает смещаться вперед в режиме реального времени, если включена опция InpExtendUntilMitigated (по умолчанию), или останавливается после фиксированного количества баров, заданного параметром InpExtendBars, если опция отключена.
- Замороженная, серая зона — цена вернулась в нее — блок нейтрализован, и его рамки остановились точно на этом баре. Установите параметр InpHideMitigatedOBs, чтобы удалять нейтрализованные зоны вместо того, чтобы закрашивать их в серый цвет.
- «Прорывная» свеча по отношению к самому блоку ордера — блоком ордера является противоположная свеча, а не импульсивная; импульсивная свеча используется только для подтверждения прорыва структуры и никогда не рисуется как зона сама по себе.
Внешние переменные (входные данные)
| Входные данные | По умолчанию | Назначение |
|---|---|---|
| InpSwingLookback | 5 | Количество баров, необходимое по обе стороны от бара-кандидата, чтобы он был подтвержден в качестве максимума/минимума колебания. |
| InpMinBreakPoints | 30 | Минимальное расстояние в пунктах, на которое цена закрытия должна выйти за пределы уровня колебания, чтобы это считалось подлинным прорывом структуры. |
| InpMinImpulseBodyPercent | 50,0 | Минимальное соотношение тела свечи к диапазону, которое должна иметь свеча, пробивающая уровень — отфильтровывает слабые «пробои» с длинными тенью. |
| InpMaxSearchBarsForOB | 10 | Количество баров назад от свечи прорыва, на протяжении которых ведётся поиск противоположной свечи блока ордеров. |
| InpUseBodyOnly | false | Использует для определения зоны только тело свечи блока ордеров, а не весь диапазон от максимальной до минимальной цены с учетом теней. |
| InpMinZoneSizePoints | 30 | Минимальный размер зоны в пунктах, при котором будет отображаться обнаруженный блок ордеров. |
| InpMaxOBsToTrack | 30 | Максимальное количество блоков ордеров, одновременно отображаемых на графике; самый старый из отслеживаемых блоков удаляется, когда новый превышает этот предел. |
| InpExtendUntilMitigated | true | Если значение true, зона некомпенсированного блока продолжает расширяться в реальном времени до текущего бара; если false, она останавливается после фиксированного количества баров. |
| InpExtendBars | 40 | Фиксированная длина расширения (в барах), используется только при значении «false» для параметра InpExtendUntilMitigated. |
| InpRequireFullCloseForMitigation | false | Если true, свеча должна закрыться внутри зоны, чтобы смягчить её; если false, достаточно, чтобы любой фитиль касался зоны. |
| InpHideMitigatedOBs | false | Если значение true, зона блока удаляется в момент нейтрализации, а не становится серым и сохраняется. |
| InpBullishOBColor / InpBearishOBColor | Лайм / Красный | Цвета для несмягченных зон бычьих и медвежьих блоков ордеров. |
| InpMitigatedColor | Темно-серый | Цвет, на который изменяется зона после смягчения (если она не скрыта). |
| InpFillBox | true | Заполнять ли зоны блокировки заказов или рисовать их только в виде контуров. |
| InpBoxStyle / InpBoxWidth | Solid / 1 | Стиль и ширина рамки каждой зоны. |
| InpShowLabels | true | Отображает текстовую метку с ценой зоны рядом с каждым блоком заказа. |
Рекомендуемое использование
Работает на любом символе и любом таймфрейме; концепции «прорыва структуры» и «блока ордеров» — это чистое ценовое действие без каких-либо допущений, специфичных для конкретного символа, хотя — как и любой метод, основанный на фракталах и пивотах — InpSwingLookback идет на компромисс между значимостью уровня и частотой обнаружения точно так же, как и в «Детекторе промета ликвидности» из этой серии. По замыслу, как прорывы структуры, так и их смягчение оцениваются только на полностью закрытых свечах, поэтому блок не появится и не исчезнет посреди свечи, пока максимум, минимум и цена закрытия текущей свечи ещё меняются.
Индикатор InpMinImpulseBodyPercent существует специально для того, чтобы избежать маркировки едва заметного закрытия как «прорыва» — свеча, которая лишь слегка выходит за уровень колебания с большим фитилем и маленьким телом, исключается, поскольку это ближе к шуму, чем к подлинному смещению. На графиках с очень длинной историей параметр InpMaxOBsToTrack ограничивает количество объектов, не позволяя каждому историческому блоку ордера накапливаться бесконечно. Данный индикатор только считывает ценовые данные и никогда не размещает, не изменяет и не закрывает никаких ордеров, поэтому его можно безопасно запускать на любом типе счёта.
Все объекты графика создаются под единым внутренним префиксом имени и полностью удаляются с помощью ObjectsDeleteAll() в функции OnDeinit() при отключении индикатора, поэтому он не оставляет после себя ничего на графике.

Рис. 1. Бычий блок ордеров, подтверждённый импульсной свечой прорыва, позже сглаженный, на XAUUSD M15. Изображение выполнено в чёрно-белом варианте в соответствии с рекомендациями по изображениям Code Base (750×500 пикселей).
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/76878
Market Structure Swing Map MT5
Наглядный индикатор рыночной структуры для MT5, который выделяет подтвержденные максимумы (HH), минимумы (HL), предыдущие максимумы (LH) и предыдущие минимумы (LL) прямо на графике.
Session Liquidity Map MT5
Карта сессий для платформы MT5, на которой отображаются диапазоны цен в Азии, Лондоне и Нью-Йорке с их подтвержденными максимумами и минимумами.
YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя
Скрипт рисует уровни Рудолфа Акселя
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.