Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 44
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Stormbreaker ADX — это советник для MetaTrader 5, который сочетает в себе определение направления движения по индикатору Supertrend, оценку силы тренда по индикатору ADX и анализ направленности линий +DI и −DI. Он анализирует сигналы на основе закрывшихся свечей, определяет размер позиций исходя из фиксированного соотношения капитала и риска и устанавливает защитный стоп-ордер на основе показателя ATR.
Исходный код, доступный для скачивания, предназначен для изучения, тестирования и модификации. Советник не гарантирует прибыль; перед тем как применять его в реальных условиях, протестируйте его на данных вашего брокера и с учетом спецификаций контракта.

Рисунок 1. Фильтры входа оцениваются последовательно в начале новой свечи на таймфрейме сигнала.
1. Обзор стратегии
Темп-фрейм сигнала по умолчанию — H4. На каждом новом баре H4 советник считывает предыдущий завершённый бар (сдвиг 1), вычисляет пользовательский индикатор Supertrend на основе ATR и считывает значения ADX, +DI, −DI и ATR. Сделка рассматривается только в том случае, если направление Supertrend и направление движения рынка совпадают, а ADX достигает порогового значения для входа.
| Компоненты | По умолчанию | Назначение |
|---|---|---|
| Таймфрейм сигнала | H4 | Таймфрейм оценки сигнала; входы проверяются один раз на каждый новый бар. |
| Supertrend | ATR 10, коэффициент 3,0 | Определяет направление текущего тренда. |
| ADX / DMI | ADX 14; пороговое значение для входа 23 | Фильтрует силу тренда и подтверждает направление с помощью +DI и −DI. |
| Пороговое значение силы выхода | ADX ниже 18 | Закрывает управляемую позицию, когда сила тренда ослабевает ниже уровня выхода. |
| Начальный стоп | 2 × ATR(10) | Размещает стоп от цены закрытия завершенного сигнального бара, а затем выравнивает его в соответствии с ценовыми правилами брокера. |
| Бюджет риска | 0,5% от текущего капитала | Рассчитывает объем на основе предполагаемого убытка между текущей котировкой входа и стопом. |
| Тейк-профит | Нет | Фиксированной цели тейк-профита нет; выход из позиции осуществляется на основе сигнала/силы сигнала или по стоп-лоссу. |
2. Правила входа и выхода
| Действие | Условия |
|---|---|
| Открыть позицию на покупку | Вход по сделке «Покупка» разрешен; индикатор Supertrend указывает на бычий тренд; ADX ≥ 23; +DI > −DI. |
| Открытие позиции на продажу | Возможность открытия позиции на продажу; Supertrend указывает на медвежий тренд; ADX ≥ 23; −DI > +DI. |
| Закрытие открытой позиции | ADX < 18, либо направление Supertrend меняется в сторону, противоположную позиции. Появление противоположного сигнала, соответствующего критериям, также приводит к закрытию/смене направления управляемой позиции. |
Советник не увеличивает позицию в том же направлении, если обнаруживает существующую позицию с заданным символом и магическим номером. Стоп-лосс остается активным независимо от выхода по сигналу.
3. Расчет объема на основе риска
Перед отправкой ордера Stormbreaker оценивает убыток на один лот от текущей котировки входа (Ask/Bid) до предлагаемого стопа с помощью функции OrderCalcProfit . Он делит 0,5% риск-бюджета собственного капитала на этот расчётный убыток на один лот, затем округляет объём в меньшую сторону до допустимого брокерского шага объёма и применяет ограничение на максимальный объём. Кроме того, он проверяет доступную маржу. Если минимальный допустимый лот превысит бюджет риска или маржи недостаточно, советник пропускает сделку.
double risk_cash = AccountInfoDouble(ACCOUNT_EQUITY) * 0.5 / 100.0; double one_lot_loss = MathAbs(one_lot_profit); double volume = MathFloor((risk_cash / one_lot_loss) / volume_step) * volume_step; volume = MathMin(volume, MaxVolume);
Фрагмент упрощён для наглядности. Полный исходный код включает проверки на недопустимые цены, соответствие тиков и объёмов, расстояния до стоп-ордеров брокера и маржу. Поскольку стоп-ордер рассчитывается на основе цены закрытия предыдущей свечи, а для определения размера позиции используется текущая котировка входа, проскальзывание, гэпы и издержки исполнения могут привести к тому, что фактический убыток будет отличаться от 0,5 %. Это целевой показатель риска, а не гарантированный максимальный убыток.

Рисунок 2. Уровни стопа рассчитываются на основе ATR; у советника нет фиксированной цели по прибыли.
4. Входные параметры и значения по умолчанию
| Параметры | Значение по умолчанию | Значение |
|---|---|---|
| SignalTimeframe | PERIOD_H4 | Таймфрейм, используемый для сигналов. |
| Коэффициент Supertrend | 3,0 | Коэффициент ATR, используемый индикатором Supertrend. |
| SupertrendATRPeriod | 10 | Период ATR для Supertrend и начального стопа. |
| ADXPeriod | 14 | Период расчёта ADX/DMI. |
| EntryADX | 23,0 | Минимальное значение ADX для открытия новой позиции. |
| ExitADX | 18,0 | Уровень ADX, при достижении которого открытая позиция закрывается. |
| StopATRMultiple | 2,0 | Коэффициент ATR, используемый для установки начального стопа. |
| Максимальный объём | 100,0 | Верхний предел по лотам; фактические лимиты по символам по-прежнему действуют. |
| DeviationPoints | 20 | Максимальное отклонение цены, передаваемое в торговом запросе, в пунктах. |
| EnableBuy / EnableSell | true / true | Включить или отключить каждое направление. |
| MagicNumber | 51003 | Идентификатор, используемый для определения управляемой позиции советника. |
В настоящее время процент риска 0,5% является фиксированной константой в исходном коде, а не значением, вводимым пользователем.
5. Пример кода сигнала на MQL5
В следующем фрагменте показаны условия входа по закрытому бару, используемые советником:bool long_signal = EnableBuy && direction < 0 && adx >= EntryADX && plus_di > minus_di; bool short_signal = EnableSell && direction > 0 && adx >= EntryADX && minus_di > plus_di; if(long_signal) STOpenPosition(true, bar.close - StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX long", MaxVolume, DeviationPoints); else if(short_signal) STOpenPosition(false, bar.close + StopATRMultiple * atr, 0.0, MagicNumber, "ST ADX short", MaxVolume, DeviationPoints); else if(position != 0 && (adx < ExitADX || (position > 0 && direction > 0) || (position < 0 && direction < 0))) STClosePosition(MagicNumber);
В полной версии советника эти условия выполняются только после обнаружения нового бара на таймфрейме сигнала и успешного получения данных о предыдущем закрытом баре и значений индикаторов.
6. Снимок результатов брокерского бэктеста
Приведённые ниже рисунки взяты из отчётов Тестера стратегий MetaTrader 5 для пары XAGUSD на таймфрейме H4. Начальные депозиты различаются, поэтому наряду с чистой прибылью показана чистая доходность. Качество тиковой истории также варьируется и особенно ограничено для Fusion Markets.| Брокер | Конец периода | Начальный депозит | Чистая прибыль | Чистая доходность | Максимальное сокращение собственного капитала | Коэффициент прибыльности | Коэффициент Шарпа | Торговые операции | Реальные тики |
|---|---|---|---|---|---|---|---|---|---|
| IC Markets | 23.09.2026 | 1 000 000 долларов США | 154 482,51 доллара США | 15,45 % | 19,40 % | 1,12 | 0,50 | 520 | 32 % |
| BlackBull Markets | 24.09.2026 | 1 000 000 долларов США | 225 766,54 долларов США | 22,58 % | 5,00 % | 1,45 | 1,00 | 196 | 41 % |
| Fusion Markets | 23.09.2026 | 100 000 долларов США | 26 680,57 долларов США | 26,68 % | 8,97 % | 1,26 | 2,22 | 374 | 4 % |

7. Совместимость и практическое применение
- Платформа: MetaTrader 5; язык программирования: MQL5.
- Прикрепите советник к графику торгуемого инструмента; таймфрейм сигнала выбирается с помощью параметра SignalTimeframe.
- Внешние файлы пользовательских индикаторов не требуются. Исходный код использует стандартную библиотеку Trade\Trade.mqh и встроенные данные ATR/ADX.
- Используйте уникальный магический номер для каждого экземпляра советника. Избегайте запуска других стратегий или ручной торговли по тому же инструменту на счетах с неттингом, где позиции суммируются.
- Сначала проверьте в Тестере стратегий и на демо-счете минимальный объем, размер тика, расстояние до стопа и маржинальные требования конкретного брокера.
Предупреждение о рисках: автоматическая торговля сопряжена со значительным риском. Стоп-лосс не может гарантировать цену выхода при проскальзывании или на быстро меняющихся рынках. Результаты бэктеста, демо-торговли и анализа исторических данных не гарантируют будущих результатов. Вы несете ответственность за оценку советника и его настроек перед использованием.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/77718
Turtle Breakout Indicator Tested on Gold: Profitable in 2025 and 2026 (70)
Прорывы по стратегии Дончиана в стиле «Черепаха» на рынке золота, за которыми следовали сразу три варианта выхода: скользящий стоп по ATR, канал выхода «Черепаха» и фиксированная цель. Тестирование на исторических данных по паре XAUUSD на графиках H1 и H4 за 2025 и 2026 годы показало, что все двенадцать комбинаций были прибыльными. Без перерисовки, с буферами для советника.
ATS Confirmed Swings - non-repainting swing highs and lows
Обозначает максимумы и минимумы колебаний только после того, как они будут подтверждены N закрытыми свечами, поэтому нарисованная линия колебания никогда не смещается и не исчезает.
ImpulseCandle - impulse bar marker with ATR body filter and volume confirmation
Выделяет импульсные свечи: тело не менее ATR × множитель, тело не менее заданной доли диапазона свечи, закрытие вблизи экстремума, опциональное подтверждение объемом тиков. Зеленая стрелка ниже — бычий импульс, красная выше — медвежий. Только закрытые бары, без перерисовки. Сигналы находятся в двух буферах, поэтому советник может считывать их с помощью iCustom.
PropGuard 1.02 - account risk manager for prop firm accounts
Система защиты на уровне счета для счетов проп-фирм. Отслеживает каждую позицию на счете, закрывает все позиции при достижении дневного или максимального лимита убытка, ограничивает сумму риска по каждой позиции, закрывает сделки, оставленные без стоп-ордера, и может сглаживать позиции при выходе новостей с высокой степенью влияния.