Обсуждение статьи "Пошаговое руководство по написанию советников в MQL5 для начинающих" - страница 31

 

Во-первых, я хотел бы сказать, что прочитал эту статью и скопировал код, потому что хотел научиться кодированию на 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.

Profit By Deal-Entry-In Per Hour Report for MT5 (unlike deal-entry-out in the native Tester Report)
Profit By Deal-Entry-In Per Hour Report for MT5 (unlike deal-entry-out in the native Tester Report)
  • 2026.08.12
  • www.mql5.com
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