Imperial Dominator
Читайте эту статью на другом языке:
English | 中文 | Español | Português | 日本語 | Deutsch | 한국어 | Français | Italiano | Türkçe | العربية | Bahasa Indonesia | ไทย
Наше сообщество: Присоединяйтесь к русскоязычному каналу MQL5
Imperial Dominator — учебный советник, специально созданный для воспроизведения торговых приёмов, которые использует один из активно продвигаемых советников в MQL5 Market. Его цель — показать, какие серьёзные риски могут скрываться за впечатляющими результатами.
Хотите узнать, какой именно советник из верхних строчек MQL5 Market использует эти приёмы? Напишите мне личное сообщение.
Всё, что описано в этой статье, вы можете самостоятельно проверить в Тестере стратегий, используя демоверсию советника из Market.

Этот график получен с помощью того самого Expert Advisor, о котором пойдёт речь.
Просадки минимальны. Кривая растёт ровно.
Именно такие графики обычно показывают, когда хотят что-то продать.
Но такой результат создал не тестер. Его создал человек.
И в этой статье я покажу, как это делается.
Советник доступен, и вы можете повторить всё самостоятельно. EA Input Parameters Explained
Сначала — что вообще представляет собой этот советник?
Imperial Dominator — простой советник.
Раз в день, в 11:00 (08:00 GMT), он определяет ценовой диапазон по максимуму и минимуму последних восьми часов и выставляет ордера Buy Stop и Sell Stop на границах диапазона.
Каждый сигнал разбивается на семь равных ордеров с фиксированными Stop Loss и Take Profit.
Для открытых позиций используется трейлинг-стоп, а прибыль от новых сделок направляется на принудительное закрытие старых убыточных позиций.
Вот и всё.
Подобный код можно заказать в разделе MQL5 Freelance за несколько десятков долларов.
В витрине Market цену советника с нескольких десятков до нескольких сотен долларов поднимает маркетинг, а не код.
Но зачем вообще показывать такой советник?
Потому что в этой статье мы рассмотрим не только конечный результат.
Мы возьмём один и тот же советник и шаг за шагом разберём, как создаётся этот красивый результат.
Вы сможете запустить его в Тестере стратегий MetaTrader 5, изучить отдельные сделки, изменить настройки и проверить мои выводы.
Вам не нужно верить мне на слово.
Проверьте всё сами.
Первый слой: соотношение
Сначала посмотрите на настройки.

Take Profit составляет 600 p, а Stop Loss — 2600 p.
p = пункты цены.
Таким образом, указанное в настройках соотношение — примерно 1 к 4,3.
У другого советника значения могут отличаться, но при похожей пропорции они будут выглядеть столь же приемлемо.
Но это лишь витрина.
Большинство сделок система закрывает не по Take Profit в 600 пунктов.
Реальное соотношение видно по сделкам.
Посмотрим на одну сделку
Запустите визуальное тестирование и проследите одну сделку от открытия до закрытия.

Позиция открывается.
Take Profit установлен на 600 p — точно как в настройках.
Цена движется в нужную сторону.
Трейлинг-стоп передвигает Stop Loss и фиксирует около 55 пунктов прибыли.
Цена возвращается.
Позиция закрывается с прибылью около 55 пунктов.
Take Profit в 600 p не достигнут.
И в большинстве сделок он не достигается.
Итак, в настройках мы видим:
600 p против 2600 p.
Но в реальной сделке видим:
около 55 p против 2600 p.
Это примерно 1 к 47.
Чтобы перекрыть один убыток в 2600 пунктов прибыльными сделками по 55 пунктов, нужно около 47 таких выигрышей.
Вот откуда берётся высокий процент прибыльных сделок.
Много небольших выигрышей.
Редкие крупные убытки.
Поэтому кривая доходности может выглядеть очень плавной.
Система не стала лучше оттого, что часто выигрывает.
Она просто редко проигрывает — а когда проигрывает, убыток оказывается большим.
Этого соотношения не видно в окне настроек.
Его нельзя понять, просто взглянув на значения Take Profit и Stop Loss.
Оно становится очевидным при изучении отдельных сделок.
Я бы назвал такую систему Loss-Delayed EA — советником с отложенными убытками.
Это не советник, который предотвращает убыток. Это советник, который откладывает его как можно дальше.
Проверьте сами: сделки
Запустите советник в визуальном режиме и проследите десять сделок подряд.
Смотрите, где оказывается Stop Loss спустя несколько минут и с каким результатом позиция фактически закрывается.
Не ограничивайтесь тем, что написано в настройках.
Смотрите, что на самом деле происходит со сделкой.
Чтобы хорошо продаваться, советнику необязательно стабильно работать годами.
Ему нужен период, когда он выглядит исключительно хорошо.
Loss-Delayed EA может создавать такой период самой своей конструкцией: большинство сделок дают небольшую прибыль, а крупный убыток откладывается.
Поэтому длинная серия выигрышей — это не просто хороший результат.
Она может превратиться в маркетинговое окно.
Специально для сигналов MQL5 постоянно запускают небольшие счета с малыми лотами. Как только появляются убытки, такой счёт списывают и заменяют новым.
Но стоит одному из них показать более длинную безубыточную серию — начинается активный маркетинг.
В такие периоды сигнал поддерживают как можно дольше, чтобы успеть продать как можно больше. А когда убытки становятся слишком велики, сигнал просто удаляют, освобождая место следующему, уже ожидающему своего часа.
Второй слой: дробление входа
Теперь посмотрите на один и тот же вход в истории.

Помните, что каждый вход разделяется на семь частей?
В истории это выглядит как семь строк с одинаковыми временем и ценой.
Это как купить один пирог и разрезать его на семь кусков.
У вас не становится семь пирогов.
У вас по-прежнему один пирог.
Но в истории торговли это выглядит как семь отдельных сделок.
Проверьте сами: дробление входа
В Тестере стратегий откройте раздел Results и сравните время и цену открытия.
Если несколько строк совпадают, возможно, один вход был разделён на несколько позиций.
То же самое можно проверить на странице сигнала MQL5 в разделе Trading History.

Почему это важно
Потому что такие серии выигрышей отлично выглядят в рекламе.
Если один вход создаёт семь прибыльных позиций, история показывает семь выигрышей.
Это выглядит куда эффектнее, чем один вход с их суммарной прибылью.


Вы наверняка видели подобные скриншоты.
Строка за строкой — сплошная прибыль, и всё это публикуют одни и те же пользователи. Но как проверить их заявления?
Попросите доказательства торговли крупными лотами — например, историю реального счёта в сервисе сигналов Market или в другом надёжном сервисе сигналов. Без проверяемых доказательств не верьте этому.
Чем больше таких вопросов остаётся без ответа, тем меньше вы на самом деле знаете о торговле советника.
Красивый скриншот доказывает лишь то, что кто-то сделал красивый скриншот. Он ещё не доказывает долгосрочную эффективность советника.
Но прежде чем оценивать систему по такой серии, обратите внимание:
Сколько отдельных входов было на самом деле?
Семь позиций из одного входа — не семь независимых выигрышей.
Например, убытков может не быть целых сорок дней.
Звучит впечатляюще.
Но это всё ещё мало говорит о системе.
Возможно, перед вами лишь небольшой отрезок гораздо более длинной торговой истории.
Зачем дробить вход?
У такого дробления есть и практическая цель.
Советник использует прибыль новых сделок для закрытия старых убыточных позиций до достижения их Stop Loss.
Я мог бы назвать этот механизм:
«sophisticated unique Neural AI technique»
Звучит впечатляюще.
На деле принцип прост.
Если новая позиция приносит прибыль, её можно использовать, чтобы уменьшить убыток по старой убыточной позиции.
В зависимости от периода это то улучшает, то ухудшает результат. Поэтому как элемент стратегии механизм не приносит пользы.
В тестере, в режиме оптимизации, этот механизм можно отключить, установив коэффициент 0 (Batch Coefficient).

Сравните оба результата.

Практическая разница невелика.
Но начинающему трейдеру оставшиеся несколько видимых убытков могут показаться убедительнее, чем кривая совсем без просадок.

И ещё один важный момент об этом эксперименте.
На сигнале Imperial Dominator я также использую свой Recovery Booster.
Он предназначен не только для этого типа советников — это отдельный инструмент восстановления, который можно применять и с другими стратегиями.
В случае Imperial Dominator я использовал его намеренно: чтобы дольше поддерживать систему и проверить, сколько времени её можно сохранять с помощью механизма восстановления, анализирующего историю.
Это не меняет сути системы и не устраняет риск. Более того, такой механизм может серьёзно увеличить просадку (DD) при нескольких убытках подряд (это хорошо видно на моём сигнале).
Третий слой: период
Первые два слоя объясняют, почему кривая может выглядеть плавной.
Но не объясняют, почему на ней вообще может не быть крупных падений.
Вот как выглядит тот же тест, если показать ещё и один убыточный период.

Это всего один убыточный период.
А теперь посмотрим, что будет, если советник не станет торговать в эту дату.
В Imperial Dominator есть параметр Skip Days.
Он запрещает советнику открывать новые ордера в указанные даты.
Установите Skip Days = 241002.

Введите дату, когда советник не должен торговать.
Запустите тест ещё раз.

Падение исчезло. На 2024.10.02 открытых позиций больше нет.
Доля прибыльных сделок выросла.
Максимальная просадка уменьшилась, прибыль выросла, кривая выглядит идеально.
И в отчёте тестера нет ни намёка на то, что этот день был пропущен.
А теперь посмотрим, насколько далеко можно зайти
До сих пор мы исключили только один убыточный период.
Теперь сделаем то же самое с каждым убыточным периодом.
Возьмём 16-летний период тестирования и динамический размер лота.

Результат выглядит просто абсурдно.
Сотни миллионов прибыли.
И вовсе не потому, что мы нашли фантастическую торговую стратегию.
Мы просто разрешили системе торговать динамическим лотом в те исторические дни, результаты которых нам нравятся, и исключили все остальные.
Этот пример показывает, что можно построить на исторических данных, если самостоятельно выбирать дни, когда системе разрешено проигрывать.
Соберите такой вариант сами и посмотрите!
В этом советнике плохие дни не спрятаны в коде — они указаны в поле Skip Days.
Но тот же принцип можно реализовать и в коде, где покупатель его не увидит.
Тогда после крупного убытка на странице Market может появиться новая версия, а в разделе обновления What’s new будет написано, например:
«Improved performance»
или
«Fixed minor issues».
Текст там может быть любым. Исправление заключается в самом обновлении, а не в словах рядом с ним. После этого бэктест советника снова выглядит идеально.
Если дата убытка жёстко прописана в коде советника, вы не увидите её в настройках и не сможете отключить.
Насколько легко технически создать такой бэктест, я подробнее показал в предыдущей статье:
STOP! Backtests Lie. How to Make Any EA Look «Perfect» in 5 Seconds
https://www.mql5.com/en/blogs/post/769134
Поэтому показанный вам бэктест не всегда отражает полную историю системы.
Он может отражать лишь историю тех дней, когда системе разрешили торговать.
Проверьте сами: пропущенный день
Найдите убыточный день в бэктесте своего советника.
Запустите тест за весь период.
Затем исключите эту дату и повторите тест.
Сравните результаты.
Один день способен существенно изменить вид всего бэктеста.
Но нельзя ли делать это честно?
Честный подход — фильтры, тесты, проверки — требует времени.
Но этой системе он не поможет.
Если убытков очень мало, по нескольким случаям нельзя определить, что у них было общего.
Фильтр, построенный на нескольких отдельных случаях, может подогнаться под случайность, а не под закономерность.
Если за год у системы было только три убытка и мы исключили эти три дня, советник от этого не улучшился.
Мы просто убрали из статистики ту часть, которая нам не понравилась.
Следующий убыток может возникнуть в совсем другой день и по другой причине.
Это называется Rare-Event Overfitting — подгонка под редкие события.
Чем точнее фильтр устраняет прошлые убытки, тем более хрупким он может оказаться.
Вероятность избежать всех убытков в будущем, просто исключив даты прошлых потерь, практически равна нулю.
Подробнее о чрезмерной оптимизации бэктестов и её влиянии на результаты вне тестового периода:
Bailey, D., Borwein, J., Lopez de Prado, M., & Zhu, Q. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.
SSRN — full text of the paper
Ещё один способ продлить жизнь реальному сигналу и отсрочить неизбежное
Можно просто сократить количество дней, когда советнику разрешено торговать.
Например, разрешить торговлю только в определённый день недели.
Добавить фильтр новостей.
Запретить торговлю в отдельные часы.
Каждый такой фильтр сам по себе может выглядеть вполне разумно.
И действительно может приносить пользу.
Но на них нужно смотреть и с точки зрения маркетинга.
Чем меньше дней торгует советник, тем меньше возможностей понести убыток.
А чем меньше убытков остаётся в тесте, тем проще получить длительный период без потерь.
Это особенно важно для Loss-Delayed EA: чем дольше удаётся отложить крупный убыток, тем впечатляюще выглядит предыдущая серия выигрышей.
Есть ли у фильтров логическое обоснование или они лишь сокращают число торговых дней, чтобы маркетинг мог дольше рассказывать о том, насколько хороша система?
Например, если система не торгует по пятницам, она работает лишь четыре дня из пяти рабочих.
Значит, та же серия выигрышей, измеренная торговыми днями, растянется по календарю примерно на 25%.
Серия не стала лучше. Она просто развивается медленнее.
Но почему графики реальных сигналов тоже так часто выглядят идеально плавными?
До сих пор мы рассматривали, что можно сделать с самим советником и его бэктестом.
Но в сигналах MQL5 вы уже видите статистику реального торгового счёта.
Возникает логичный вопрос:
Если счёт реальный, почему его кривая доходности тоже может выглядеть почти идеальной?
Здесь манипуляция происходит на другом уровне — не в коде советника, а в способе отображения статистики счёта.
Посмотрим на один и тот же счёт в двух представлениях (Growth и Balance).
Видите разницу?
Результат торговли не изменился.
На графике Growth кривая плавно растёт, хотя за тот же период на счёте были просадки.
На графике Balance видны несколько пополнений и снятий средств.
Это уже совершенно другой уровень манипуляции.
О том, как пополнения и снятия могут создать гораздо более красивую картину статистики сигналов MQL5, поговорим в следующей статье POM Education Series.
Но теперь вы уже знаете: одной красивой кривой недостаточно.
Нужно смотреть, что именно эту кривую сформировало.
Что вы теперь знаете
Теперь вы знаете:
- как небольшие прибыли и крупный убыток могут создать очень высокий процент выигрышных сделок;
- как один вход, разделённый на несколько позиций, может выглядеть как длинная серия выигрышей;
- как исключение плохих периодов делает бэктест красивее;
- как сокращение числа торговых дней растягивает серию выигрышей по календарю;
- и почему сама по себе красивая кривая ничего не доказывает.
Когда в следующий раз увидите идеальный результат советника, не смотрите только на кривую.
Спросите себя: не Loss-Delayed EA ли это?
Посмотрите, что за ней скрывается.
Это только начало
Это первая обучающая статья серии POM Education Series.
Я планирую продолжить серию и рассмотреть другие методы, позволяющие создать обманчивое впечатление о качестве советников.
Если не хотите пропустить следующие статьи, подпишитесь на канал Pulse of Market на MQL5.
Если статья оказалась полезной, поделитесь ею с другими. Иначе такая информация остаётся только у тех, кто уже её нашёл.
Канал Pulse of Market: https://www.mql5.com/en/channels/01a02c54cf2bdd01



