Блог им. DenisVo

Простой фреймворк для тестирования портфельных стратегий (python)

Всем добрый вечер,

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

Итак выглядит это все следующим образом:

Простой фреймворк для тестирования портфельных стратегий (python)

Как основа это Backtrader (хороший питоновский движок для тестирования торговли, но в целом очень медленный при загрузке данных, да и есть там некоторые вещи в которых мне лениво разбираться).
Далее реализуем простенькую стратегию которая будет крутиться в бэктрейдере, но ее структура такова, что можно любые спецефические действия делать в привычной для каждого человека форме. Я там использую pandas dataframe.

Структура стратегии:

Простой фреймворк для тестирования портфельных стратегий (python)

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

Модель выбора рабочего набора активов -> модель которая реализует непосредственно генерацию сигналов -> модель для формирования весов активов в портфеле -> модель которая отвечает за ребалансировку -> модель которая контролирует риск -> и модель которая исполняет заявки. 

Вот пример простой стратегии моментум которая выбирает n бумаг с наибольшим моментумом за последний год
Простой фреймворк для тестирования портфельных стратегий (python)


Далее мы просто добавляем это дело в конфигурацию

Простой фреймворк для тестирования портфельных стратегий (python)

Запускаем и получаем вот такой красивый отчетик с кучей метрик сгенерированный quantstats

Простой фреймворк для тестирования портфельных стратегий (python)


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

Кому интересно, прошу посмотреть видео :)… а то надо часы просмотров нарабатывать.. 




ну и код
github.com/CloseToAlgoTrading/CodeFromVideo/tree/master/Portfolio_Testing_Framework


Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.6К | ★12
3 комментария
Интересно, сколько времени потратит Питон на ввод котировок и раскладку их в памяти по массивам DateTime, Open, High, Low, Close, Volume из файла ROSN.txt, предложенного в статье vldtar «Глубокое погружение» smart-lab.ru/blog/809806.php. В статье есть ссылка на скачивание сопроводительных  материалов. Её автор для проверки своей торговой стратегии использовал историю на минутках из 1628478 свечей-баров за 13 лет.
Моя программа на Microsoft C++ 2015 вводит и раскладывает по массивам памяти эти котировки за 3.5 сек. Intel® Core(TM) i5-3570K CPU @ 3.40 GHz 3392 Мгц. Память 8 Гб.
Опыты с C# и Java дают время в десятки раз большее.
Что получится у Питона?

PS Если производительность тестирования не критична, то на мой взгляд всего предпочтительнее фрэймворк программы WealthLab. Версии 5.2 и 6.4 бесплатны в интернете.
Воспроизведение этого фрэймворка на C++ позволяет сверхскоростной прогон торговой стратегии с разными наборами параметров за счёт распараллеливания по всем ядрам процессора ПК.
Rostislav Kudryashov, смотря как раскладывать и пользовать питон :) можно через репидс и будет все очень быстро. С++ наше все :), но для быстрой проверки некоторых гипотиз, это оверхед.
Но если говорить непосредственно о бэктрейдере, то это очень медленный зверь :)
avatar
Rostislav Kudryashov, Тут вопрос в другом, протестировать идею на работоспособность, можно даже в экселе, и если видим, что есть в ней некоторое рациональное зерно, то можно переходить уже на более детальный уровень и использовать все что душе угодно.
Однако, многие люди любят питон именно за его непринужденность и возможность быстро накидать что то абочее
avatar

Читайте на SMART-LAB:
Фото
Доходность выше 100% — уже не подарок: сложная неделя на рынке облигаций
Индекс RGBI по итогам недели снизился на 0,5%, до 111,93 пункта. После умеренного восстановления неделей ранее рынок ОФЗ вновь перешел к...
Фото
Новый терминал для трейдинга: бесплатно весь ноябрь!
Ура! Мы это сделали! Запустили новый софт Live Trader – терминал для объёмного и технического анализа. А теперь хотим, чтобы вы сами попробовали...
Обращение президента Холдинга "Селигдар" по теме влияния обвинений в адрес мажоритарных акционеров на деятельность компании
ПАО «Селигдар» продолжает осуществлять свою деятельность в штатном режиме, планомерно наращивая собственные операционные показатели. За 9 месяцев...
Фото
Циан по 993 руб. Хорошая цена для акционеров, дорогая покупка для Т-Технологий
Т-Технологии готовы купить от 50% до 100% акций Циана по 993,05 рублей за бумагу.

теги блога CloseToAlgoTrading

....все тэги



UPDONW
Новый дизайн