Во-первых, я хотел бы сказать, что прочитал эту статью и скопировал код, потому что хотел научиться кодированию на MQL5. Во-вторых, я чувствую, что узнал много нового, и сейчас я написал 7 советников и несколько индикаторов. Так что я чувствую, что нахожусь на пути к тому, чтобы изучить его до такой степени, чтобы я мог кодировать свои собственные идеи.
Кроме того. Мне стало очень интересно узнать о тестере стратегий. Сначала я думал, что он слишком прост и никогда не сможет работать. Это не так. Он может работать. Однако. На мой взгляд, она работает только для людей с огромным терпением. Поэтому я протестировал его на USDCAD, на дневном таймфрейме, оптимизировал тейк-профит, стоп-лосс и период ADX. Вкратце история такова. Просто поставьте ADX посередине. Выше 29 и ниже 60. Все будет хорошо. Тейк-профит. Как можно выше. Между 300 и 500. Стоп-лосс. Наверняка намного меньше. Постоянно повторяющееся число было либо 155, либо 30. Затем возникает большая проблема. Я тестировал его с 2019 до начала 2025 года. Он дал от 75 сделок до примерно 45 при самых высоких настройках ADX. Я посмотрел на график из 5 таких тестов. Он болтается около 0 до 2024 года. Затем весь прирост приходится на последний год. Профит-фактор, на который я смотрел, был от 1,77 до 2,61. Везде много проблем. Все шорты были убыточными. 86% лонгов были прибыльными. Многие сделки имели большую продолжительность. В целом, гораздо больше 10 дней. Я думаю, что я видел 3440 часов в качестве самого длительного времени удержания. Среднее значение составило 846 часов. По моим ощущениям, отдача также может быть очень высокой, но кто захочет ограничиваться менее чем 20 сделками через 6 лет?
Я потратил несколько дней на то, чтобы перебрать все 33000 комбинаций. Теперь я буду тестировать дальше и сильно сокращу задачи. Мне не нужны значения ADX выше 55. Стоп-лосс на уровне 30 - это слишком низко, даже если я видел много прибылей и с этим значением. В качестве последнего пункта. Я читал, что можно соединить несколько ПК/ноутбуков в локальную сеть, чтобы увеличить скорость. Я рекомендую это сделать.
Я согласен с тем, что валидация должна выходить за рамки простого выбора наилучшего результата оптимизации. Еще одно опасение, которое у меня возникает, заключается в том, что сама процедура валидации может привести к переобучению.
Например, если мы будем неоднократно изменять окно «walk-forward», допущения метода Монте-Карло, диапазон возмущения параметров или допущения о торговых издержках после ознакомления с результатами, то в конечном итоге можем оптимизировать сам процесс валидации.
Я считаю, что более надежный подход заключается в том, чтобы определить протокол валидации до просмотра окончательных результатов OOS, а затем оставить окончательный период полностью неизменным и использовать его только один раз.
Что касается адаптивных советников, меня также интересует, следует ли валидировать параметры обнаружения режимов отдельно от торговых параметров. Кто-нибудь тестировал этот подход?
Erlend Christiansen #: Во-первых, я хотел бы сказать, что прочитал эту статью и скопировал код, потому что хотел научиться кодированию на MQL5. Во-вторых, я чувствую, что узнал много нового, и сейчас я написал 7 советников и несколько индикаторов. Так что я чувствую, что нахожусь на пути к тому, чтобы изучить его до такой степени, чтобы я мог кодировать свои собственные идеи.
...
Это очень подробный отчёт о вашем первом опыте работы со Стратегическим тестером.
Если позволите, я бы хотел высказать несколько предложений:
Шаг № 1 действительно должен заключаться в проверке качества тиковых данных вашего брокера-дилера. Существует очень хороший скрипт, автоматизирующий этот процесс, по адресу:
Ежемесячные отчеты показывают, действительно ли ваш символ имеет тики или только бары — так вы узнаете, какая часть вашего бэктеста выполнялась на сгенерированных тиках, прежде чем доверять кривой. Тестер стратегий выдает вам один показатель качества истории после завершения теста и никогда не указывает, в каких месяцах возникли проблемы. Этот скрипт сначала запрашивает эту информацию.
Шаг № 2 должен заключаться в тестировании в режиме «Каждый тик на основе реальных тиков» с использованием исторических данных вашего конкретного брокера (на случай, если вы этого ещё не делаете). В зависимости от технических характеристик вашего компьютера вам, возможно, придётся выполнять тестирование частями — особенно на старых машинах.
Шаг № 3 — анализ отчёта тестера, который вы уже начали составлять. Обратите особое внимание на среднее количество последовательных убытков и максимальное количество последовательных убытков. Возможно, вам стоит уменьшить размер позиции, если количество последовательных убытков в режиме реального времени превысит среднее количество последовательных убытков (полное объяснение размещено на стене моего профиля). Также обратите внимание на периоды времени (часы, дни и месяцы), в течение которых ваш советник приносит прибыль. Время входа в сделку изначально не поддерживается, поэтому я создал утилиту, которая генерирует вспомогательный отчет (https://www.mql5.com/en/blogs/post/774010). Возможно, вам стоит внедрить фильтр по времени торговли (https://www.mql5.com/en/blogs/post/770147).
Кстати, существует множество прибыльных позиционных (долгосрочных) трейдеров. Если ваши личные цели соответствуют этому стилю торговли, я бы не слишком беспокоился о частоте торговли. По моему мнению, гораздо проще создать прибыльную стратегию LFT, чем стратегию HFT или даже MFT.
As the MT5 Tester does not natively support reporting hourly profit and loss by deal-entry-in (only deal-entry-out), I created this MQL5 Service to to generate custom backtest reports limited to, and
Во-первых, я хотел бы сказать, что прочитал эту статью и скопировал код, потому что хотел научиться кодированию на MQL5. Во-вторых, я чувствую, что узнал много нового, и сейчас я написал 7 советников и несколько индикаторов. Так что я чувствую, что нахожусь на пути к тому, чтобы изучить его до такой степени, чтобы я мог кодировать свои собственные идеи.
Кроме того. Мне стало очень интересно узнать о тестере стратегий. Сначала я думал, что он слишком прост и никогда не сможет работать. Это не так. Он может работать. Однако. На мой взгляд, она работает только для людей с огромным терпением. Поэтому я протестировал его на USDCAD, на дневном таймфрейме, оптимизировал тейк-профит, стоп-лосс и период ADX. Вкратце история такова. Просто поставьте ADX посередине. Выше 29 и ниже 60. Все будет хорошо. Тейк-профит. Как можно выше. Между 300 и 500. Стоп-лосс. Наверняка намного меньше. Постоянно повторяющееся число было либо 155, либо 30. Затем возникает большая проблема. Я тестировал его с 2019 до начала 2025 года. Он дал от 75 сделок до примерно 45 при самых высоких настройках ADX. Я посмотрел на график из 5 таких тестов. Он болтается около 0 до 2024 года. Затем весь прирост приходится на последний год. Профит-фактор, на который я смотрел, был от 1,77 до 2,61. Везде много проблем. Все шорты были убыточными. 86% лонгов были прибыльными. Многие сделки имели большую продолжительность. В целом, гораздо больше 10 дней. Я думаю, что я видел 3440 часов в качестве самого длительного времени удержания. Среднее значение составило 846 часов. По моим ощущениям, отдача также может быть очень высокой, но кто захочет ограничиваться менее чем 20 сделками через 6 лет?
Я потратил несколько дней на то, чтобы перебрать все 33000 комбинаций. Теперь я буду тестировать дальше и сильно сокращу задачи. Мне не нужны значения ADX выше 55. Стоп-лосс на уровне 30 - это слишком низко, даже если я видел много прибылей и с этим значением. В качестве последнего пункта. Я читал, что можно соединить несколько ПК/ноутбуков в локальную сеть, чтобы увеличить скорость. Я рекомендую это сделать.
Я согласен с тем, что валидация должна выходить за рамки простого выбора наилучшего результата оптимизации. Еще одно опасение, которое у меня возникает, заключается в том, что сама процедура валидации может привести к переобучению.
Например, если мы будем неоднократно изменять окно «walk-forward», допущения метода Монте-Карло, диапазон возмущения параметров или допущения о торговых издержках после ознакомления с результатами, то в конечном итоге можем оптимизировать сам процесс валидации.
Я считаю, что более надежный подход заключается в том, чтобы определить протокол валидации до просмотра окончательных результатов OOS, а затем оставить окончательный период полностью неизменным и использовать его только один раз.
Что касается адаптивных советников, меня также интересует, следует ли валидировать параметры обнаружения режимов отдельно от торговых параметров. Кто-нибудь тестировал этот подход?
Erlend Christiansen #:
Во-первых, я хотел бы сказать, что прочитал эту статью и скопировал код, потому что хотел научиться кодированию на MQL5. Во-вторых, я чувствую, что узнал много нового, и сейчас я написал 7 советников и несколько индикаторов. Так что я чувствую, что нахожусь на пути к тому, чтобы изучить его до такой степени, чтобы я мог кодировать свои собственные идеи.
...
Это очень подробный отчёт о вашем первом опыте работы со Стратегическим тестером.
Если позволите, я бы хотел высказать несколько предложений:
Шаг № 1 действительно должен заключаться в проверке качества тиковых данных вашего брокера-дилера. Существует очень хороший скрипт, автоматизирующий этот процесс, по адресу:
Code Base
Tick Audit — проверка реальной истории тиков и качества бэктеста по месяцам
Аяз, 05.09.2026 06:13
Ежемесячные отчеты показывают, действительно ли ваш символ имеет тики или только бары — так вы узнаете, какая часть вашего бэктеста выполнялась на сгенерированных тиках, прежде чем доверять кривой. Тестер стратегий выдает вам один показатель качества истории после завершения теста и никогда не указывает, в каких месяцах возникли проблемы. Этот скрипт сначала запрашивает эту информацию.Шаг № 2 должен заключаться в тестировании в режиме «Каждый тик на основе реальных тиков» с использованием исторических данных вашего конкретного брокера (на случай, если вы этого ещё не делаете). В зависимости от технических характеристик вашего компьютера вам, возможно, придётся выполнять тестирование частями — особенно на старых машинах.
Шаг № 3 — анализ отчёта тестера, который вы уже начали составлять. Обратите особое внимание на среднее количество последовательных убытков и максимальное количество последовательных убытков. Возможно, вам стоит уменьшить размер позиции, если количество последовательных убытков в режиме реального времени превысит среднее количество последовательных убытков (полное объяснение размещено на стене моего профиля). Также обратите внимание на периоды времени (часы, дни и месяцы), в течение которых ваш советник приносит прибыль. Время входа в сделку изначально не поддерживается, поэтому я создал утилиту, которая генерирует вспомогательный отчет (https://www.mql5.com/en/blogs/post/774010). Возможно, вам стоит внедрить фильтр по времени торговли (https://www.mql5.com/en/blogs/post/770147).
Кстати, существует множество прибыльных позиционных (долгосрочных) трейдеров. Если ваши личные цели соответствуют этому стилю торговли, я бы не слишком беспокоился о частоте торговли. По моему мнению, гораздо проще создать прибыльную стратегию LFT, чем стратегию HFT или даже MFT.