Блог им. DenisVo

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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




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


4.4К | ★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:
Кто является настоящим конкурентом карт МИР?
Генеральный директор НСПК (оператора платежной системы МИР) Дмитрий Дубынин заявил, что за 10 лет работы этой системы общий объем транзакций с...
Предварительные итоги года на рынке жилья и ипотеки
Аналитический центр ДОМ.РФ подводит предварительные итоги года. Объём продаж жилья по договорам долевого участия (ДДУ) в 2025 г. (в рамках...
Фото
С Новым годом от кманды SFI
Дорогие друзья! Поздравляем вас с наступающим Новым годом! Прошедшие 12 месяцев стали для SFI по-настоящему важными и во многом поворотными....

теги блога CloseToAlgoTrading

....все тэги



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