Grin
Grin личный блог
16 июня 2020, 20:56

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

Вот тут написано, к чему это вообще и содержание

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

Отдельной ремаркой, немаловажной для данного сайта, все инструменты описанные ниже совершенно 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 символов».
26 Комментариев
  • Replikant_mih
    16 июня 2020, 21:11

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

     

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

      • Replikant_mih
        16 июня 2020, 21:21
        Grin, Не, я просто неверно интерпретировал название, оказалось просто перечисление инструментов), думал че-то про бэктесты будет).
  • thankODD
    16 июня 2020, 21:49
    Всё правильно, чо.

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

    Хорошо, что в мое время такой жопы не было.
    Да и Питона с анакондой не было.
      • thankODD
        16 июня 2020, 22:05
        Grin, ok подписался на ваш канал
  • Валентин
    16 июня 2020, 22:20
    jupyter notebook ещё отличная штука. Можно и без pycharm обойтись.
    • Андрей К
      17 июня 2020, 09:12
      Валентин, и Sublime =) если для линукса
  • websan
    16 июня 2020, 23:27
    Я использую colab вместо анаконды, все таки там мощные сервера, а домашний ПК вряд ли имеет такие мощности
  • MetaQuotes Software
    17 июня 2020, 01:07
    В помощь питонистам: нативная интеграция питоновских программ с MetaTrader 5.

    Питоновские программы можно запускать внутри терминала наравне с MQL5, правда без тестера торговых стратегий.
  • Артём А
    17 июня 2020, 13:46
    Jupyter notebook/lab лучше всего подходят для экспериментов и подсчетов.

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

    Pycharm это прям оверкилл, для экспериментов. Да и редактирование jupyter блокнотов там глючное и неудобное, по сравнению с оригиналом.
  • GOLD
    17 июня 2020, 18:16
    Аксиома:

    Толковый анал с экселем нарубит бабла больше, чем умный программист с питоном, сипласплас, ассемблером и 6 крутыми компами))

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

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