MultiStrat Engine EA
- Эксперты
- Julien Favre
- Версия: 1.0
- Активации: 5
Советник MultiStrat Engine EA основан на фундаментальном золотом правиле: каждая открытая сделка является полностью принятой за рыночную . Без стоп-лосса убыток никогда не фиксируется — позиции удерживаются до возвращения к равновесию ( нулевой точке ) .
Советник (Expert Advisor, EA), разработанный для полной автоматизации управления позициями по всем типам финансовых инструментов (Forex, акции, индексы, товары ). Он включает в себя исключительно богатую модульную архитектуру, объединяющую более 28 различных торговых режимов, динамическое управление рисками, систему вознаграждения брокера и интерактивную HTML - панель для сравнительного анализа результатов тестирования.
Общая архитектура
Expert Advisor , EA) основан на четком разделении сторон покупки и продажи , каждая из которых имеет свои независимые параметры : трейлинг - режим , таймфрейм, размер лота, тейк-профит , стоп-лосс, расстояние между ордерами и динамическое поведение. Эта двойственность позволяет комбинировать асимметричные или идеально симметричные стратегии в зависимости от потребностей трейдера.
Более 28 торговых методов
Сторона ПОКУПКИ :
- BUY_MODE_NONE — Размещение ордера BuyStop с простым трейлингом и фиксированным индивидуальным TP для каждой позиции.
- BUY_MODE_NONE_CANDLE — Идентичный, но глобальный механизм закрытия, срабатывающий при появлении свечи , если общая чистая прибыль положительна.
- BUY_CLOSE_CANDLE — Закрывать все позиции на покупку на каждой новой свече, если общая прибыль положительная.
- BUY_CUMUL_SINGLE — Виртуальный кумулятивный тейк-профит: взвешенная сумма пунктов ( за вычетом комиссий) по всем позициям BUY должна достичь заданного тейк-профита до глобального закрытия.
- BUY_CUMUL_MULTI — Вариант CUMUL: целевая TP умножается на отношение общего объема к базовому объему, компенсируя накопление лотов.
- BUY_CUMUL_POS — Прогрессивная TP в зависимости от количества позиций: каждая дополнительная позиция уменьшает TP единицы товара в соответствии с настраиваемым коэффициентом, с минимальным порогом.
- BUY_HEDGE_CANDLE — Каждая покупка автоматически создает пропорционально большую позицию хеджирования на продажу; закрывается на свече , если общая прибыль положительная .
- BUY_HEDGE_SINGLE — Автоматическое хеджирование + Единичный кумулятивный TP.
- BUY_HEDGE_MULTI — Автоматическое хеджирование + кумулятивный TP MULTI.
- BUY_HEDGE_SINGLE_ADD_SELL_TP — Единое хеджирование с интегрированной компенсацией плавающих убытков от хеджирования SELL при расчете целевого уровня покупки (BUY TP) .
- BUY_HEDGE_MULTI_ADD_SELL_TP — Хеджирование MULTI с тем же уровнем компенсации.
- BUY_DIRECT_HEDGE — Постоянное прямое хеджирование: при каждом новом исполнении ордера на покупку старый ордер на продажу заменяется новым . Ордер на продажу автоматически закрывается при успешном закрытии ордера на покупку .
- BUY_DIRECT_HEDGE_ADD_SELL_TP — Прямое хеджирование с учетом убытков от продажи в целевой цене покупки.
- BUY_DIRECT_HEDGE_ADD_SELL_TP_AUTO_MAX — Идентичен автоматическому расчету максимальной цены покупки с помощью скользящих средних.
- BUY_PARTIAL_CLOSURE — Сложная система частичного закрытия : основной лот делится на единицы , вспомогательные элементы размещаются постепенно в зависимости от достигнутого уровня сетки, а суммарная прибыль от вспомогательного элемента и основного элемента запускает постепенное уменьшение объема основной сделки.
- BUY_LADDER_PROFIT — Индивидуальное закрытие каждой позиции , как только ее чистая прибыль в пунктах достигнет заданного TP ( шкалы прибыли ) .
- BUY_WAVE_RIDING — Быстрое закрытие, как только будет достигнуто 30% от TP, а затем немедленное открытие для «серфинга» на следующей волне.
- BUY_VIX_REVERSION — Специализация VIX : закрытие, если VIX превышает пороговые значения для возвращения к среднему значению.
- ПОКУПКА_ВЗРЫВ_ИМПЕРИИ — Сверхбыстрое закрытие на уровне 20% от целевой цены, затем несколько точек входа при меньшем объеме для извлечения выгоды из импульсов роста.
- BUY_SCALP_ACCUMULATOR — Скальпинг на уровне 15% от TP за позицию с последующим немедленным открытием для накопления микродолей прибыли .
- BUY_VIX_OSCILLATION_MASTER — Расширенное многозонное управление индексом VIX с правилами закрытия, зависящими от цены входа и текущего уровня VIX.
- BUY_PROFIT_COMPOUNDING — Усиленное реинвестирование : в зависимости от полученной прибыли , объем повторного входа умножается ( до x2 ) .
- BUY_BREAKOUT_SURFER — Обнаружение импульса на M1 : закрытие на уровне 70% от TP, условный повторный вход при обнаружении пробоя .
- BUY_ADAPTIVE_PYRAMID — Адаптивный TP, рассчитываемый на основе волатильности ( стандартное отклонение цен открытия) и количества открытых позиций.
- BUY_GRID_RECOVERY_SMART — Интеллектуальное обнаружение восстановления сетки : закрыть , если прибыль положительная и цена выше медианы сетки , затем повторно войти при уменьшенном объеме .
- BUY_PATIENCE_ACCUMULATOR — TP снижается со временем ( -1 % в час), чтобы стимулировать терпение и компенсировать сделки, удерживаемые в течение длительного времени.
- ПОКУПКА_ЗОН ФИБОНАЧЧИ — Закрытие на уровнях Фибоначчи 50%, 61,8% или 78,6%, рассчитанных на основе цен открытия активных позиций.
- BUY_VOLATILITY_RIDER — Адаптивный TP на основе ATR M1: чем выше волатильность , тем ниже TP для быстрого закрепления прибыли.
- BUY_PROFIT_PYRAMID — Закрытие отдельной пирамиды при достижении 60% от TP, с повторным открытием нового слоя, если остаются активными 2 и более позиций.
Режимы продажи (SELL) идеально симметричны и имеют свои варианты: SINGLE, MULTI, CANDLE, DIRECT_HEDGE, ADD_BUY_TP и т. д.
динамическая сеточная система
EA поддерживает два пакетных режима для каждой стороны :
- Режим FIXED : постоянный размер партии, настраиваемый параметром LotSizeBuy / LotSizeSell.
- Режим GRID : геометрическая прогрессия участков в соответствии с BaseVolume × GridMultiplier^N, с ограничением MaxBaseVolume. Множитель может быть равен 1,0 (линейная сетка ) или выше ( мартингальная сетка).
Расстояние между ордерами (DistanceOrderBuy/Sell) и пороговое значение корректировки ( TrailingDistanceOrderBuy /Sell) точно контролируют перепозиционирование отложенных ордеров на каждом тике или свече.
Управление заказами
Функция ManagePendingOrders автоматически перепозиционирует ордера BuyStop, BuyLimit, SellStop и SellLimit, поддерживая их на правильном расстоянии от текущей цены. Она использует логику NewOrdersAtHigherPrice (динамическую): в режиме «только низкие цены» для ордеров на покупку сохраняются только ордера ниже текущего минимума ; дубликаты, находящиеся слишком близко, удаляются . Механизм защиты предотвращает удаление последнего оставшегося ордера/позиции.
Автоматическая выплата брокерских комиссий
фактические комиссионные, уплаченные за позицию (на основе истории сделок), накопленные свопы и оценивает будущую комиссию за выход. Эти сборы конвертируются в пункты через MoneyToPoints и автоматически добавляются к тейк -профиту (TP) каждой позиции (AdjustTPWithRealFees), гарантируя, что каждая закрытая сделка действительно прибыльна за вычетом комиссий. Настраиваемая система кэширования (CommissionCacheSeconds) предотвращает чрезмерно частые перерасчеты .
Автоматическое управление живой изгородью и опорами
режиме HEDGE автоматически создается противоположная позиция при каждом новом входе . В режиме DIRECT_HEDGE одновременно с активными позициями BUY поддерживается только одна позиция SELL , которая заменяется при каждой новой покупке . Закрытие выигрышной позиции BUY (обнаруженной с помощью OnTradeTransaction и ProcessDealTicket) автоматически запускает закрытие соответствующих позиций SELL . Коэффициент хеджирования можно настроить с помощью предустановленных значений (1:1, 1:2, 1:3, 1:4, 2:1, 3:1) или пользовательского значения .
Виртуальные сигналы EDGE
В режимах хедж-трейдинга используются виртуальные сигналы : вместо размещения традиционного отложенного ордера, советник (Expert Advisor, EA) поддерживает внутренний сигнал (g_buyEdgeVirtualSignalActive) с динамическим трейлингом. Сигнал преобразуется в реальную сделку только тогда, когда цена пересекает его , что минимизирует ложные срабатывания и обеспечивает автоматическую перекалибровку при изменении ограничения расстояния.
Максимальная динамическая цена покупки (МА)
Параметр MaximumPurchasePriceSource автоматически рассчитывает максимальную цену покупки на основе двух настраиваемых скользящих средних ( период , метод EMA / SMA/SMMA/LWMA, таймфрейм). Среднее значение двух скользящих средних смещается на настраиваемый процент ( MaximumPurchasePriceAutoOffsetPct ) для создания динамической зоны безопасности . Оранжевая линия на графике указывает текущий уровень.
усовершенствованная система частичного закрытия ( PARTIAL_CLOSURE )
Этот уникальный режим автоматически делит каждый основной лот на оптимальные единицы (адаптированные к SYMBOL_VOLUME_STEP ). Вспомогательные сделки размещаются на рынке в соответствии с достигнутым уровнем сетки. Когда комбинация profit_helper и main_unit_profit достигает целевого уровня фиксации прибыли, вспомогательная сделка закрывается , и одна единица основной сделки уменьшается ( PositionClosePartial ) . Цикл повторяется до тех пор, пока основная сделка не будет полностью исчерпана .
Продвинутое управление временем
Каждая сторона ( ПОКУПКА /ПРОДАЖА) имеет независимый таймфрейм с настраиваемыми часами и минутами начала . Расчет действительности (IsValidTradingTime) синхронизирует триггеры с точными циклами от времени начала , предотвращая дублирование внутрисвечной позиции. После закрытия активируется логика «быстрого перезапуска » , позволяющая войти в первую половину следующего цикла , не дожидаясь следующего полного выравнивания. Дополнительный параметр BlockTradingAroundSessionEdges блокирует все сделки в течение 5 минут, окружающих открытие или закрытие сессий.
Бюджетный контроль и защита капитала
Функция CanAffordNextTrade имитирует общую стоимость (существующие позиции + новая сделка) , если цена вернется к нулю , и блокирует любые новые входы, если эта стоимость превышает выделенный капитал (MaxAccountBalance в бэктестинге , BackTestStopThreshold в реальной торговле). Этот механизм защиты предотвращает непреднамеренные маржин -коллы независимо от конфигурации сетки.
Исключение менструаций (фиктивные менструации)
Из бэктеста можно исключить до двух календарных периодов . Советник (Expert Advisor, EA) ожидает естественного закрытия всех открытых сделок, прежде чем приостанавливать любую новую активность в течение фиктивного периода . Количество исключенных дней автоматически вычитается из расчета периодов отсутствия прибыли, чтобы избежать негативного влияния на показатели эффективности.
Система ежемесячной отчетности и HTML-панель управления.
В конце каждого бэктеста советник (Expert Advisor, EA) генерирует кумулятивный CSV- файл (backtest_monthly_totals.csv), в котором записываются все результаты бэктестов со следующими параметрами: оценка OnTester, месячные итоги, максимальная просадка, максимальное количество дней без выигрыша и параметры идентификации . Для каждого запуска генерируется интерактивная HTML- панель ( backtest_monthly_totals.html ) , позволяющая визуально сравнивать все результаты бэктестов с помощью ежемесячных круговых диаграмм, таблиц ранжирования и двух показателей: чистой доходности ( OnTester) и сбалансированного показателя ( с учетом штрафа за ежемесячную нерегулярность с помощью нормализованного стандартного отклонения ) . Динамические фильтры (отображаемое число , взвешивание нерегулярности , исключение отрицательных месяцев ) доступны непосредственно в браузере без перезагрузки страницы .
Критерии для автоматического завершения тестирования результатов.
Несколько механизмов ранней остановки защищают оптимизацию :
- Фон просадки : стоп-лосс , если баланс − капитал ≥ BackTestStopThreshold.
- Неположительный календарный месяц : опция StopIfNonPositiveClosedMonth позволяет остановить расчеты, как только полный месяц завершится со значением ≤ 0 евро .
- Фильтр скользящего окна на месяц : остановить, если прибыль за последние N закрытых месяцев меньше порогового значения MonthlyMinProfitThreshold .
- Дни без прибыли : стоп-лосс, если в течение X последовательных календарных дней не было прибыльных сделок ( исключая фиктивные периоды ) .
Графическое отображение в реальном времени
Настраиваемая панель (цвета, размеры, положение) отображает в режиме реального времени для каждого отслеживаемого актива/магического числа : количество открытых позиций на покупку/продажу, время брокера, текущий спред, время до следующего ордера, уровни нулевого баланса (точки безубыточности для длинных и коротких позиций) с горизонтальными линиями на графике, а также прибыль/убытки за 7 периодов ( свободный баланс, день, вчера, 7 дней, 14 дней, текущий месяц, предыдущий месяц ) с динамической цветовой кодировкой (зеленый/красный). Виртуальный TP отображается в виде линии на графике для кумулятивных режимов.
Трейлинговый стоп-лосс
Стандартный трейлинг-стоп доступен с каждой стороны : TrailingStartBuy /Sell (порог активации в пунктах) и TrailingStopLossBuy/Sell (расстояние удержания). В режимах CUMUL и HEDGE трейлинг рассчитывается как взвешенная сумма пунктов по всем активным позициям, а не по каждой позиции отдельно .
Совместимость и конфигурация
- Совместимо со всеми инструментами MT5 (Forex, CFD на акции, индексы, товары , VIX ).
- Настраиваемое «магическое число», позволяющее нескольким экземплярам сосуществовать в одной учетной записи .
- Настройте спред в ходе тестирования стратегии для имитации реалистичных условий .
- Отладочные журналы можно включить/ отключить, чтобы избежать влияния на производительность оптимизации.
- Проверка согласованности параметров при запуске с блокировкой в случае недопустимой конфигурации .
Функция Trailing SL активна только в следующих режимах.
Сторона ПОКУПКИ :
- РЕЖИМ ПОКУПКИ_НЕТ
- BUY_DIRECT_HEDGE
- BUY_DIRECT_HEDGE_ADD_SELL_TP (семейство)
- BUY_CUMUL_SINGLE
- BUY_CUMUL_MULTI
- BUY_HEDGE_SINGLE
- BUY_HEDGE_MULTI
- BUY_HEDGE_SINGLE_ADD_SELL_TP
- BUY_HEDGE_MULTI_ADD_SELL_TP
- BUY_CUMUL_POS
Сторона продавца :
- SELL_MODE_NONE
- SELL_DIRECT_HEDGE
- SELL_DIRECT_HEDGE_ADD_BUY_TP
- SELL_CUMUL_SINGLE
- SELL_CUMUL_MULTI
- SELL_HEDGE_SINGLE
- SELL_HEDGE_MULTI
- SELL_HEDGE_SINGLE_ADD_BUY_TP
- SELL_HEDGE_MULTI_ADD_BUY_TP
- SELL_CUMUL_POS
