Ниже приводится краткое техническое описание основной логики работы вашего советника. Архитектура основана на модели управления портфелем с учетом собственного капитала, а не на традиционных статических целевых показателях, рассчитанных в пунктах.
Советник оценивает торговые условия для каждого бара, сравнивая предыдущую завершённую свечу (Close[1]) и текущую формирующуюся свечу (Open[0]) с буферами индикаторов.
Цикл 1 (скользящая средняя): действует как базовый модуль следования за трендом.
Покупка: срабатывает, если Close[1] и Open[0] находятся строго выше линии скользящей средней.
Продажа: срабатывает, если Close[1] и Open[0] находятся строго ниже линии скользящей средней.
Циклы 2 и 3 (огибающие): действуют как модуль прорыва или импульса.
Покупка: срабатывает, если Close[1] и Open[0] находятся выше верхней полосы огибающей.
Продажа: срабатывает, если Close[1] и Open[0] находятся ниже нижней полосы огибающей.
(Примечание: цикл 3 является прямым клоном логики цикла 2, просто работающим с независимым магическим числом и параметром отклонения).
Вместо отправки брокеру жестко заданных ценовых уровней SL/TP этот советник управляет риском внутренне, отслеживая плавающий капитал.
Когда цикл инициирует свою первую сделку (например, Buycount == 0), советник фиксирует текущий капитал счета и рассчитывает два денежных порога:
Целевая цена (TP): начальный капитал + (начальный капитал * target_percent / 100)
Цена риска (SL): начальный капитал – (начальный капитал * risk_percent / 100)
Выполнение: при каждом тике пользовательские функции (MyAccountProfit_Buy / MyAccountProfit_Sell) суммируют плавающую прибыль, своп и комиссию по всем активным позициям, привязанным к «магическому номеру» конкретного цикла. Если начальный капитал + плавающая прибыль достигает порога целевой цены (TP) или уровня риска (SL), советник запускает процедуру закрытия всех позиций для данного цикла и сбрасывает состояние цикла.
Примечание об аномалии в коде: в вашей исходной логике покупки цикла 1 при расчёте целевого уровня/риска деление производится на 1000 вместо 100, что приводит к расчёту целевого уровня 0,1% вместо 1%. В циклах 2, 3 и при продажах цикла 1 деление производится на 100.
Блокировка бара: чтобы предотвратить открытие сотен сделок на одном баре, советник сохраняет цену Open[0] в переменной open_price. Новая сделка разрешается только в том случае, если текущая цена открытия отличается от значения, сохраненного в переменной (что гарантирует один вход на бар).
Чередование / сетка: Переменные, такие как c1_Buycycle и c1_sellcycle, используются для переключения доступности противоположного сигнала. Например, успешное исполнение сделки на покупку отключает дальнейшие независимые покупки, но запускает цикл продаж, что предполагает использование слабоструктурированной сетки хеджирования или разворота.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/74815
Market Miner
Многостратегический советник — настоящая золотая жила :)
KCI Volatility Distance
Показатель «KCI Volatility Distance» представляет собой передовой адаптивный алгоритм, тщательно разработанный для максимально точного отражения рыночного импульса и направления тренда. Используя запатентованный метод расчёта на основе матриц, этот инструмент динамически отфильтровывает рыночный шум и предоставляет строго количественную оценку силы тренда. Основанный на высокооптимизированном ядре объектно-ориентированного программирования (ООП), он разработан как для наглядного отображения торговых сигналов, так и для беспроблемной интеграции в советники или модули машинного обучения, обеспечивая минимальную нагрузку на процессор при работе с множеством активов.
CKS Position Risk Dashboard
Панель управления MT5, доступная только для просмотра, для определения размера лота с учетом рисков, оценки состояния счета, ограничений брокера по объему торгов и текущей подверженности риску по символам.
SuperTrend_Amarnath_Kondiyan_Mohan
Супертренд с управлением TP и SL по корзине