Блог им. Grin_7

Минимальный набор аналитика для бэктеста

    • 16 июня 2020, 20:56
    • |
    • Grin
  • Еще
Вот тут написано, к чему это вообще и содержание

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

Отдельной ремаркой, немаловажной для данного сайта, все инструменты описанные ниже совершенно open source, то есть даром! 
Используемый инструментарий:

Python 3.8 + Pycharm + anaconda + git(необязательно)

В комменты накидали еще инструментов, грех упускать случай.
Что еще используют пользователи smart-lab:
Язык R
jupyter notebook
Collab google


Если вы хотя бы немного умеете в программирование, не читайте дальше, вам не понравится.

Я предупреждал. 

Как бы я хотел, что бы мне это рассказали в дни моей юности:
Python 3.8 это одновременно и название языка программирования и интерпретатора этого языка.
Что значит язык?
То и значит, это способ сказать компу, что ты от него хочешь. При этом, надо понимать, что комп то по факту туповат, он не умеет в понятие экивок и многозначных намеков, ему говорить надо предельно четко и логично.

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

Что значит интерпретатор?
Это машинный переводчик. То, что переводит написанное на языке python в понятные компу машинные команды, которые вы явно не захотите видеть. Тут знающие товарищи скажут мне, что надо еще рассказать про компилятор и в чем разница между ними, но я так делать не буду. Просто поймем, что и то и другое переводит нашу писанину в машиночиатемый режим. 

Pycharm - это такой блокнот на максималках. Писать на python можно хоть в текстовом файле (главное сохранять в расширении .py), хоть в командной строке построчно. Но гораздо удобнее использовать IDE — специализированные программы, которые и слово за тебя допишут и ошибки проверят и попу криво написанный код подотрут. Инструмент очень мощный, но по большей части, как и эксель, использую я его по минимуму. 

anaconda

Нет, это не моя домашняя змея, у меня был паук, царствие ему арахноидное. Чуть выше, я рассказывал про библиотеки. По сути это файлы с расширением .py, в которых есть уже написанный код, причем явно круче чем я когда либо смогу написать. И это позволяет не тратить время, а использовать уже имеющиеся решения. Для этого нам нужно скачать себе файлы и показать системе, где они лежат. Библиотек много, они разного размера они как то там сами обновляются, переписываются и всякое такое. Поэтому есть пакеты библиотек. Вот anaconada как раз и есть такой пакет, в котором собраны все необходимые библиотеки для анализа данных. Скачав его, я получил все необходимые библиотеки еще кучу тех, про которые никогда не узнаю. 

Git - 
это программа, которая записывает все изменения, произошедшие в проекте. Этакая машина времени кода. Она позволяет ответить на вопросы: «Нах*ра я стер все исходники и что теперь делать?», «Как удалить это г*но, которое я накодил вчера в измененном состоянии сознания?». Ну и способ передать проекты между компами и людьми, для чего есть специальные сайты типа github, которые называются репозитории. Я не указал ссылку на исходники git, так pycharm имеет встроенную систему управления версиями (так по умному это называется) и качать его отдельно не нужно. 

Ну и про указанные в комментариях инструменты. Спасибо всем, кто их накидал! 
Язык R  — еще один язык и интерпретатор в одном лице. Развивался как инструмент людей занимающихся статистикой. Соответственно предназначен для работы с большими объемами данных с использованием математического аппарата, той самой статистики. На smart-lab есть ряд статей про него, например эта

Jupyter notebook  — очень крутая штука. Это python + интерпретатор + pycharm на одной web — странице. Пишем код прямо в ячейках, запускаем, смотрим на красивые картинки. Самый используемый инструмент для дата-сайнтистов, то есть ребят разбирающих гигантские объемы неструктурированных данных с целью выловить всякое. Кстати jupyter notebook есть в анаконде. Запускаете и вперед, к открытиям. Заодно и красивые отчеты можно построить. 

Collab google  — если можно что то использовать в web, наверняка это можно развернуть на мощных серверах и курочить вообще мега объемы данных! Совершенно верно, и как всегда гугл уже реализовал эту идею. collab google это как раз jupyter notebook на гугловых серверах. 

P.S.
Текст выше, это жалкая попытка в двух словах объять совершенно необъятное, но которого мне очень не хватало, когда я начинал. 

P.P.S.
Ниже была инструкция с картинками про быстрый способ взять проект к себе на комп, но при публикации выпала ошибка «Текст топика должен содержать от 2 до 40000 символов».
★14
26 комментариев

Так, я почувствовал себя обманутым)). Как когда смотришь фильм, ждешь финала, чтобы понять, чтобы понять развязку и что это было, а тебе ничего не рассказывают.

 

Но набор инструментов трушный! — так что подожду будущие посты), которые уже ближе к делу).

avatar
Replikant_mih, С финалом может не получится). Я сторонник agile подхода, буду бесконечно идти к идеалу! 
avatar
Grin, Не, я просто неверно интерпретировал название, оказалось просто перечисление инструментов), думал че-то про бэктесты будет).
avatar
Replikant_mih, Хорошее замечание. Я по сути веду одно повествование, надо будет сделать ссылку на первый пост с оглавлением. Спасибо. 
avatar
Всё правильно, чо.

А что, сейчас реально такая проблема, чтобы простые вещи объясняли простыми словами и связями, что окуда берется и для чего нужно?
Я правда не в курсе.

Хорошо, что в мое время такой жопы не было.
Да и Питона с анакондой не было.
avatar
thankODD, да бог его знает, какое сейчас время. У меня профдеформация объяснять все начиная с элементарных вещей, так получается гораздо быстрее. 
avatar
Grin, ok подписался на ваш канал
avatar
Victor Gromov, R так же наверняка отличный инструмент. Но я его не знаю). К тому же мне всегда казалось, что R это, что то вроде внутреннего языка matlab, более специфичен для статистических вычислений и на нем не очень развиты всякие чисто технические вещи как работа с базами и API, вот это все. Но, повторюсь, вполне могу ошибаться. 
avatar
WhalerMan, а накидать в ней библиотеку для сбора данных по api, работу с конфигами для хранения ключей?  С базой там поработать? 
avatar
WhalerMan, ну значит мой первый ответ «Я его просто не знаю», максимально верный. 
avatar
jupyter notebook ещё отличная штука. Можно и без pycharm обойтись.
avatar
Валентин, согласен, очень удобная штука. Начинать изучение python на нем даже проще. 
avatar
Валентин, и Sublime =) если для линукса
avatar
WhalerMan, а че в тслабе то нельзя анализировать?
avatar
Я использую colab вместо анаконды, все таки там мощные сервера, а домашний ПК вряд ли имеет такие мощности
avatar
В помощь питонистам: нативная интеграция питоновских программ с MetaTrader 5.

Питоновские программы можно запускать внутри терминала наравне с MQL5, правда без тестера торговых стратегий.
Victor Gromov, На R много чего можно посчитать и библиотек, с документацией и примерами предостаточно. Питона  не знаю, но впечатление от опубликованных постов, что возможности очень похожи. 
Jupyter notebook/lab лучше всего подходят для экспериментов и подсчетов.

А чтобы совсем не париться с установкой всего нужного добра, можно использовать Google Colab.

Pycharm это прям оверкилл, для экспериментов. Да и редактирование jupyter блокнотов там глючное и неудобное, по сравнению с оригиналом.
avatar
Артём Агасиев, согласен, если говорить про эксперименты и быструю проверку гипотез, jupyter вне конкуренции. Но все таки реиспользуемый продукт на нем не построишь. Что то, что требует от 500 строк кода лучше засовывать в библиотеки и делать приложения. 
avatar
Аксиома:

Толковый анал с экселем нарубит бабла больше, чем умный программист с питоном, сипласплас, ассемблером и 6 крутыми компами))
avatar
$100, толковый то да. Но по факту сейчас основные деньги рубят алгоритмы написанные как раз программистами, которым задания ставили крайне толковые аналитики. 
avatar

теги блога Grin

....все тэги



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