Albus (Игорь Китаев)
Albus (Игорь Китаев) личный блог
27 июля 2018, 11:17

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

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

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

    На Хабре есть цикл переводов «Событийно-ориентированный бэктестинг на 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
  • old schooler
    27 июля 2018, 15:02
    млять, вас там двое что-ли под одним ником. Один стремящийся-алго, а второй дебил-ольгинец. Как вы в одной голове-то выживаете?

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн