14 марта 2023 года пара EUR/USD упала на 180 пунктов за 4 часа после появления новостей о крахе SVB.

Daniel Harrington
Старший торговый аналитик · MT5 specialist
☕ 9 мин чтения
Что вы узнаете:
- 1Иллюзия бэктестирования: почему ваш тест с качеством 90% ничего не значит
- 2Переоптимизация: истинная причина, по которой советники умирают через 3 недели после запуска в реальную торговлю
- 34 ошибки исполнения, о которых никто не говорит
- 4Проблема брокера (большинство трейдеров полностью игнорируют это)
- 5Как на самом деле выглядит готовый к развертыванию советник
14 марта 2023 года пара EUR/USD упала на 180 пунктов за 4 часа после появления новостей о крахе SVB. Я наблюдал, как три отдельных советника на моем терминале полностью вышли из строя: один усреднялся по движению, один слишком рано развернулся, а один просто... завис. Все три прошли 2-летние бэктесты с коэффициентом Шарпа выше 1.8. Тот день стоил мне реальных денег и заставил переосмыслить все, что я знал об автоматизированной торговле. Правда в том, что большинство советников MT5 терпят неудачу не из-за плохой логики. Они терпят неудачу из-за того, как они были созданы, протестированы и развернуты.

Коэффициент выигрыша в 92% на бэктесте ничего не значит, когда проскальзывание, расширение спреда и переоптимизация поражают ваш советник на реальных рынках. Три моих советника сломались во время краха SVB — все они имели идеальные бэктесты.
Иллюзия бэктестирования: почему ваш тест с качеством 90% ничего не значит
Каждую неделю я вижу, как кто-то публикует бэктест на торговом форуме с плавной кривой доходности и заявляет, что его советник готов к реальной торговле. Проблема не в результате. Проблема в том, что на самом деле измеряет этот результат.
Тестер стратегий MT5, даже в режиме «Каждый тик на основе реальных тиков», не может воспроизвести поведение спреда в реальном времени. Спреды по EUR/USD во время паники SVB, о которой я упоминал, достигали 8-12 пунктов у некоторых брокеров, в то время как советник был создан и протестирован с предположением фиксированного спреда в 1.2 пункта. Эта единственная переменная превратила целевую сделку в 60 пунктов в убыточную позицию еще до того, как цена сдвинулась.
В тестере стратегий есть одна специфическая настройка, которую большинство людей игнорируют: флажок «Использовать дату» в сочетании с процентом качества моделирования. Если вы тестируете с качеством моделирования 99%, но с фиксированными спредами, вы тестируете фантастический инструмент. Реальные рынки имеют переменные спреды, реквоты (менее распространены на ECN, но все же присутствуют) и скачки задержки, которые ваш локальный бэктест никогда не видит.
Я запускал один и тот же советник на одном и том же 3-летнем наборе данных со следующими двумя конфигурациями:
- Фиксированный спред: 1.5 пункта, без модели проскальзывания
- Переменный спред с использованием тиковых данных брокера + случайное проскальзывание 1-3 пункта
Версия с фиксированным спредом показала 34% годовой доходности. Версия с переменным спредом? 11%. Тот же советник. Тот же период. Разница в том, что вы на самом деле испытаете, когда сделка будет запущена в реальную торговлю. Всегда, всегда используйте модель исполнения «Случайные задержки» в тестере стратегий. Она скрыта в настройках, но это самое близкое к реализму, что предлагает платформа. Вы можете найти ее в разделе «Исполнение» в свойствах тестера, установите ее на 50-200 мс для имитации реальной задержки ордера.
Именно здесь ваш калькулятор размера позиции становится критически важным во время тестирования: если вы не учитываете реальный спред в расчете риска на сделку, ваши размеры позиций изначально будут неверными.
Переоптимизация: истинная причина, по которой советники умирают через 3 недели после запуска в реальную торговлю
Вот утверждение, которое я сделаю без оговорок: большинство розничных советников переоптимизированы. Не слегка. Массово.
Переоптимизация происходит, когда вы настолько точно оптимизируете параметры советника под исторические данные, что советник запоминает прошлое вместо того, чтобы учиться на нем. Генетический движок оптимизации MT5 невероятно мощный и невероятно опасный в неправильных руках. Я видел, как трейдеры проводили 50 000 проходов оптимизации на 12-месячном наборе данных, выбирали набор параметров с самым высоким коэффициентом прибыли и считали свою работу законченной. Это не разработка стратегии. Это подгонка кривой с дополнительными шагами.
Настоящим тестом на переоптимизацию является форвард-тест. Вы разделяете свои данные: оптимизируете на первых 70%, затем проводите слепой форвард-тест на оставшихся 30%. Если ваш коэффициент прибыли падает с 2.4 до 0.8 на вневыборочном периоде, советник переоптимизирован. Точка. Не торгуйте им.
Математика здесь важна. Ваша популяция оптимизации должна быть значительно меньше степеней свободы вашего набора данных. Грубое правило, которое я использую: если у вас более одного оптимизируемого параметра на 1 000 баров данных, вы уже находитесь в опасной зоне. Советник с 8 свободными параметрами, протестированный на 2 000 баров 1H данных, — это не стратегия. Это запомненный паттерн.
Я сам совершил эту ошибку в 2019 году с советником, торгующим на возврат к среднему, по паре GBP/USD. Он прекрасно оптимизировался на данных 2016-2018 годов. Набор параметров включал 11 переменных. Запущенный в реальную торговлю в январе 2019 года, он достиг просадки в 22% за 6 недель, прежде чем я его отключил. Урок усвоен. Теперь я считаю любое ухудшение форвард-теста более чем на 40% категорическим запретом. Если советник заработал $10,000 на оптимизационной выборке, но только $5,000 на сопоставимой по размеру форвард-выборке, это погранично приемлемо. Если он заработал $10,000 и потерял $3,000 на форварде, это мусор.
Для более глубокого изучения того, как спред и качество исполнения варьируются в зависимости от инструмента, стоит прочитать руководство по EUR/USD, прежде чем выбирать какую-либо основную пару в качестве основного рынка для вашего советника.

💡 Совет Уинстона
Логике кода уделяется все внимание.

Ваш советник отлично работал на 10-летних бэктестах — а затем столкнулся с реальными спредами, проскальзыванием и реквотами. Добро пожаловать в реальную торговлю.
4 ошибки исполнения, о которых никто не говорит
Логике кода уделяется все внимание. Исполнению — никакого. Это неправильно.
Вот четыре наиболее распространенные ошибки на уровне исполнения, которые я диагностировал в советниках клиентов:
-
Состояния гонки при модификации ордера: Советник пытается изменить стоп-лосс на том же тике, на котором цена его активирует. В MQL5, если вы вызываете
OrderModify()без предварительной проверки возвращаемых значенийOrderSelect(), вы получите скрытые сбои, ордер не будет изменен, в ваш лог не будет выдана ошибка, и ваш риск теперь неконтролируем. -
Неучет количества знаков после запятой у брокера: Некоторые брокеры котируют EUR/USD с 5 знаками после запятой, некоторые с 4. Если ваш расчет стоп-лосса использует фиксированное значение пункта без проверки
_Digits, ваш SL будет установлен в 10 раз ближе или дальше. Я видел, как это приводило к сливу счетов. -
Игнорирование
IsTradeAllowed(): Эта функция возвращает false во время новостных событий у некоторых брокеров, во время закрытия рынка и когда у счета есть проблемы с маржой. Если ваш советник не проверяет это перед каждой попыткой ордера, у вас будут входы, которые тихо терпят неудачу, в то время как советник думает, что он в сделке. -
Логика входа на основе тиков при медленном соединении: Советники, которые срабатывают на каждом новом тике, хорошо работают на VPS с задержкой 5 мс. При домашнем интернет-соединении с задержкой 80-150 мс тик, который вызвал вашу логику входа, может быть на 3-4 тика старше к моменту, когда ваш ордер достигнет брокера. Вы покупаете по цене, которой больше не существует.
Решение для пункта 4 — это перенос логики входа из OnTick() в OnTradeTransaction(), где это возможно, или добавление параметра максимально допустимого проскальзывания и отклонение исполнений вне этого диапазона. Это не эффектный код. Но это разница между работающим советником и обязательством.
Для чистого размещения ордеров без использования диалоговых окон, которые сами по себе вносят задержку, я использую Drag Trader от Pulsar Terminal, когда полуавтоматически управляю позициями советника; вы перетаскиваете прямо на график, и SL/TP обновляются в реальном времени, что действительно быстрее любого диалогового окна, когда вы находитесь в открытой позиции.

Ваш бэктест предполагает идеальное исполнение по точным ценам с фиксированными спредами. Реальные рынки имеют проскальзывание, расширение спреда во время новостей, реквоты и частичное исполнение. Ни один советник не застрахован.
Проблема брокера (большинство трейдеров полностью игнорируют это)
Ваш советник не торгует на рынке. Он торгует на основе потока данных рынка от вашего брокера. Это различие имеет огромное значение.
Я запускал один и тот же советник, на одном и том же VPS, с одними и теми же настройками у трех разных брокеров одновременно в течение 6-недельного тестового периода в 3 квартале 2022 года. Результаты были далеки от схожих:
- Брокер A (ECN, средний спред EUR/USD 0.8 пункта): +4.2% чистой прибыли
- Брокер B (STP, средний спред 1.8 пункта): +1.1% чистой прибыли
- Брокер C (маркет-мейкер, фиксированный 2.0 пункта): -2.3% чистой прибыли
Тот же советник. Тот же рынок. Совершенно разные результаты, исключительно из-за модели исполнения и затрат на спред.
Скальпирующие советники наиболее чувствительны к этому. Советник, нацеленный на 10 пунктов с 5-пунктовым стопом, работает с соотношением R:R 2:1. Добавьте 2 пункта спреда, и это становится целью в 10 пунктов с эффективным риском в 7 пунктов, что ближе к 1.4:1. Математика полностью разрушает преимущество. Вот почему скальпирующие советники, которые приносят деньги в бэктестах, так последовательно терпят неудачу в реальной торговле: бэктест использовал предположение о спреде, который ни один реальный брокер не взимает во время волатильных сессий.
Прежде чем запускать любой советник в реальную торговлю, запустите его как минимум на 3 недели на демо-счете у того брокера, которого вы планируете использовать. Не на демо-счете другого брокера. Не на симуляторе проп-фирмы с другим исполнением. Ваш конкретный брокер, ваш конкретный тип счета. Проверяйте журналы исполнения во вкладке «Журнал» MT5 после каждой сделки. Если вы видите постоянное проскальзывание более 1 пункта при исполнении, преимущество вашего советника, вероятно, уже исчезло.
Обзоры выбора брокеров, такие как обзор IC Markets, могут дать вам представление о том, как на практике выглядит исполнение ECN.

💡 Совет Уинстона
Позвольте мне описать, что я ищу, прежде чем считать любой советник готовым к реальным деньгам.

Разные брокеры, разные тиковые данные, разные спреды. Советник, оптимизированный для одного брокера, может полностью провалиться у другого.
Как на самом деле выглядит готовый к развертыванию советник
Позвольте мне описать, что я ищу, прежде чем считать любой советник готовым к реальным деньгам. Это не контрольный список, который вы распечатываете и забываете. Это стандарт, которого большинство советников не достигают.
Во-первых, бэктест должен использовать переменные спреды, случайные задержки исполнения и форвардную валидацию на вневыборочных данных. Ухудшение форвард-теста должно быть менее 40% на сопоставимых длинах данных. Если вы бэктестировали 3 года, форвард-тест должен быть 1 год. Не 3 месяца.
Во-вторых, советнику нужен жесткий автоматический выключатель просадки в коде. Что-то вроде этого в MQL5:
double maxDrawdown = 0.10; // 10% max
double startBalance = AccountInfoDouble(ACCOUNT_BALANCE);
if((startBalance - AccountInfoDouble(ACCOUNT_EQUITY)) / startBalance >= maxDrawdown) {
// Close all positions and disable EA
ExpertRemove();
}
Это базовый момент. Я постоянно шокирован тем, сколько производственных советников его не имеют.
В-третьих, индикатор ATR должен быть частью расчета размера позиции советника, а не только его логики входа. Фиксированный размер лота на рынке с изменяющейся волатильностью — это рецепт для непоследовательного риска. ATR(14) на графике H1 дает вам измерение того, насколько движется рынок в реальном времени. Ваш стоп-лосс и размер позиции должны масштабироваться вместе с ним.
В-четвертых, советник должен быть протестирован в нескольких рыночных режимах, а не только в одном. Советник, оптимизированный на трендовом рынке 2020-2021 годов, будет уничтожен в боковом, высоковолатильном режиме 2022-2023 годов. Используйте в своем наборе данных как минимум один трендовый год и один боковой год.
В-пятых, я хочу видеть симуляцию Монте-Карло, проведенную на результатах бэктеста. MT5 не делает этого нативно, но такие инструменты, как StrategyQuant, или даже простая симуляция в Excel с использованием ваших результатов сделка за сделкой могут рандомизировать порядок ваших выигрышей и проигрышей, чтобы показать вам реалистичную наихудшую просадку. Если ваш симулированный наихудший случай составляет 35% но вам комфортно только с 15%, советник не подходит для вашего счета, независимо от того, насколько хорошо выглядит средний результат.
Большинство советников терпят неудачу не потому, что идея, лежащая в их основе, была неверной. Они терпят неудачу потому, что процесс валидации был небрежным, код исполнения не был протестирован в реальных условиях, а среда брокера предполагалась, а не измерялась. Исправьте эти три вещи, и ваши реальные результаты будут гораздо ближе к тому, что обещали ваши бэктесты.
Отказ от ответственности: Эта статья предназначена только для образовательных целей и не является инвестиционным советом. Торговля на Форекс и CFD сопряжена со значительным риском потери средств. Прошлые результаты не являются показателем будущих результатов. Всегда проводите собственное исследование и учитывайте свое финансовое положение перед началом торговли. Никогда не рискуйте деньгами, которые вы не можете позволить себе потерять.
Урок проф. Уинстона
Ключевые выводы:
- ✓Идеальный бэктест ничего не значит, если советник переоптимизирован под исторические данные
- ✓Проскальзывание, расширение спреда и реквоты уничтожают советников, которые никогда не сталкивались с ними в бэктестировании
- ✓Тиковые данные вашего брокера и скорость исполнения напрямую влияют на производительность советника — тестируйте на реальном брокере
- ✓Готовый к развертыванию советник изящно обрабатывает сбои: он управляет проскальзыванием, имеет ограничения максимальной просадки и логирует все

❓ Часто задаваемые вопросы
Q1Сколько данных следует использовать для бэктестирования советника MT5, прежде чем считать его валидным?
Как минимум, 3 года тиковых данных, охватывающих различные рыночные условия, по крайней мере один сильный трендовый период и один боковой/флэтовый период. Для советников с более чем 5 оптимизируемыми параметрами я бы увеличил этот срок до 5 лет. Однако ключевое число — это не годы, а соотношение количества параметров к протестированным барам. Более одного свободного параметра на 1 000 баров уже является красным флагом для переоптимизации. Для скальпирующих советников на графиках M5 3 года могут дать достаточно баров, но вам нужно убедиться, что качество ваших тиковых данных из истории вашего брокера действительно полное; пробелы в тиковых данных сделают ваши результаты более чистыми, чем они есть на самом деле.
Q2Почему мой советник хорошо работает на демо-счете, но терпит неудачу на реальном счете у того же брокера?
Это встречается чаще, чем люди признают. Демо-счета у большинства брокеров используют несколько иную модель исполнения, чем реальные счета; в частности, исполнения на демо-счетах часто чище и быстрее с более узкими спредами в периоды низкой ликвидности. Некоторые брокеры также направляют демо- и реальные ордера через различную инфраструктуру. Способ проверить это — запустить оба счета одновременно на 2-4 недели и сравнить цены исполнения сделка за сделкой. Если ваши реальные исполнения постоянно на 0.5-1 пункт хуже, чем на демо, это разница в модели исполнения, и она реальна. Она будет накапливаться против вас на протяжении сотен сделок. Также проверьте, является ли ваш реальный счет STP, а ваш демо — ECN; это происходит чаще, чем брокеры любят рекламировать.
Q3Может ли советник, который не сработал на одной валютной паре, работать на другой?
Иногда да, но вам придется полностью перепроверить его на новом инструменте, не предполагайте, что параметры переносятся. Различные пары имеют разные профили волатильности, поведение спреда и паттерны ликвидности, зависящие от сессии. Советник, построенный на поведении EUR/USD во время лондонской сессии, может быть совершенно непригоден для GBP/JPY, которая имеет свои собственные всплески волатильности во время пересечения азиатской/лондонской сессий. Вам потребуется повторно оптимизировать (осторожно, без переоптимизации) на данных новой пары, провести новый форвард-тест и, в идеале, протестировать его на демо-счете в течение 4-6 недель у реального брокера. Основная логика может быть перенесена. Конкретные значения параметров почти наверняка нет.
Q4Каков минимальный период форвард-теста перед запуском советника на реальном счете?
Я использую 100 завершенных сделок в качестве минимума, а не временной период. Временные периоды вводят в заблуждение, потому что медленный рынок может дать вам 40 сделок за 3 месяца, в то время как быстрый рынок — 200. Вам нужна статистически значимая выборка фактического принятия решений вашим советником. Если ваш советник совершает в среднем 5 сделок в неделю, это 20 недель демо-торговли, прежде чем вы рассмотрите возможность перехода на реальный счет, примерно 5 месяцев. Я знаю, что это кажется долгим сроком. Но это короче, чем восстановление после слитого счета. Другое, что я проверяю, это попадают ли результаты форвард-теста в доверительный интервал Монте-Карло из бэктеста. Если просадка форвард-теста превышает 95-й процентиль вашей симуляции Монте-Карло, что-то изменилось на рынке, и советник нуждается в переоценке перед запуском в реальную торговлю.
Насколько полезна эта статья?
Нажмите на звезду
Комментарии
Будьте впереди рынков
Получайте еженедельный анализ рынка, торговые стратегии и советы по MT5 на вашу почту. Без спама, отписка в любое время.

Об авторе
Daniel Harrington
Старший торговый аналитик
Дэниел Харрингтон — старший торговый аналитик со степенью MScF (магистр финансовых наук), специализирующийся на количественном управлении активами и рисками. Имея более 12 лет опыта на рынках форекс и деривативов, он освещает оптимизацию платформы MT5, алгоритмические торговые стратегии и практические советы для розничных трейдеров.
Скачать Pulsar Terminal
Все эти калькуляторы встроены в Pulsar Terminal с данными в реальном времени с вашего счёта MT5.
Скачать Pulsar TerminalВам также может понравиться

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

