Стандартный бэктест показывает только одну историческую последовательность сделок. Стратегия могла сначала получить несколько прибыльных сделок, затем пройти серию убытков, после нее поймать крупную прибыль и завершить период восстановлением капитала. Но те же или похожие сделки могли бы расположиться иначе: серия убытков могла возникнуть сразу после запуска, крупнейшие потери могли оказаться рядом, а восстановление могло занять намного больше времени.
Монте-Карло — это метод многократного моделирования случайных сценариев на основе заданных правил и исходных данных. В контексте Монте-Карло торговой стратегии он помогает увидеть не одну красивую историческую траекторию, а распределение возможных вариантов: прибыли, максимальной просадки, серии убытков, длительности восстановления и риска критической потери капитала.
Тест Монте-Карло не предсказывает будущее. Он показывает, насколько сильно результат может измениться при реалистичных отклонениях от исходного бэктеста. Поэтому его стоит воспринимать как дополнительный стресс-тест стратегии, а не как гарантию безопасности или прибыли.
Что такое тест Монте-Карло торговой стратегии
Тест Монте-Карло — это многократное создание альтернативных вариантов работы торговой системы путем случайного изменения определенных элементов исходного теста. В зависимости от выбранного метода можно менять порядок сделок, результаты отдельных сделок, пропуск части сигналов, значения параметров, размер спреда, комиссию, проскальзывание, время или цену входа, исторические данные и последовательность доходностей.
Каждый отдельный вариант называется симуляцией или сценарием. После сотен или тысяч сценариев трейдер получает не одну цифру, а распределение результатов: итоговой прибыли, максимальной просадки, длительности просадки, коэффициента восстановления, минимального капитала, числа убыточных сделок подряд и вероятности достижения заданного уровня потерь.
Анализировать нужно не отдельную лучшую или худшую симуляцию, а всю картину распределения. Лучший сценарий часто слишком оптимистичен, худший может быть экстремальным, а практическую ценность обычно дают медиана, неблагоприятные процентили и сравнение с историческим бэктестом.
Монте-Карло не предсказывает точную будущую просадку
Он показывает распределение результатов внутри выбранной модели. Если модель слишком упрощена или исходные данные некачественные, распределение тоже будет ограниченным.
Зачем нужен стресс-тест стратегии
Главная задача теста Монте-Карло — проверить, насколько стратегия зависит от удачного исторического порядка событий. Одна и та же совокупность сделок может дать умеренную просадку в исходном бэктесте и гораздо более тяжелый старт при другой последовательности прибыльных и убыточных сделок.
Вторая задача — оценка возможной просадки. Моделирование помогает увидеть, насколько максимальная просадка в альтернативных сценариях может превышать историческое значение. Это особенно важно, если по исходному отчету выбирается риск на сделку или размер позиции.
Третья задача — проверка запаса прочности. Можно ухудшить торговые условия: увеличить спред, комиссию, проскальзывание, сместить цену входа или немного изменить параметры. Если небольшое ухудшение исполнения полностью разрушает результат, устойчивость торговой системы сомнительна.
Монте-Карло помогает сравнивать стратегии. Две системы с одинаковой исторической доходностью могут иметь разное распределение возможных просадок и разные периоды восстановления. Но это дополнительный стресс-тест, а не замена качественного бэктеста торговой стратегии, проверки вне выборки и форвард-теста.
Почему одного бэктеста недостаточно
Допустим, исторический тест содержит 500 сделок, чистую прибыль 80 000 долларов, максимальную просадку 12% и Profit Factor 1,55. Такой отчет полезен, но он показывает результат только одной последовательности рыночных событий.
Если несколько крупных убыточных сделок расположить рядом, максимальная просадка может увеличиться, даже если сами сделки не изменились. Будущие сделки также могут исполняться по другим ценам, получать большее проскальзывание, возникать при другом спреде, пропускаться из-за технических ошибок или изменяться после небольшого сдвига параметров.
Поэтому Монте-Карло проверяет не точность исторического отчета, а чувствительность стратегии к неопределенности. Это особенно важно после оптимизации, когда результат может быть слишком хорошо подстроен под прошлую последовательность данных. Подробнее о риске подгонки рассказано в статье про переоптимизацию торговой стратегии.
Перестановка сделок в случайном порядке
Перестановка сделок — один из самых понятных методов Монте-Карло торгового робота. Из исторического теста берутся результаты всех сделок, сами значения прибыли и убытка сохраняются, но их порядок случайным образом меняется. На основе новой последовательности строится альтернативная кривая капитала. Процесс повторяется сотни или тысячи раз.
Исходно: +300, +200, -100, +500, -250, -150
Сценарий: -250, -150, -100, +300, +200, +500
Набор сделок одинаков, но характер просадки отличается. Первая последовательность начинается с роста капитала, а вторая — с серии убытков. Для инвестора эти сценарии психологически и финансово не равны, хотя итоговая сумма при фиксированном размере сделки может совпадать.
При фиксированном денежном размере каждой сделки простая перестановка не меняет итоговую сумму прибыли. Она меняет форму кривой капитала, максимальную просадку, длительность восстановления и последовательность убытков. Если используется реинвестирование и размер позиции зависит от текущего капитала, изменение порядка сделок может изменить и конечный результат.
Что показывает случайный порядок сделок
Случайный порядок сделок помогает оценить возможную максимальную просадку, серию убытков, длительность нахождения ниже предыдущего максимума, минимальный уровень капитала, риск неблагоприятного старта и вероятность достижения заданного уровня потерь.
Например, исторический тест показал максимальную просадку 10% и максимальную серию из 6 убыточных сделок. После 10 000 перестановок медианная максимальная просадка может составить 13%, просадка при доверительном уровне 95% — 21%, при уровне 99% — 27%, а серия убытков при уровне 95% — 11 сделок.
Это не означает, что просадка обязательно достигнет 21% или не превысит 27%. Это означает, что историческая просадка могла оказаться удачным вариантом последовательности и не должна использоваться как гарантированный предел будущих потерь.
Ограничения случайной перестановки
Простая перестановка предполагает, что исторические сделки можно свободно менять местами. В реальности это не всегда верно: сделки зависят от рыночного режима, волатильность часто объединяется в периоды, прибыльные и убыточные сделки образуют кластеры, несколько позиций могут быть открыты одновременно, а сделки по коррелирующим инструментам связаны.
Для портфельных систем особенно важно сохранять связь между одновременными сделками. Нельзя независимо перемешивать сделки коррелирующих стратегий, если это уничтожает реальные периоды совместных убытков. Иначе модель занизит риск портфеля.
Более корректные методы могут переставлять дневные доходности, группы сделок, временные блоки, целые торговые дни или связанные портфельные результаты. Выбранный метод должен соответствовать структуре стратегии, а не просто быть удобным для расчета.
Повторная выборка сделок
Повторная выборка отличается от обычной перестановки. При перестановке каждая историческая сделка используется один раз, меняется только порядок. При повторной выборке сделки случайно выбираются из исходного набора: одна сделка может попасть в сценарий несколько раз, другая может не попасть совсем, а распределение итоговой прибыли также может измениться.
Исходно: +100, +200, -150, +300, -250
Выборка: -250, -250, +100, +300, -150
Этот метод создает более разнообразные сценарии, но все равно опирается на историческое распределение сделок. Он не способен автоматически смоделировать рыночное событие, которого вообще не было в исходной истории. Поэтому качество исходной статистики остается критически важным.
Случайный пропуск сделок
В реальной торговле часть сигналов может быть пропущена: сбой связи, задержка терминала, отказ VPS, изменение ликвидности, ручная остановка советника или ограничение брокера. Тест случайного пропуска сделок проверяет, насколько результат зависит от отдельных входов.
Если стратегия остается устойчивой при пропуске 3-5% случайных сделок, это хороший признак. Если несколько пропущенных прибыльных сделок полностью уничтожают итоговый результат, система слишком сильно зависит от редких удачных событий. Такой вывод особенно важен для роботов с небольшим количеством сделок.
Изменение параметров торгового робота
Моделирование изменения параметров стратегии проверяет чувствительность системы. Например, можно немного менять период индикатора, уровень фильтра волатильности, стоп-лосс, тейк-профит или время входа. Цель — понять, сохраняется ли логика стратегии рядом с выбранными значениями.
Если небольшое изменение параметров резко ухудшает результат, возникает риск переоптимизации. Устойчивая торговая система обычно имеет не одну точку с идеальным отчетом, а область рабочих значений. Это связано с понятием робастности стратегии: результат не должен зависеть от чрезмерно точной настройки.
Важно задавать реалистичные диапазоны случайных изменений. Слишком широкий диапазон может разрушить даже разумную стратегию, а слишком узкий не покажет хрупкость. Проверка должна соответствовать логике рынка и таймфрейму системы.
Проверка спреда и проскальзывания
Увеличение спреда, комиссии и проскальзывания показывает запас торгового преимущества. Если средняя сделка небольшая, даже умеренное ухудшение исполнения может превратить прибыльную модель в слабую или убыточную. Поэтому моделирование проскальзывания особенно важно для внутридневных стратегий и частых советников.
Практический подход: увеличить спред на реалистичную величину, добавить случайное проскальзывание, учесть комиссию и сравнить распределение результатов. Если стратегия сохраняет положительное ожидание в большинстве разумных сценариев, у нее есть запас прочности. Если результат держится только при идеальном исполнении, риск торгового робота выше, чем кажется по бэктесту.
Торговые издержки нельзя моделировать произвольно. Для фьючерсов, CFD и разных брокеров характерны разные комиссии, спреды и режимы ликвидности. Стресс-тест должен опираться на реалистичные данные, иначе он создаст либо ложное спокойствие, либо чрезмерный пессимизм.
Что означает доверительный уровень
Доверительный уровень в отчете Монте-Карло показывает, какая часть симуляций оказалась не хуже выбранного значения внутри конкретной модели. Например, просадка при уровне 95% означает, что в 95% смоделированных сценариев просадка была равна этому значению или меньше, а в 5% сценариев — хуже.
Доверительный уровень 95% не означает, что реальный результат не может оказаться хуже
Он не является гарантией. Реальный рынок может выйти за рамки исходных предположений, а модель может не учитывать события, которых не было в исторических данных.
Как оценить возможную просадку
Оценка возможной просадки начинается со сравнения исторической просадки с распределением Монте-Карло. Если исторический тест показал 11%, а медианная симуляция дает 15%, уровень 95% — 24%, а уровень 99% — 31%, значит исходный отчет был относительно мягким сценарием.
Для планирования риска лучше ориентироваться не на историческую максимальную просадку, а на неблагоприятные, но реалистичные значения. Это помогает выбрать размер позиции так, чтобы серия убытков не привела к критической потере капитала. Подробнее о природе просадки есть в статье о максимальной просадке торговой стратегии.
Важно учитывать длительность восстановления. Две стратегии могут иметь одинаковую глубину просадки, но одна восстанавливается за два месяца, а другая за полтора года. Для инвестора это разные риски, даже если итоговая прибыль похожа.
Монте-Карло для портфеля стратегий
В портфеле торговых стратегий нельзя рассматривать каждого робота полностью изолированно. Если несколько систем торгуют похожие рынки или реагируют на один и тот же режим волатильности, их убытки могут совпадать во времени. Независимое перемешивание сделок может случайно разрушить эту связь и занизить риск.
Для портфельного анализа лучше моделировать дневные доходности, группы сделок или связанные периоды. Это позволяет сохранить корреляцию торговых стратегий и увидеть риск совместных просадок. Диверсификация полезна только тогда, когда стратегии действительно по-разному реагируют на рынок, а не просто красиво выглядят в отдельных отчетах.
Портфельный Монте-Карло помогает оценить распределение общей просадки, вероятность одновременного ухудшения нескольких систем и влияние размера позиции на совокупный риск. Эту проверку полезно сочетать с анализом диверсификации портфеля стратегий.
Как использовать Монте-Карло при выборе размера риска
Один из практических результатов моделирования — корректировка размера позиции. Если исходный бэктест показывает просадку 11%, трейдер может решить, что риск выбран комфортно. Но если Монте-Карло показывает 95-й процентиль просадки 24% и 99-й процентиль 31%, реальный запас капитала должен планироваться иначе.
Размер риска лучше выбирать не по средней симуляции, а по неблагоприятному, но реалистичному сценарию. Если инвестор готов выдержать просадку до 20%, а моделирование показывает 31% при текущем размере позиции, риск на сделку может быть завышен. Снижение размера позиции уменьшит ожидаемую доходность, но также снизит вероятность критического сценария.
Важно помнить, что уменьшение риска не делает стратегию прибыльной само по себе. Если торговая система имеет слабое или отрицательное математическое ожидание, снижение позиции лишь замедлит потери. Поэтому Монте-Карло стоит применять после проверки качества бэктеста, логики стратегии, издержек и устойчивости параметров.
Практичный порядок такой: сначала оценить распределение просадки и прибыли, затем определить максимально допустимую потерю капитала, после этого подобрать размер позиции и снова провести стресс-тест. Если даже при умеренном риске сценарии остаются слишком тяжелыми, стратегию лучше доработать или исключить из портфеля.
Вероятность разорения и критический уровень капитала
В практическом анализе торгового робота важно не только знать возможную просадку, но и понимать вероятность достижения критического уровня капитала. Для одного инвестора критическим может быть снижение на 20%, для другого — на 35%, для управляющего портфелем — нарушение лимита риска или маржинальных требований.
Монте-Карло позволяет посчитать, в какой доле сценариев капитал опускается ниже заданного уровня. Например, если при текущем размере позиции 7% симуляций показывают падение капитала более чем на 30%, это не означает, что именно такая вероятность реализуется в будущем. Но это сигнал, что выбранный риск может быть слишком высоким для заявленного лимита.
Вероятность разорения нельзя интерпретировать как точную математическую гарантию. Она зависит от исходных сделок, модели проскальзывания, способа перестановки, учета реинвестирования, торговых издержек и предположений о будущей структуре рынка. Если в исторических данных не было кризисного периода, модель может недооценить хвостовой риск.
Тем не менее такой расчет полезен. Он переводит обсуждение риска из области ощущений в область сценариев: что произойдет, если серия убытков начнется сразу после запуска, если спред расширится, если несколько лучших сделок будут пропущены, если параметры немного сместятся от оптимальных значений.
Ограничения метода Монте-Карло
Монте-Карло моделирование не делает плохие данные хорошими. Если исходный бэктест содержит ошибки котировок, не учитывает комиссии, использует нереалистичный спред или построен на переоптимизированной стратегии, тысячи симуляций только создадут видимость глубокой проверки.
Метод также зависит от предположений. Простая перестановка сделок предполагает, что прошлые сделки можно свободно менять местами. Повторная выборка предполагает, что историческое распределение сделок достаточно хорошо описывает будущие возможности. Моделирование проскальзывания предполагает, что выбранная модель исполнения реалистична. Все эти предположения могут быть неверными.
Еще одно ограничение — ложная точность. Значение 95-го процентиля просадки 24,3% выглядит научно, но это не абсолютный предел. Реальный рынок может создать сценарий, которого не было ни в одной симуляции. Поэтому результаты лучше округлять и воспринимать как диапазон риска, а не как точный прогноз.
Монте-Карло особенно опасно использовать как рекламный фильтр: показать только красивые симуляции, скрыть плохие сценарии или выбрать метод, который сглаживает риск. Профессиональная интерпретация требует показывать не только медиану, но и неблагоприятные процентили, длительность просадки, серии убытков и чувствительность к издержкам.
Как подготовить исходные данные для теста
Перед запуском Монте-Карло нужно проверить исходный отчет. В нем должны быть реальные комиссии, спред, проскальзывание, корректный размер позиции, понятная логика входов и выходов, достаточное количество сделок и отсутствие явных ошибок в данных. Если стратегия тестировалась на идеальных условиях, стресс-тест будет строиться на слишком оптимистичной базе.
Количество симуляций тоже нужно выбирать разумно. Сотни сценариев могут дать грубое представление, тысячи — более стабильную картину распределения. Но само по себе число 10 000 не гарантирует достоверность. Если модель неверно описывает риск, увеличение числа симуляций только точнее посчитает ошибочное предположение.
Важно заранее зафиксировать, какие элементы меняются: только порядок сделок, состав сделок, цена исполнения, параметры или торговые издержки. Если после просмотра результата менять настройки теста до получения красивой картины, Монте-Карло превращается в еще один инструмент подгонки.
Сравнение методов Монте-Карло
Порядок
Просадку и серии убытков
Состав и порядок
Прибыль и просадку
Настройки робота
Чувствительность
Торговые издержки
Запас преимущества
Цена исполнения
Устойчивость к исполнению
Часть сигналов
Зависимость от лучших сделок
У каждого метода есть ограничение. Перестановка не создает новых сделок, повторная выборка зависит от истории, изменение параметров требует разумного диапазона, а модель проскальзывания может быть нереалистичной. Поэтому полезно использовать несколько методов и сравнивать выводы.
Практический пример анализа торгового робота
Предположим, исходный бэктест торгового робота содержит 650 сделок, чистую прибыль 92 000 долларов, максимальную просадку 11%, Profit Factor 1,62, среднюю сделку 142 доллара и максимальную серию из 7 убытков. На первый взгляд отчет выглядит аккуратно.
650
Достаточно для первичной оценки
92 000 долларов
Итог одной траектории
11%
Не является пределом
1,62
Нужно проверить устойчивость
Далее проводится 10 000 симуляций: перестановка порядка сделок, случайный пропуск 5% сделок, увеличение спреда, случайное проскальзывание и небольшое изменение ключевых параметров.
15%
24% / 31%
9
14 / 18
7 месяцев
16 / 25 месяцев
78 000
31 000 / 8 000
Для просадки неблагоприятны высокие значения, поэтому смотрят правую часть распределения: 95-й и 99-й процентили. Для прибыли неблагоприятны низкие значения, поэтому важны 5-й и 1-й процентили. Историческая просадка 11% выглядит оптимистичнее большинства сценариев, а небольшой результат в крайнем нижнем процентиле показывает ограниченный запас прочности.
Числа условные и не являются нормативами. Решение о запуске зависит от допустимого риска, качества бэктеста, проверки вне выборки, форвард-теста и того, насколько инвестор готов пережить длительный период восстановления.
Итоговый проверочный список
- Достаточно ли исходных сделок?
- Качественны ли исторические данные?
- Учтены ли комиссии, спред и проскальзывание?
- Понятен ли тип Монте-Карло теста?
- Меняется ли только порядок или также результат сделок?
- Учитывается ли реинвестирование?
- Сохраняются ли связи между портфельными стратегиями?
- Реалистичны ли диапазоны случайных изменений?
- Достаточно ли симуляций?
- Проанализированы ли процентили просадки?
- Проанализированы ли нижние процентили прибыли?
- Оценена ли серия убытков?
- Оценена ли длительность просадки?
- Выдерживает ли стратегия рост издержек?
- Сохраняется ли устойчивость параметров?
- Скорректирован ли размер позиции?
- Пройдены ли проверка вне выборки и форвард-тест?
Внутренние материалы по теме
Для комплексной проверки торговой системы полезно продолжить с этих материалов:
Заключение
Стандартный бэктест показывает только одну историческую траекторию. Тест Монте-Карло создает множество альтернативных сценариев и помогает оценить диапазон возможной прибыли, просадки, серии убытков и длительности восстановления.
Случайный порядок сделок показывает, как меняется форма кривой капитала. При фиксированном размере сделки простая перестановка не меняет итоговую прибыль, но меняет просадку и психологическую нагрузку. Повторная выборка, пропуск сделок, изменение параметров, рост спреда и проскальзывание могут менять и конечный результат.
Доверительный уровень не является гарантией предельной просадки. Риск необходимо планировать по неблагоприятным, но реалистичным сценариям. Монте-Карло не заменяет проверку вне выборки, Walk-Forward анализ и форвард-тест; его результат зависит от качества исходных данных и выбранных предположений.
Профессиональная оценка торгового робота должна включать несколько независимых проверок устойчивости, а не только красивый исторический отчет. Именно сочетание бэктеста, стресс-тестов, портфельного анализа и реальной проверки дает более зрелую основу для решения о риске.
Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Результаты бэктеста, Монте-Карло моделирования и форвард-теста не гарантируют аналогичных результатов в будущем. Алгоритмическая торговля связана с риском финансовых потерь.