Советник Extremum Levels Breakout

Техническое задание: Разработка торгового советника для MetaTrader 5 «Extremum Levels Breakout»
ExtremumLevelsEA.ex5 (25 Kb) ExtremumLevelsEA.mq5 (19 Kb)

1. Общее описание
Необходимо разработать автоматический торговый советник (Expert Advisor) для платформы MetaTrader 5. Стратегия основана на пробое значимых уровней поддержки и сопротивления, построенных от локальных экстремумов цены. Ключевая особенность — измерение «длины» уровня (времени удержания цены) и вход в рынок только после последовательного пробоя двух самых длинных уровней одного направления.
2. Логика определения уровней
Советник должен анализировать историю котировок за период InpBarsBack и находить локальные экстремумы:
Локальный максимум (High): Бар, High которого выше, чем у соседних баров слева и справа.
Локальный минимум (Low): Бар, Low которого ниже, чем у соседних баров слева и справа.
Измерение длины уровня:
От каждого найденного экстремума проводится горизонтальная линия назад во времени. Длина уровня измеряется в количестве баров до первого касания ценой этого уровня (или достижения лимита глубины истории).
Пример: Если от максимума цена не опускалась ниже этой точки 50 баров назад, то длина уровня = 50.
Выбор уровней для торговли:
Из всех найденных локальных максимумов выбираются два с наибольшей длиной. Они отображаются красным цветом.
Из всех найденных локальных минимумов выбираются два с наибольшей длиной. Они отображаются синим цветом.
Уровни продлеваются вправо до текущего бара.
3. Торговая логика (Сигналы на вход)
Торговля ведется на пробой. Советник игнорирует направление трендовых индикаторов (например, Аллигатора), фокусируясь исключительно на цене и уровнях.
Покупка (Buy):
Цена закрытия предыдущего бара (Close[1]) должна быть выше первого (самого длинного) красного уровня.
Цена закрытия предыдущего бара (Close[1]) должна быть выше второго красного уровня.
При выполнении обоих условий открывается ордер Buy.
Продажа (Sell):
Цена закрытия предыдущего бара (Close[1]) должна быть ниже первого (самого длинного) синего уровня.
Цена закрытия предыдущего бара (Close[1]) должна быть ниже второго синего уровня.
При выполнении обоих условий открывается ордер Sell.
Важно: Если цена возвращается обратно за уровень (не закрепляется), счетчик пробоев сбрасывается. Одновременный пробой двух уровней считается как выполнение условия для входа.
4. Управление позицией
Одна позиция за раз: Советник открывает только одну позицию. Новые сигналы игнорируются, пока текущая позиция не будет закрыта.
Stop Loss (SL): Фиксированный, задается в пунктах от цены открытия.
Take Profit (TP): Фиксированный, задается в пунктах от цены открытия.
Trailing Stop: Динамическое подтягивание стоп-лосса за ценой.
Активируется, когда прибыль превышает расстояние трейлинга.
Шаг подтягивания (Trailing Step) защищает от частых модификаций.
5. Риск-менеджмент и расчет лота
Авторасчет лота: Если InpLotSize = 0, лот рассчитывается автоматически на основе риска от баланса (InpRiskPercent %) и расстояния до Stop Loss.
Проверка маржи: Перед открытием сделки проверяется достаточность свободной маржи. Если средств недостаточно даже для минимального лота, сделка пропускается.
Фиксированный лот: Если InpLotSize > 0, используется указанный объем (с проверкой на максимальный доступный объем по марже).
6. Визуализация и отладка
Отрисовка выбранных уровней (2 красных, 2 синих) на графике.
Вывод информационной панели (Comment) в левом верхнем углу:
Текущее количество пробоев (Buy/Sell).
Цены и длины выбранных уровней.
Логирование действий (открытие/закрытие сделок, ошибки) в журнал экспертов.
7. Входные параметры
Параметр
Описание
Значение по умолчанию
InpBarsBack
Глубина поиска экстремумов
100
InpLotSize
Размер лота (0 = авто)
0.0
InpRiskPercent
Риск на сделку (%)
1.0
InpStopLoss
Stop Loss (пункты)
100
InpTakeProfit
Take Profit (пункты)
200
InpTrailingStop
Трейлинг стоп (пункты)
50
InpTrailingStep
Шаг трейлинга (пункты)
10
InpMagicNumber
Идентификатор советника
123456
InpShowLevels
Показывать уровни на графике
true
8. Требования к коду
Язык: MQL5.
Отсутствие ошибок компиляции и критических предупреждений.
Корректная обработка ошибок при отправке торговых запросов (нехватка денег, реквоты).
Использование асинхронных или стандартных торговых классов MQL5 для надежности.
Примечание для разработчика:
Логика «длины уровня» является критической. Уровень считается «длинным», если цена долгое время не возвращалась к нему. Это фильтрует шумовые экстремумы и оставляет только значимые зоны поддержки/сопротивления.
Copy
Ask Qwen
Explain
Translate(en-US)
  • +1
  • Просмотров: 111
  • 18 июля 2026, 18:06
  • igrun
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

  Предыдущая запись в моем блоге
Теория темноты.
23 апреля 2026

Брокер для ваших роботов, 15 лет на рынке

Комментарии (1)

+
0
В основном биток н1
avatar

  25  igrun Автор Сообщений: 1914 - igrun

  • 18 июля 2026, 18:07

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий