Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 19
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Детектор перераспределения ликвидности
Идея, лежащая в основе этого инструмента
Старые максимумы и минимумы колебаний, как правило, притягивают к себе стоп-лоссы и ордера на прорыв, расположенные чуть дальше от них — это скопление ордеров и есть «ликвидность», и цена часто подталкивается чуть дальше этого уровня, чтобы активировать их, прежде чем развернуться в обратную сторону. Данный индикатор формализует эту модель в два этапа: сначала он определяет подлинные фрактальные точки колебаний (максимум или минимум, являющийся крайней точкой в своей локальной окрестности с обеих сторон), затем отслеживает каждый закрывшийся после этого бар на наличие «фитиля», который пробивает один из этих уровней на значительное расстояние и закрывается обратно на другой стороне — это признак «свипа», а не подлинного прорыва.
Подтверждение колебания по определению происходит с некоторой задержкой в несколько баров (пивот не может быть подтвержден, пока с правой стороны не появится достаточное количество баров, доказывающих, что это был локальный экстремум), а проверка «свипа» выполняется только для полностью закрывшихся баров, поэтому после построения ничто здесь не перерисовывается: уровень, однажды подтвержденный, остается точно там, где он был подтвержден, а стрелка «свипа», однажды нанесенная, остается точно на том баре, который ее вызвал.
Как это интерпретировать
- Линия уровня (по умолчанию серая, пунктирная) — подтверждённый максимум или минимум колебания, начерченная от бара, на котором он сформировался. Она в режиме реального времени простирается до текущего бара, пока не прошла проверка на «свип».
- Стрелка вверх (по умолчанию зелёная) — бычий свип: цена пробила минимум колебания вниз, но закрылась обратно выше него — потенциальное поглощение ликвидности перед движением вверх.
- Стрелка вниз (по умолчанию красная) — медвежий свип: цена отскочила выше максимума колебания и закрылась обратно ниже него — потенциальное поглощение ликвидности перед движением вниз.
- Линия, ставшая серой/застывшей — этот уровень только что был «прочищен»; его линия перестает продлеваться ровно на баре «прочистки», а не продолжается дальше, поэтому старые, уже «прочищенные» уровни визуально отличаются от тех, которые все еще «активны».
- Метка цены (опционально) — показывает точную цену уровня рядом с каждой стрелкой «свипа», так что вам не нужно наводить курсор на линию, чтобы прочитать её.
Внешние переменные (входные данные)
| Входные данные | По умолчанию | Назначение |
|---|---|---|
| InpSwingLookback | 5 | Количество баров, необходимое по обе стороны от рассматриваемого бара, чтобы он был подтвержден в качестве максимума/минимума колебания. |
| InpMaxLevelsToTrack | 20 | Максимальное количество уровней, одновременно отображаемых на графике; самый старый из отслеживаемых уровней удаляется, когда новый уровень превышает этот предел. |
| InpMinWickPoints | 30 | Минимальное расстояние «тени» за пределами уровня, в пунктах, при котором пробивающая свеча считается подлинным разворотом. |
| InpRequireCloseBackInside | true | Если значение true, свеча должна также закрыться обратно на исходной стороне уровня; если false, учитывается любой фитиль достаточной глубины. |
| InpOneSweepPerLevel | true | Если true, проверка уровня прекращается после первого прохождения; если false, один и тот же уровень может генерировать несколько сигналов прохождения с течением времени. |
| InpShowLevels | true | Отображает сами линии уровней колебаний, а не только стрелки прометания. |
| InpExtendLevelsUntilSwept | true | Если значение true, линия уровня, не прошедшей развертку, продолжает удлиняться в реальном времени до текущего такта; если false, она останавливается после фиксированного количества тактов. |
| InpLevelExtendBars | 50 | Фиксированная длина удлинения (в тактах), используется только при значении параметра InpExtendLevelsUntilSwept, равном false. |
| InpLevelColor / InpSweptLevelColor | Серебристый / Тёмно-серый | Цвет линии для уровня до и после его прометания. |
| InpBullishSweepColor / InpBearishSweepColor | Лимонно-зелёный / Красный | Цвет стрелки и метки для бычьих (прочищенный минимум) и медвежьих (прочищенный максимум) сигналов. |
| InpShowLabels | true | Отображает точный уровень цены рядом с каждой стрелкой развертки. |
| InpArrowWidth | 2 | Ширина маркеров стрелок развертки. |
Рекомендации по использованию
Работает на любом символе и любом таймфрейме; концепции ликвидности, основанные на свинг-уровнях, применяются одинаково независимо от инструмента, хотя — как и любой метод фрактальных пивотов — большее значение InpSwingLookback на более низком таймфрейме находит меньше, но более значимых уровней, в то время как меньшее значение находит больше, но более «шумных» уровней. Поскольку для подтверждения пивота требуются бары с обеих сторон, следует ожидать задержки, равной количеству баров InpSwingLookback, между фактическим формированием колебания и появлением его уровня на графике — это структурное свойство фрактального обнаружения, а не ошибка, и именно это предотвращает перерисовку индикатора.
«Свип» — это наблюдение за паттерном, а не самостоятельный торговый сигнал: он указывает на то, что на данном уровне, вероятно, произошло поглощение ликвидности, после чего цена отклонила его; многие трейдеры используют это как одно из нескольких подтверждений, а не как автоматический триггер для входа в рынок. Данный индикатор только считывает ценовые данные и никогда не размещает, не изменяет и не закрывает никаких ордеров, поэтому его можно безопасно использовать на любом типе счета.
Все объекты графика создаются с одним внутренним префиксом имени и полностью удаляются с помощью функции ObjectsDeleteAll() в методе OnDeinit() при отсоединении индикатора, поэтому он не оставляет после себя ничего на графике.

Рис. 1. Бычий свип от колебательного минимума и медвежий свип от колебательного максимума на XAUUSD M15. Изображение выполнено в чёрно-белом варианте в соответствии с рекомендациями по изображениям Code Base (750×500 пикселей).
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/76586
Interactive On-Chart Risk Management and Execution Panel
Интерактивная панель графического интерфейса для MetaTrader 5, разработанная для трейдеров, торгующих вручную, и разработчиков квантитативных стратегий. Она автоматизирует динамическое определение размера позиции на основе точного процента риска от собственного капитала счета, обеспечивает исполнение ордеров одним щелчком (покупка/продажа), мгновенную фиксацию безубыточности, функцию «Закрыть все», а также непрерывное управление трейлинг-стопом в режиме реального времени.
MT5 Vertical Scroll
Благодаря этому график в MT5 прокручивается так же, как график в TradingView, с кнопкой автоматической сброски
Ценовое действие, объемные блоки ордеров MT5
Индикатор MT5 с открытым исходным кодом для определения подтверждённой рыночной структуры, объёмных блоков ордеров и оценки активности покупок/продаж.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.