Изучаем Python в команде Quantrum.Team

Всем привет. Меня зовут Андрей. Мне 38 лет. На своем пути становления как трейдера я дошел до точки, когда автоматизация должна стать неотъемлемой частью моей торговой жизни. Но прежде чем начать, хотелось бы немного рассказать о себе. Интересуюсь и изучаю рынок я уже около 4-х лет, из которых 3,5 года покупаю опыт за свои деньги на рынке 🙂.

Как и многие за первые полгода слил 40% депозита, а после начался непрерывный процесс становления меня как трейдера посредством изучения всевозможных курсов, чтения литературы, а главное, анализа своих ошибок.

И результат не заставил себя ждать. В следующий год был нулевой результат, а последние пару лет рынок дает мне около 20% прибыли. За это время накопилось много знаний, догадок и вопросов, на проверку которых стало не хватать времени и сил. Соответственно, всё нужно автоматизировать и тестировать, и все системы лучше проверять на реальном рынке. А так как данные о ценах акций есть за многие прошедшие годы, то лучше ошибки и корректировки своей системы делать на доступных данных и виртуальных деньгах, что позволит избежать потери в будущем и сэкономит время.

Как я и говорил, до этого этапа я делал многое руками или в Excel, но понимаю, что это малоэффективно и занимает много времени. И вот в моей жизни появился проект Quantrum во главе с талантливым человеком и профессионалом своего дела, Александром Румянцевым. Который и согласился помочь мне взойти на новую ступень в трейдинге, а именно, освоить азы программирования на Python. Это позволит мне автоматизировать процессы в подборе нужных акций, проводить бектесты всевозможных стратегий и даже создавать торговых роботов. Вот так, спустя 21 год после окончания школы, у меня опять будут уроки информатики )

Знакомство с Python

Освоить азы программирования на Python стало моей первой задачей.

Итак, Python — это сравнительно новый язык программирования, который был создан Гвидо ван Россумом (Guido van Rossum) в начале 90-х годов. Python является интерпретируемым, изначально объектно-ориентированным языком программирования. Он чрезвычайно прост и содержит небольшое число ключевых слов. Вместе с тем очень гибок и выразителен. И у него есть такое достоинство как наличие большого количества подключаемых модулей, обеспечивающих дополнительные возможности. В том числе, есть модули, связанные с торговлей на бирже.

В школьное время у меня был опыт создания программ на Паскале и, надеюсь, это мне немного облегчит задачу и быстрее приблизит к поставленной цели. Ниже бесплатные курсы по обучению Python, которые я готов порекомендовать. Выбор был большой, но чаще всего курсы были или по 2-й версии языка (которая утратила свою актуальность) или качество материала оставляло желать лучшего. Но всё же источники знаний нашлись, и я с удовольствием ими с вами поделюсь.

Stepik: Программирование на Python

Страница курса: https://stepik.org/course/67

Отличный бесплатный курс. Каждый состоит из 3 разделов по 28 уроков. Именно с этого курса я начал изучение Python и не пожалел об этом. Каждый урок — это серия коротких обучающих роликов по определенной тематике, с практическими примерами.

Материал излагается в доступной и понятной форме специально для новичков.  В конце каждого урока дается серия задач для закрепления полученного материала. За решение каждой задачи вам даются баллы. Если у вас возникают трудности при решении той или иной задачи, вы можете посмотреть комментарии, которые не содержат правильного ответа, но там вы можете найти намёк, на что обратить внимание, чтобы решить задачу.

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

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

Плюсы:

  • доступный материал, который последовательно и интересно изложен;
  • есть множество практических задач;
  • есть встроенный компилятор;
  • весь курс построен в игровой форме с начислением баллов;
  • при достижении 80 баллов вам даже дают сертификат о прохождении курса;
  • есть небольшие подсказки, а после выполнения задачи можно изучить варианты решений других студентов.

Минусы:

  • иногда не понятно, какая ошибка выскакивает и в чем суть проблемы;
  • у компилятора нет пошагового выполнения.

ПИТОНТЬЮТОР

Страница курса: http://pythontutor.ru/

Великолепный интерактивный курс по Python. Он расположен на отдельном сайте. Соответственно, ваше обучение будет проходить в браузере. Состоит курс из 11 уроков, каждый из которых включает теоретическую и практическую часть.

Теоретическая часть представлена в виде текстового материала с примерами. Практическая часть состоит из условий задач, которые вам нужно решить для закрепления материала. Обычно таких задач около 5-15 в каждом уроке или около 130 задач во всем курсе.

PythonTutor обладает многими достоинствами:

  • по окончанию каждого занятия вам даются к решению задачи для закрепления материала;
  • компилятор встроен прямо в браузер, соответственно, ничего устанавливать не нужно;
  • у компилятора есть пошаговое исполнение программы, с отображением значения переменных в реальном времени;
  • также входные и выходные данные расположены под кодом программы, что очень удобно;
  • после решения вы можете ознакомиться с оптимальным решением от разработчиков и решениями других участников. Что позволяет взглянуть на решение под разными углами и понять, какие аспекты в своих знаниях нужно подтянуть.

Недостатки тоже присутствуют (субъективно):

  • не хватает видеоконтента;
  • нет уроков, посвященных работе с внешними библиотеками;
  • если завис над задачей, подсказок ждать неоткуда (но это можно отнести к плюсам, т.к. в трейдинге этих подсказок тоже никто не даст, и это приучает к самостоятельности и развивает смекалку).

Python-джедай — Видео уроки по Python  на YouTube.

Страница курса: https://youtu.be/ahe3WpBMdm4

Видеокурс состоит из 20 уроков. Продолжительность урока варьируется от 10 до 35 минут. В курсе больше практики, чем теории. Хорошо проработаны моменты подключения внешних библиотек (13-й урок) и доступно изложена работа с файлами (15-й урок).

Плюсы:

  • автор глубоко прорабатывает многие аспекты, пропущенные в предыдущих курсах;
  • решаются интересные задачи в режиме онлайн;
  • есть вставки простеньких задач, решая которые в голове, вы закрепляете материал.

Минусы:

  • курс структурирован не в классическом понимании. Соответственно, может не подойти для новичков. Я бы его рекомендовал к просмотру после проработки других обучающих курсов;
  • курс не имеет классического завершения и все подписчики ждут продолжения;
  • у автора специфический акцент;
  • нет интерактивных задач.

Stepik. Python: основы и применение.

Страница курса: https://stepik.org/course/512

Данный курс подойдёт для продвинутых студентов и является продолжением курса Stepik, упомянутого выше☝️. Этот курс я прохожу в данный момент. Пока все нравится, но мне тяжело выделить его особенности, поэтому давайте проходить его вместе, а его достоинства и недостатки обсудим в комментариях под этим постом.

Заключительная мысль

Всего лишь месяц назад я начал свои первые шаги по изучению Python. А уже сейчас я могу решать разнообразные, порой даже сложные задачи с помощью этого языка программирования. И если вы решили изучить Python, то в интернете достаточно хорошего и бесплатного материала, который вам в этом поможет. Из тех курсов, которые освещенны в данной статье, я бы рекомендовал изучать материал в такой последовательности:

  1. Stepik. Программирование на Python.
  2. ПИТОНТЬЮТОР
  3. Python-джедай — Видео уроки по Python  на YouTube.
  4. Stepik. Python: основы и применение.

Параллельно с этим необходимо как можно больше практиковаться. Это вам позволят сделать 2 курса, содержашие в себе практические задачи по Python:

Если у вас есть цель программировать на этом замечательном языке, у которого огромная масса сфер применения (анализ данных, ИИ, создание сайтов и приложений, написание ботов и т.д.), то мой вам совет: не останавливаться и ежедневно практиковаться, практиковаться и практиковаться.”

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