Обсуждение статьи "Стресс-тестирование последовательностей сделок методом Монте-Карло в MQL5"

 

Опубликована статья Стресс-тестирование последовательностей сделок методом Монте-Карло в MQL5:

Бэктест показывает лишь одну траекторию из множества возможных исходов. Данный MQL5-скрипт выполняет 1000 бутстрап-передискретизаций Монте-Карло для ряда P&L по сделкам, строит на графике веерную диаграмму процентилей с помощью CCanvas и выводит вероятность разорения, Value at Risk (VaR) и наихудшую просадку на уровне 95-го процентиля. В результате получается практический взгляд на траекторный риск и подверженность просадкам, выходящий за рамки одной кривой эквити.

Бэктест, показавший 42 % чистой прибыли и профит-фактор 1,8, на бумаге выглядит просто великолепно. Но вот неприятная правда: этот результат зависит от траектории. Именно конкретная последовательность прибыльных и убыточных сделок в ваших исторических данных сформировала эту конкретную кривую эквити — и если бы те же сделки произошли в другом порядке, результат мог бы оказаться совершенно иным.

Мы наблюдали это воочию на примере советника, торгующего по тренду, на EURUSD M30. У стратегии было положительное математическое ожидание, приличная доля прибыльных сделок и профит-фактор чуть выше 1,6. Выглядело неплохо. Однако при проведении стресс-теста последовательности мы обнаружили, что примерно 12% альтернативных вариантов порядка сделок привели бы к маржин-коллу ещё до 80-й сделки — при истории из 200 сделок. Те же сделки. То же статистическое преимущество. Просто по-разному повезло с порядком сделок. Вот в чём заключается проблема, о которой никто не говорит на этапе бэктеста.

И всё хуже, чем кажется. Трейдер, анализирующий одну-единственную кривую эквити, не может с уверенностью сказать, является ли стратегия действительно устойчивой или ей просто повезло с последовательностью сделок. Честно говоря, большинство трейдеров на этом и останавливаются: один бэктест, результаты выглядят неплохо — и переходят к реальной торговле. Это ошибка, которая, как мы не раз убеждались, приводит к плачевным последствиям.

Стресс-тестирование последовательностей сделок методом Монте-Карло в MQL5

Специалисты по количественному управлению рисками решили эту проблему ещё несколько десятилетий назад с помощью моделирования методом Монте-Карло. Они генерируют тысячи сценариев типа «что, если» на основе одних и тех же данных, чтобы выявить распределение возможных исходов, а не только одну историческую траекторию. С точки зрения торговли: если есть N сделок и их фактический P&L, что было бы, если бы эти же сделки произошли в другом порядке? Критически важно: как часто стратегия нарушала бы порог катастрофической просадки до окончания выборки?

Скрипт MonteCarlo_RiskAssessor.mq5 считывает P&L по сделкам из CSV-файла и выполняет 1000 бутстрап-моделирований. Он отображает веерную диаграмму с несколькими процентилями непосредственно в MetaTrader с помощью CCanvas и экспортирует процентильные кривые в машиночитаемый выходной файл. Комиссии и проскальзывание можно включить в результаты стресс-тестирования, чтобы проверить их при реалистичных условиях исполнения. Внешние библиотеки не требуются.


Автор: Duy Van Nguy

 
Метод Монте-Карло — это ключевой инструмент. Без него не обойтись.