Стресс-тест. Этап 1. Подготовка.

11.6.20 Naragot 0 Comments


Стресс-тест - крайне неприятная вещь. Он рушит мечты и надежды, осаждая и возвращая слегка на землю. Вот в твоём бэктесте растущий график экивити, но бац, и стресс-тест его тянет на юго-восток. Вот ты видишь расчётную просадку в 20%, но бац, и стресс-тест её увеличивает до 50%. И тем не менее подобное тестирование - это даже более важная вещь, чем сам бэктест. Но как его сделать для комплексной системы, включающей множество инструментов и стратегий?

Что такое стресс-тест, и зачем он нужен

Стресс-тест - это серия бэктестов, но с параметрами далёкими от оптимизированных. Насколько далёкими? Я выбрал для себя пределы в +/- 30%, и считаю их достаточными. Например, разница между 30, 40 и 20 пунктами колоссальна, и она чётко отразится на соответствующих графиках экивити.

В начале запуска системы вы не знаете, будут ли текущие выбранные параметры оптимальны и в будущем. Скорее всего нет, и это абсолютно нормально. Стресс-тестирование же позволяет посмотреть, что было бы, если бы вы изначально запустили систему с ошибочными в пределах 30% параметрами ещё лет 15 назад. Тем самым вы можете лучше оценить то, что вас может ждать в будущем.

Далее несколько шагов, прежде чем можно будет перейти к приведению себя в чувства после чудесных бэктестов.

МТ5

Excel - это хорошо, но для комплексной системы результат получится с достаточно большой ошибкой. Поэтому сразу лучше переходить на Metatrader 5, даже если торгуете в четвёртом. По поводу его преимуществ для тестирования я писал отдельный пост. Нам же главное при стресс-тестировании - это поддержка мультивалютности.

All-in-one

Система со всеми сетами на всех инструментах должна запускаться одним роботом. Как это сделать, если используются миллион сетов? Вынести все параметры во внешний файл,а затем для каждого сета в цикле в OnTick() производить все расчётные операции. Подобный способ был подробно описан в блоге hib.ru. Советую ознакомиться.

Фиксация лота

Запустить стресс-тест на всей истории, как есть, вряд ли получится. Обычно бэктесты в комплексных системах выглядят настолько эффектно, что лет за 5 разгоняют 10к до таких величин, что объёмы уже просто вылазят за пределы допустимых 100 лотов на ордер в тестере. Ясно, что в реальности такой результат слишком утопичен, но именно поэтому мы и здесь - надо спуститься на землю.

Необходимо изменить чуть систему, чтобы используемый мани менеджмент стал гибридом текущего используемого и фиксированного лота. Например, все позиции открываются таким объёмом, как если бы на счёте был всегда 1млн$.

В моём случае результат получился следующим:

Всё, далее можно переходить к созданию из этой заготовки непосредственно самого стресс-теста.
____________
Подписка на анонс новых постов:

0 коммент.: