Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Просмотров:
117
Рейтинг:
(4)
Опубликован:
Обновлен:
\MQL5\Files\
trend_detector.onnx (6444.66 KB)
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Backtest EURUSD 01/03/2025 - 20/01/2026 Таймфрейм M5(обучение ONNX AI специально для M5-M15)

Backtest GBPUSD 01/03/2025 - 20/01/2026 Таймфрейм M5 (обучение ONNX AI специально для M5-M15)


1. Общий обзор

SidewaysMartingale - это советник, предназначенный для торговли на боковых (ограниченных диапазоном) рынках с использованием стратегии восстановления мартингейла, дополненной детектором тренда на основе искусственного интеллекта, реализованного с помощью модели ONNX.

Советник сочетает в себе:

  • ИИ классификацию трендов (боковой / бычий / медвежий)

  • Индикатор Envelopes для входов на основе диапазона

  • Контролируемое масштабирование позиций по мартингейлу

  • Закрытие корзины на основе прибыли

  • Экстренная остановка на основе маржи

Основная идея заключается в следующем:

Торгуйте только тогда, когда рынок по статистике классифицируется как боковой, и избегайте добавления позиций по мартингейлу при обнаружении сильного тренда.


2. AI Trend Detector (интеграция с ONNX)

Выходные данные модели ONNX

Модель ONNX выдает:

  • предсказанную метку (не используется напрямую)

  • Вектор вероятностей с тремя вероятностями:

Переменная Значение
prob_side Вероятность того, что рынок находится в боковом движении/диапазоне
prob_bull Вероятность того, что рынок является бычьим (восходящий тренд)
prob_bear Вероятность того, что рынок является медвежьим (нисходящий тренд).

Эти вероятности извлекаются как:

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3. Инжиниринг признаков (входные данные ИИ)

Советник вводит 9 разработанных функций в модель ONNX:

Индекс признака Описание
f[0] Наклон EMA200 (направление и сила тренда)
f[1] Расстояние цены от EMA200
f[2] Значение ATR (волатильность)
f[3] Диапазон свечи, нормированный на ATR
f[4] Давление прорыва по отношению к предыдущему максимуму
f[5] Доминирование тела свечи
f[6] День недели
f[7] Час дня
f[8] Направление предыдущей свечи


Эти характеристики позволяют модели искусственного интеллекта определять:

  • Волатильность рынка

  • Сила тренда

  • Поведенческие модели на основе времени

  • Поведение структуры цены


4. Логика обнаружения бокового рынка

Рынок считается боковым, если:

bool is_sideway = (prob_side >= InpAISidewayThreshold);

Пример:

  • Если InpAISidewayThreshold = 0,70

  • Тогда для классификации рынка как бокового требуется не менее 70% уверенности

👉 Новые сделки не открываются, пока не будет выполнено это условие


5. Логика входа (скальпинг в диапазоне)

Советник использует конверты для определения экстремумов диапазона.

Вход на покупку

if(price_close <= lower[0] && is_sideway)

  • Цена касается или пробивает нижний конверт

  • ИИ подтверждает наличие бокового рынка

  • Открывается позиция на покупку

Вход на продажу

else if(price_close >= upper[0] && is_sideway)

  • Цена касается или пробивает верхний конверт

  • ИИ подтверждает боковой рынок

  • Открывает позицию на продажу

💡 Это гарантирует, что сделки будут заключаться только на экстремумах диапазона в условиях отсутствия тренда.


6. Логика восстановления по Мартингейлу

Когда позиции уже существуют, советник применяет мартингейл, основанный на расстоянии:

  • Новая позиция открывается только в том случае, если цена отходит на определенное расстояние в пунктах.

  • Размер лота увеличивается с помощью множителя (LotMultiplier).

  • Максимальное количество сделок ограничено ( MaxTradesInSeries )

Проверка расстояния

if(dist >= reqDist)


7. Защитный фильтр AI для Мартингейла

Это критически важный механизм контроля рисков.

Перед добавлением новой позиции по мартингейлу советник проверяет:

Если текущая серия - BUY

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

Если текущая серия - ПРОДАЖА

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

🔒 Значение:

  • Если ИИ обнаруживает сильный противоположный тренд

  • и уверенность превышает порог InpAISafetyThreshold

  • Расширение Мартингейла останавливается

Это предотвращает:

  • Мартингейл во время сильных прорывов

  • Глубоких просадок, вызванных продолжением тренда


8. Цель по прибыли и закрытие корзины

Советник отслеживает общую плавающую прибыль по всем позициям:

if(totalProfitUSD >= TakeProfitTargetUSD)

По достижении этой цели:

  • Все позиции закрываются

  • Серия Мартингейла сбрасывается

  • Советник ожидает нового бокового движения.

При таком подходе все позиции рассматриваются как одна корзина.


9. Управление рисками

Аварийный стоп на основе маржи

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

Если просадка капитала превышает определенный процент:

  • Все позиции немедленно закрываются

  • Предотвращает сценарии маржин-колла


10. Краткое описание стратегии

Компонент Назначение
ИИ Детектор трендов Классифицирует рыночный режим
prob_side Позволяет торговать только в диапазонах
prob_bull / prob_bear Блокирует мартингейл во время сильных трендов
Конверты Определяет крайние точки диапазона
Мартингейл Восстановление на боковых рынках
Корзина TP Быстрый выход после средней реверсии
Маржинальный SL Защита на уровне счета

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/68537

AIS Polygonal Number AIS Polygonal Number

В этом индикаторе реализован алгоритм многоугольных чисел. Он позволяет получить разные варианты сглаживания временного ряда.

Larry Williams XGBoost Onnx Larry Williams XGBoost Onnx

Применение метода Ларри Уильяма с помощью ИИ Time-Series XGBoost

YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя

Скрипт рисует уровни Рудолфа Акселя

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.