Начинающему алготрейдеру: что можно найти, чтобы не делать самому » Элитный трейдер
Элитный трейдер


Начинающему алготрейдеру: что можно найти, чтобы не делать самому

17 сентября 2018
Приветствую тебя, отважный трейдер. Вероятно, ты уже не первое столетие странствуешь в поисках легендарного Грааля, мифы о котором до тебя дошли еще от твоих далеких предков. И раз уж ты оказался в этих дремучих местах, то позволю предположить, что также как и прочие до тебя, многие из которых не вернулись обратно, ты ищешь источник магии алготрейдинга. Но сбился с дороги, даже не ступив на нее. Я укажу тебе направление и, рано или поздно, ты найдешь то, что искал, если будешь настойчив.

А речь пойдёт о том, что может помочь решившему постигнуть азы алготрейдинга. В этот раз чуть больше о криптовалютах. Поехали!

Несколько слов о целях

Почти всегда интересно, что человека приводит на тот или иной путь, и если бы у меня спросили, какие цели двигали мной, когда я начал интенсивно интересоваться алготрейдингом, то самыми очевидными стали бы:
Автоматизация повторяющих действий. Когда одни и те же циклы ручных манипуляций съедают множество бесценного времени, которое можно потратить на то, чтобы сделать этот мир лучше.
Реализация торговых стратегий со сложными зависимостями и вычислениями. Очень непросто одновременно принимать во внимание взаимное положение пары индикаторов, цены других инструментов, твиты Трампа, фазу луны и вероятность засухи в следующем сезоне.
Увеличение количества манипуляций с приказами в единицу времени. Актуально для желающих торговать на мелких таймфреймах, где ситуация меняется очень быстро. Те, кто за 5 минут несколько раз переставлял приказ с sell limit на stop limit и обратно, знают, как это может утомлять.
Исключить человеческий фактор. С таким количеством спонтанных желаний и импульсов к разным «необъяснимым» действиям, которые возникают в нашем уме в течение дня, очень тяжело не только принимать «холодные» решения в торговле, но и вести рациональное существование в целом. Т.е., когда стратегия говорит купить — нужно купить, а когда продать — продать. Если ты нарушаешь, то это и твоя цель тоже.
Преимущества Python для начинающего алготрейдера

Даже если ты не «ацкий» С++ или Java кодер 80го уровня, а простой смертный, пусть даже и никогда не писавший команды «println». У тебя всё равно есть возможность научиться реализовывать торговые алгоритмы любой сложности. Без навыков программирования здесь, конечно, не обойтись, но зато это будет без «хардкора» и «вакханалий». Представляю тебе «Lego» мира программирования — Python.

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

Достаточно научится пользоваться соответствующими пакетами, для которых практически всегда найдется документация по использованию (скилл «чтение манов» должен быть прокачен). Знание синтаксиса Python на базовом уровне обязательно. В одной из прошлых статей (или этой) были подробно описаны отличные ресурсы для изучения языка.
Краткий обзор PyPI и необходимых пакетов

Некоторые полезные пакеты не идут в стандартной комплектации. Они хранятся в ориентированном на Python репозитории PyPI (Python Package Index) по адресу https://pypi.org. Представлю некоторые из них, с которыми рано или поздно придется познакомиться:
Jupyter. Приложение для написания (разработки) программ на Python, работающее в браузере. Отличается улучшенной визуализацией выходных данных (таблицы, графики, текст). Хорошо подходит для тестирования и анализа. Для серьезных проектов лучше присмотреться к полноценным IDE ( Integrated Development Environment) таким как PyCharm, Spyder, Sublime Text 3 + консоль.
Numpy. Модуль для работы с n-мерными массивами (матрицами), рандомом и числовыми последовательностями. Скорость сложных расчетов через Numpy намного превосходит скорость стандартных средств Python. На начальном этапе алготрейдинга достаточно знать, что этот модуль существует и часто используется в примерах.
Pandas. Библиотека для манипулирования данными и их анализа, а также приведения этих данных к табличному, удобному для восприятия, виду. Жизненно необходимый инструмент в алготрейдинге и анализе данных. Изучать обязательно.
Matplotlib. Пакет для создания графиков и диаграмм. Богатый функционал с гибкой системой настроек. Поддерживает анимацию изображений. Необходимо знание базовых команд, в чём помогает огромное количество примеров, доступных на официальном сайте.

Для установки Python пакетов из PyPI используется утилита pip. Вот пример установки Numpy:

pip install numpy


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

Секрет любого успеха в непрерывности движения по выбранному пути. И, если твоя страсть к овладению запретным знанием алгоритмизации и автоматизации рыночной торговли вывела тебя на уровень, когда Pandas кажется не сложнее простой таблицы умножения, а разработчики Numpy предпочитают советоваться именно с тобой. Самое время подумать о своем серьезном (возможно не очень) проекте, и о способе контроля за его промежуточными версиями и состояниями.

Папочно-файловая структура проекта с течением времени и ростом количества файлов, изменений и версий станет неэффективной, даже если ты единственный разработчик. А если разработчиков несколько? Хорошо, что об этом у тебя не будет болеть голова, потому что добрые люди придумали и реализовали самую популярную на данный момент систему контроля версий Git. Возможности Git позволяют держать весь проект под полным контролем.

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

Два плейлиста от разных авторов. Идеально подходят для людей первый раз услышавших о Git:
Система контроля версий Git (плейлист)



Git для новичков (плейлист)



Еще пара русскоязычных ресурсов c интерактивным обучением:
https://learngitbranching.js.org
https://githowto.com/ru

Основное же преимущество для начинающих — это огромное количество проектов с открытым кодом и документацией в репозиториях, доступных на GitHub.com. Среди которых обязательно найдется что-то, что решит твою задачу или поможет это сделать самостоятельно. Здесь отыщутся реализации подавляющего большинства идей не только для начинающих, но и для продвинутых искателей. Почему бы и нам не воспользоваться возможностями поиска и не найти что-то, что может в будущем упростить написание и тесты наших криптовалютных стратегий?

И вот что удалось обнаружить на скорую руку:
Ta-Lib. Библиотека для технического анализа с базой около 200 индикаторов, распознаванием свечных паттернов и бог знает чего ещё.
CCXT. Модуль, разработанный специально для криптотрейдера. Это стандартизированный интерфейс к различным крипто-биржам, дающий возможность отправлять запросы на получение определенных данных для последующего их анализа и визуализации, а также установки/отмены торговых приказов. Может лежать в основе проекта твоих стратегий, т. к. поддерживает огромное количество криптовалютных бирж.
Backtrader. Бэктестер стратегий с множеством функций и плагинов.
Zipline. Ещё один бэктестер, но уже для НЕкриптотрейдера. Проект по функционалу схож с Backtrader, но предназначен для торговли другими финансовыми инструментами отличными от криптовалют (акции, облигации, индексы и т.д.). В целом заточен под рынок США.

Все проекты доступны через PyPI.

Заключение

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

(C) Источник
Не является индивидуальной инвестиционной рекомендацией
При копировании ссылка обязательна Нашли ошибку: выделить и нажать Ctrl+Enter