Кодинг от души, для души.

Aug 31, 2015 15:24


На днях запилил простенький бектестер для рисерча на питоне, потому что велс лаб заебал стал здорово портить мне нервы и тратить время. У меня 5 - старенькая ломаная 32-битная версия без всяких клевых расширений, но зато она Pro а не Dev и с хорошим датафидом.

Раздражает, что то, что даже в екселе сделать - 5 минут, в велс лабе хрен сделаешь.
Нельзя сразу несколько еквити курв нарисовать и сравнить визуально, нельзя протестить один раз, и посмотреть сразу статистику с разными способами выбора сайза. Нельзя вот так просто сразу потестить пачку стратегий и посмотреть как они работают вместе. MAE/MFE только в процентах, никак не пронормируешь. Любая вариация «корзинной» торговли - гемор. Нельзя 1 раз протестить и посмотреть на статы с разбиением по месяцам, кварталам, дням недели, ликвидности, цене. Парсинг по сравнению с пандас в питоне - заеб, от которого сильно не хочется иметь дело с non-price data. Короче говоря - шаг влево и геморрой, что сильно ограничивает полет фантазии во время рисерча. Нет, конечно это все можно сделать... выгружать сделки в полуручном режиме, потом писать код и их обрабатывать... но это супер муторно.

Ну так вот. Каких-то жалких 3-4 вечера и все готово.

В основе лежит Pandas. Тестирование происходит чуть иначе, чем простой for-each.  Сначала загружаются данные, считается и подготавливается много всего предварительного. Стратегия - это просто логика для фильтрации. Ну как бы и все. Вместо циклов, только пандовые-нумпайные векторизованные операции, что обещает быть достаточно быстро. Но даже если будет медленно, то в любом случае, я сделал так, что происходит фильтрация поэтапно, и поэтому не нужно каждый раз бежать по всем данным. Плюс еще крутая штука, что можно сразу прогнать все стратегии, а можно также просто из всех стратегий вытащить факторы. Данные представлены в таком виде, что их легко будет тут же засунуть в scikit-learn, и травить датамайнинг.

Репортинг интегрирован с тем, который для реальных сделок. Чуть допилю статистик, что б было интереснее. Источник данных тоже интегрирован с боевым. В общем все обещает быть супер удобно, уже все протестил, осталось стратежки перенести.

python, trading, coding, backtest

Previous post Next post
Up