Блог им. Albus

Анализ доходности

На языке Питон научился строить красивые графики. Как я без этого раньше жил? Визуализация — наше всё.
Вопрос смарт-лабовским математикам. 
Стратегия одна. Робот подбирает наилучшие параметры по историческим данным. 
Вот график доходности с одним из параметров. С этим параметром у стратегии максимальная доходность.
Вертикальная ось — доход в рублях, горизонтальная ось — количество сделок.
В начале была глубокая просадка. Значит я этот вариант отвергаю не смотря на то, что в итоге он дал максимальную прибыль.
Анализ доходности
В работу будут взяты иные параметры, которые не дают высокой доходности, но у них нет просадок.
Как всё это анализировать?
График строился по такому ряду чисел (это накопленная прибыль в рублях):
Анализ доходности
---
Я в целом понимаю, что мне нужны коэффициенты Шарпа, Сортино...
Вот так считается Сортино:
Анализ доходности
Но я не смогу сам забить это в код в виде формулы. Я не понимаю что происходит под этим ужасным корнем. С Шарпом то же самое. Вижу, но не понимаю.
Подскажите пожалуйста как человеку с ограниченными способностями в математике отсекать плохие варианты доходности и оставлять хорошие.
Безмерно благодарен всем советчикам.
★6
11 комментариев
Рекомендую для анализа данных использовать R,
там гораздо удобнее и проще, да и графики там на порядок красивее можно делать.
Что касается коэффициентов, если не хотите считать руками, в R же есть пакет PerformanceAnalytics — в котором реализовано десятки коэффицентов - https://cran.r-project.org/web/packages/PerformanceAnalytics/vignettes/PA-Bacon.pdf
avatar
AlexeyTikhonov, спасибо, друг, но ещё один язык программирования я не потяну…
AlexeyTikhonov, Мне тоже R больше понравился, в силу понятности языка и огромного числа пакетов. Практически любую статистику, главное найти нужные  данные.  
Vladimir Diaditchev, да, R прикладной язык с интуитивным синтаксисом, им пользуется любые люди (стоматологи, ботаники, зоологи) без подготовки особо, притом многое (почти всё;)) очень удобно уже так или иначе все сделано коммьюнити в пакетах.
Ну и плюс shiny.
avatar

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

На Хабре есть цикл переводов «Событийно-ориентированный бэктестинг на Python»
5 частей. habr.com/company/iticapital/blog/263097/

Также есть «Объектно-ориентированная система бэктестинга на Python»
Я хз в чем различие, но возможно для нас есть разница. Отсюда может быть и будет разница по выбору фреймворка.

По фреймворкам для Питона рекомендации такие: 

1) Backtrader (отличная документация и сообщество, удобная интеграция с питоном):
https://www.backtrader.com
https://github.com/mementum/backtrader 

2) Zipline:https://github.com/quantopian/zipline
Вроде как медленный, но поддеживает Pandas 

3) PyAlgoTrade:http://gbeced.github.io/pyalgotrade/
шустрее, чем ZipLine, но не поддерживает Pandas 

4) bt — Flexible Backtesting for Python
https://pypi.python.org/pypi/bt
http://pmorissette.github.io/bt/ 

Хоть какое-то сравнение этих фрэймворков тут: https://www.quantstart.com/articles/backtesting-systematic-trading-strategies-in-python-considerations-and-open-source-frameworks 

Обсуждение — сравнение: https://www.reddit.com/r/algotrading/comments/5bkhl7/pyalgotrade_vs_backtrader_python/ 

Еще больше фрэймворков, список тут: https://github.com/mementum/backtrader#alternatives
avatar
Megasum, спасибо. Буду копать.
Megasum, только дошли до этого руки. Начал с backtrader. Что-то из предложенного вами умеет работать со стаканом котировок?
Насчёт графиков/свечек всё понятно, это легко.
млять, вас там двое что-ли под одним ником. Один стремящийся-алго, а второй дебил-ольгинец. Как вы в одной голове-то выживаете?
avatar
Олег, идите на рынок, купите морковку и скушайте её. А в моём блоге ничего пожалуйста не пишите. 

теги блога Albus (Игорь Китаев)

....все тэги



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