Если бы мне давали сто долларов каждый раз, когда я вижу в личных сообщениях скриншот идеального бэктеста с подписью «смотри какая красота, беру на реал», я бы уже закрыл все свои торговые счета и жил на эти деньги. За несколько лет плотной работы с автоматической торговлей золотом я протестировал больше сорока советников, и могу сказать без преувеличения: девяносто процентов красивых кривых баланса на истории не имеют никакого отношения к тому, что произойдёт с вашим депозитом в понедельник утром. Проблема не в том что тестер стратегий MetaTrader врёт — он честно считает то что вы ему скормили. Проблема в том что большинство трейдеров, включая меня пять лет назад, складируют в тестер такие данные которые гарантированно дают красивый результат, а потом искренне удивляются почему реальность выглядит иначе. В этой статье я разберу главные ловушки исторического тестирования, через которые проходит каждый автоматизатор, и покажу свой алгоритм проверки советника перед тем как допустить его к реальным деньгам.
- Почему красивая кривая баланса на бэктесте не доказывает ровным счётом ничего
- Оптимизационное искажение: как я сам себя обманывал и что с этим делать
- Три режима тестирования MetaTrader: какой что показывает и какой я использую
- На что я смотрю в отчёте кроме кривой баланса: пять графиков которые важнее прибыли
- Мой алгоритм из пяти шагов: от первого знакомства с роботом до реальных денег
- Как не обмануть себя цифрами и принимать трезвые решения
- Часто задаваемые вопросы
- Сколько лет истории нужно для нормального тестирования советника?
- Почему результаты на демо-счёте отличаются от бэктеста даже в режиме «все тики»?
- Можно ли доверять встроенному оптимизатору MetaTrader 5?
Почему красивая кривая баланса на бэктесте не доказывает ровным счётом ничего
Корень проблемы находится в том что MetaTrader при тестировании на истории по умолчанию использует модель «все тики», которая на самом деле не является всеми тиками — это эмуляция на основе минутных данных с генерацией искусственных движений внутри минутного бара. Реальные тики, которые видит ваш брокер в момент исполнения ордера, могут отличаться от того что нарисовал тестер, и эта разница особенно критична для скальперских и сеточных стратегий где каждая десятая доля пункта имеет значение. Второй момент который почти все игнорируют — это проскальзывание. В бэктесте ордер открывается ровно по той цене которую вы видите на графике, а в реальной жизни между отправкой ордера и его исполнением проходят миллисекунды, за которые золото, с его волатильностью, может уйти на пару долларов, и за сто сделок эти копейки превращаются в серьёзные отклонения. И наконец третья ловушка — комиссии и свопы. В стандартном прогоне тестер либо вообще их не учитывает либо считает по усреднённым значениям, а ваш реальный брокер дерёт тридцать долларов комиссии за лот и начисляет отрицательный своп за перенос через ночь, что на дистанции в полгода съедает до двадцати процентов прибыли.
Оптимизационное искажение: как я сам себя обманывал и что с этим делать
Самая коварная ошибка которую я совершал в первые годы автоматизации — это подгонка параметров советника под исторические данные таким образом чтобы кривая баланса выглядела как взлётная полоса. Технически это делается просто: вы запускаете оптимизатор, он перебирает тысячи комбинаций параметров, и одна из них обязательно покажет идеальный результат на прошлых данных. Но эта комбинация не имеет предсказательной силы, потому что рынок завтра не будет копией рынка вчера. Представьте что вы пытаетесь предсказать погоду на завтра имея термометр который показывает только вчерашнюю температуру — примерно так работает переоптимизированный советник. Мой личный рецепт борьбы с этим — разбиение исторических данных на две части: период оптимизации и период форвард-теста, который алгоритм никогда не видел. Если результаты на незнакомых данных сопоставимы с оптимизационными — стратегия имеет шанс на жизнь. Если форвард-тест показывает в два раза хуже или сливает — выбрасываю советника без сожалений, какой бы красивой ни была оптимизационная кривая.
Три режима тестирования MetaTrader: какой что показывает и какой я использую
В стандартном тестере стратегий доступны три режима моделирования которые дают принципиально разную картину работы советника, и непонимание разницы между ними — прямой путь к разочарованию. Режим «по ценам открытия» работает быстрее всех и подходит для первого грубого прогона когда вам нужно за десять минут понять общую идею: зарабатывает стратегия в принципе или это гарантированный слив на любых данных. Но этот режим не показывает внутридневные просадки, потому что считает только по ценам открытия баров, и если ваш советник внутри дня заходил в минус на тридцать процентов а к закрытию свечи выходил в плюс — вы этого просто не увидите. Режим «контрольные точки» добавляет моделирование на основе минутных данных и показывает поведение внутри дня, но всё ещё сглаживает картину потому что генерирует тики равномерно. И наконец режим «все тики» — единственный который я использую для финальной проверки перед запуском на реале. Он самый медленный, один прогон может занять несколько часов, но он показывает максимально приближенную к реальности картину с учётом переменного спреда и случайного распределения тиков внутри минутного бара.
На что я смотрю в отчёте кроме кривой баланса: пять графиков которые важнее прибыли
Когда я открываю отчёт тестера стратегий, первое что я делаю — отворачиваюсь от красивой зелёной линии итоговой прибыли и перехожу к цифрам которые реально говорят о качестве стратегии. Показатель номер один — это профит-фактор, но не просто цифра, а его стабильность на разных участках истории. Если на трёх годах данных профит-фактор скачет от 1.1 до 3.5 в зависимости от выбранного периода, стратегия нестабильна и доверять ей нельзя. Второй критический параметр — это максимальная просадка в деньгах, а не в процентах. Проценты лукавят: просадка в двадцать процентов от депозита в сто долларов это двадцать баксов, а та же просадка от депозита в десять тысяч это две тысячи, и психологически это совершенно разные вещи. Третий график который я обязательно изучаю — распределение прибыльных и убыточных сделок по дням недели и времени суток. Бывает что советник стабильно зарабатывает в европейскую сессию и стабильно сливает в азиатскую, и тогда имеет смысл просто ограничить время торговли вместо того чтобы выбрасывать стратегию целиком. Четвёртое — это средний стоп-лосс относительно среднего тейк-профита. Если средний убыток в полтора раза больше средней прибыли, стратегия может быть прибыльной только при очень высоком проценте выигрышных сделок, а это редкость. И пятое — коэффициент Шарпа, который, к сожалению, MetaTrader не считает, но который я вычисляю вручную в Excel чтобы понять, не является ли прибыль результатом одной аномально удачной сделки на фоне общей серости.
Мой алгоритм из пяти шагов: от первого знакомства с роботом до реальных денег
За годы проб и ошибок у меня сложился протокол тестирования нового советника который не гарантирует прибыль, потому что гарантий на рынке не существует, но исключает самых опасных «тихих убийц» депозита которые не видны на первый взгляд. Шаг первый — грубый прогон в режиме «по ценам открытия» на трёх-пяти годах истории чтобы понять, стоит ли вообще тратить время на этого робота. Если на этом этапе стратегия показывает отрицательное матожидание — закрываю терминал и забываю название. Шаг второй — прогон в режиме «все тики» на последних шести месяцах с включёнными комиссиями, свопами и реалистичным спредом, плюс два-три пункта на проскальзывание для золота. Если после этого профит-фактор падает ниже 1.2 — стратегия слишком маржинальная для реальной торговли. Шаг третий — форвард-тест: оптимизирую робота на двух годах истории, а проверяю на следующем годе который алгоритм не видел. Если форвард-период показывает падение профит-фактора больше чем на тридцать процентов — переоптимизация налицо, стратегию в топку. Шаг четвёртый — стресс-тест на кризисных периодах: март 2020 года, сентябрь 2022, март 2023 когда золото делало резкие движения. Если советник переживает эти участки без критических просадок — он имеет право на существование. И наконец шаг пятый — демо-счёт на две-четыре недели с реальными рыночными данными чтобы увидеть как стратегия ведёт себя в прямом эфире с реальными спредами и задержками сервера.
Как не обмануть себя цифрами и принимать трезвые решения
Самый честный разговор который я провожу с собой перед запуском любого нового советника на реальном счёте звучит примерно так: «Ты протестировал его на десяти годах, на трёх режимах, с комиссиями и проскальзыванием, но завтра рынок сделает то чего не делал никогда раньше, и твой робот окажется в ситуации к которой он не готов». Этот разговор не для того чтобы отказаться от автоматизации, а для того чтобы трезво оценивать риски и не завышать ожидания. Главный навык который я развил за годы тестирования — это способность смотреть на отчёт тестера без эмоций, как патологоанатом на вскрытии: холодно, методично, в поисках причины смерти а не подтверждения жизни. И когда я вижу что профит-фактор ниже 1.3, а максимальная просадка выше двадцати процентов, я не ищу оправданий — я просто перехожу к следующему кандидату, потому что рынок не прощает сантиментов.
Обсудить тестирование роботов в канале
Часто задаваемые вопросы
Сколько лет истории нужно для нормального тестирования советника?
Минимальный период который я считаю осмысленным — три года, и обязательно чтобы в эти три года попадали разные рыночные режимы: сильный тренд, затяжной флэт, резкий обвал и восстановление. Если разработчик показывает вам бэктест только за последние полгода когда рынок шёл в одном направлении — это красный флаг, потому что стратегия не проверена на смену рыночных условий и может развалиться при первом же развороте тренда.
Почему результаты на демо-счёте отличаются от бэктеста даже в режиме «все тики»?
Демо-счёт использует реальный поток котировок от брокера с настоящими спредами которые меняются в зависимости от ликвидности, времени суток и новостного фона, тогда как тестер работает с историческими данными где спред либо фиксированный либо усреднённый. Кроме того на демо-счёте появляется фактор задержки исполнения — пинг до сервера брокера, который для VPS обычно составляет единицы миллисекунд но всё равно добавляет разницу между ценой в момент отправки ордера и ценой исполнения.
Можно ли доверять встроенному оптимизатору MetaTrader 5?
Встроенный оптимизатор это мощный инструмент в умелых руках и машина для самообмана в неумелых. Ключевое правило которое я для себя вывел — никогда не оптимизировать больше трёх-четырёх параметров одновременно, потому что каждая дополнительная степень свободы экспоненциально увеличивает риск подгонки под историю. И обязательно использовать генетическую оптимизацию а не полный перебор на больших диапазонах — это не только экономит время но и снижает вероятность найти «идеальную» комбинацию которая работает только на historical данных.








