и-мера-риска-в-скриптах-ТСЛаб
Приветствуем, Вас, уважаемые коллеги и читатели нашего блога по алготрейдингу и в частности по работе с TSLab.

Несколько лет назад наш ученик писал авторскую статью, которую только сейчас предлагаем вам к прочтению и может натолкнет вас на некоторые рассуждения! И так поехали 🙂

Устойчивость стратегий, что вы создаете

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

Написав и оптимизировав свой скрипт каждый надеется, что некоторое время он продолжит зарабатывать на реале. Между тем, нигде не встречал исследований на эту тему. Может не там искал?

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

Для наглядности я взял не очень сложный скрипт по классической стратегии Parabolic SAR с небольшими дополнениями. Предлагаю не обсуждать сам алгоритм, а попытаться ответить на вопрос: «А как долго этот скрипт будет зарабатывать»?

Скрипт оптимизирован для Si, поэтому комиссию установлю =5, а капитал =10000 (2*ГО). Его результаты:
Устойчивость-скриптов-доход

скриптов-результаты

Открываем окно «Оптимизация». Шаг оптимизации устанавливаем в размере 20% от параметра.
Мин=параметр-шаг, Макс=параметр+шаг.
скриптов-оптимизация

Может ли рынок измениться на 20% — легко. Он это делает постоянно. Может ли рынок измениться в разы? — может, но не так часто. Изменение рынка от — 20% до +20% — наиболее вероятно на мой взгляд. Если кто-то считает этого недостаточно, то может установить свои ориентиры. Что такое изменение рынка — это изменение направления, волатильности, характера движения цены. Если рынок измениться значительно (в разы), то вероятно большинство скриптов сломаются. Поэтому будем предполагать, что он останется в параметрах тестирования на истории с 2009г. до 2019г.

Обращаю внимание, что у нас получилось 531 441 вариантов. Многовато, конечно. Если бы мы собирали отдельно лонги, отдельно шорты, то я бы предложил оценивать устойчивость отдельно каждой ветки. При этом выбирали бы наихудший из двух вариантов. Однако, в нашем случае будем проводить оптимизацию «как есть». У меня на ноутбуке это займет около 12 часов.

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

Устанавливаем шаг оптимизации 30% (скрин не сохранил), запускаем оптимизацию. Нас интересует количество негативных исходов.

Оптимизация закончилась, и я вновь не обнаружил негативных исходов. Конечно, если ограничиться историей покороче, например 3 последних года, то вероятность появления отрицательных исходов должна увеличиться. Но я пойду другим путем. Устанавливаем комиссию = 10. Принимаем шаг оптимизации\изменчивость рынка жуткие 50%

Устойчивость-скриптов-оптимизация-2

Запускаем оптимизацию. И о чудо! Появились отрицательные исходы:

Устойчивость-скриптов-оптимизация-2

C помощью встроенного фильтра отбираю отрицательные исходы, где СреднийПУ<0. Выгружаю отфильтрованные отрицательные исходы в Exel (если кто не знает как - вкладка Инструменты->Экспорт в Exel):

скриптов-эксель

Итого: мы имеем 1364 отрицательных исхода (первая строчка — заголовок).

Если вспомнить, то у нас при оптимизации было 531 441 вариантов. Значит 1364/531441*100 = 0,26%.

Можно утверждать, что в случае изменения рыночных условий на 50% от значений, показанных на периоде с 2009 по 2019гг. у скрипта вероятность получения убытков в следующем периоде с проскальзыванием и комиссией = 10 по Si — 0,26%!

Скрипт достаточно устойчив к изменениям (я удивлен насколько).

По предлагаемой методике можно сравнивать на устойчивость разные алгоритмы.

Возможно, вам будет интересно сравнить устойчивость со своими скриптами.

Мера риска

Создавая свои алгоритмы мы все ожидаем увидеть красивые эквити, например такие как приводили выше в данной статье.

Да, этот тот самый скрипт, который мы оценивали на устойчивость.

Кроме визуальной картинки мы ориентируемся на ФВ. Однако, протестировав алгоритм на большом историческом периоде и поставив в реальную торговлю мы зачастую бываем удивлены результатами.

Предлагаю следующее: в настройках скрипта установить капитал = 10000. (Почему? У нас скрипт на Si, максимальное ГО=5000 пт. и еще 5000 пт. возьмем на возможную просадку).

Комиссия=5. Рассмотрим подробнее помесячные результаты работы скрипта за 2016, 2017, 2018 г.

риска-помесячные-результаты

Сначала я заполнил простую табличку. Где за каждый месяц отразил результаты скрипта (Средний ПУ%). Проделайте пожалуйста эту работу с любым своим алгоритмом и вы удивитесь своим новым открытиям в понимании алготрейдинга. Не торопитесь, внимательно рассмотрите результаты каждого месяца. Оцените количество сделок в месяц, количество ежемесячных прибыльных сделок и эквити за каждый месяц. Теперь вы знаете что ожидать от реального рынка.

А выводы простые:
1. ежемесячно в среднем мы можем рассчитывать на 0,28% дохода.

2. на 1% риска приходится в среднем 0,85% дохода. Чем больше дохода мы хотим, тем больше риска мы должны принять (забегая вперед хочу сказать, что портфель из нескоррелированных скриптов позволяет получить больший доход при меньших рисках).

3. убыточные месяца это нормально: средний доход в месяц 0,28% — стандартное отклонение 0,33% = — 0,05%. (а отклонения могут быть и нестандартными).

4. оценивая скрипты по показателю Удельный риск мы можем выбрать лучшие алгоритмы и составить из них портфель для торговли. К портфелю скриптов я отношусь не как к возможности разогнать капитал, а как к Идеальному инвестиционному инструменту. И вам советую.

И последний вопрос: «Почему мы для оценки рисков используем ФВ»?

Ответ: «Потому, что он зашит в ТСЛаб и вычисляется автоматически. Он снижает трудозатраты при оценке результатов». А хорошо ли это?

PS: если вы прочитаете мои соображения это может быть вам интересно.

Если вы хоть один раз проделаете это своими руками это будет для вас полезно и удивительно.

 
 
 


Вы уже сейчас можете начать изучать Видео курс- роботы в TSLab и научиться самому делать любых роботов!
 
Можно записаться на следующий поток ОнЛайн курса «Создание роботов в TSLab без программирования», информацию по которому можно посмотреть тут->
 
Также можете научиться программировать роботов на нашем Видео курсе «Роботы для QUIK на языке Lua»
 
Если же вам не хочется тратить время на обучение, то вы просто можете выбрать уже готовые роботы из тех, что представлены у нас ДЛЯ TSLab, ДЛЯ QUIK, ДЛЯ MT5, ДЛЯ КРИПТОВАЛЮТЫ!
 
Также можете посмотреть совершенно бесплатные наработки для МТ4, Квика, МТ5. Данный раздел также постоянно пополняется.
 
Не откладывайте свой шанс заработать на бирже уже сегодня!