Дневник разработчика-алготрейдера

Привет! Я мобильный разработчик примерно с 7-летним стажем.

Успел поработать в крупных IT-компаниях России и не только и в какой-то момент увлёкся темой алгоритмического трейдинга. Решил завести этот блог в формате дневника, чтобы поделиться своим опытом и наработками.

Заранее оговорюсь: я не трейдер-профессионал и не журналист, а простой разраб и все данные предоставляются бесплатно и исключительно в целях личного пользования.

А мы похожи
А мы похожи

Deep research ещё не было

Когда я начал интересоваться алготрейдингом, столкнулся с проблемой: информации в рунете оказалось не так много. В основном встречаются небольшие статьи о ручном трейдинге и советы по техническому анализу, но систематических знаний об алготрейдинге, особенно с фокусом на разработке, найти довольно сложно. Первым оплотом информации стала книга «Кванты» Скотта Паттерсона, о становлении и буднях квантов. В ней описывается путь целой плеяды математиков и программистов, которые решили применить свои способности для торговли на биржах и фактически перевернули финансовый мир. Считается, что одним из первых «квантов» был Эдвард Торп: он в 60-е годы активно занимался математической теорией азартных игр (в основном блэкджек) и применил эти знания для торговли на фондовом рынке и это в 1962 году. (схемка из 1962 в MIT)

Конец 2022 года
Конец 2022 года

Иногда мы с друзьями проводили вечер пятницы в баре и тот вечер был не исключением. Мы поняли, что идея криптовалютного арбитража довольно проста в реализации: если есть несколько бирж с отличающимися ценами, можно автоматически «прыгать» между ними и ловить разницу в цене. С технической точки зрения нужно было лишь подключиться к API нескольких бирж и написать скрипт, который будет сравнивать котировки, отслеживать разницу цен и в нужный момент инициировать сделку (ага да). В реальности не всё так гладко: комиссии, скорость транзакций, объёмы торгов и задержки сети могут сильно влиять на результат, но на тот момент это было не очевидно. Первым шагом стала попытка реализовать собственного торгового бота на Ktor в свободное – хотел с нуля разобраться, как устроены связи с биржей и как тестировать стратегии. На деле же реализация одной только части взаимодействия с биржей (без какой-либо бизнес-логики) превратилась в настоящий квест. Документация на сайте биржи была весьма скупой и порой противоречивой. в большинстве своём ещё и китайской. Словно этого было мало, ещё и Ktor периодически преподносил сюрпризы с десериализацией и логированием. Медленными шагами, но дело шло. Но об этом позже.

Почему не просто взять готовые решения?

Когда я только начинал интересоваться алгоритмическим трейдингом, сразу выяснилось, что большинство готовых решений пишутся под Python. Это не случайно: язык популярен в Data Science, a для анализа финансовых рынков есть множество библиотек. Тот же freqtrade целиком написан на Python и предлагает многие функции «из коробки».

Однако, несмотря на всю привлекательность готовых решений, у меня есть две причины, по которым я решил пробовать реализовывать бота на Ktor и вообще делать всё «с нуля»:

1. Желание разобраться в деталях. Мне важно понимать внутреннюю механику: как именно происходит обмен данными с биржей, каким образом подписываются запросы, какие параметры нужно передавать и почему. Когда работаешь с готовым фреймворком, этот слой скрыт «под капотом» — это, конечно, ускоряет разработку, но мне хотелось максимальной прозрачности.

2. Любовь к математике. Алгоритмический трейдинг во многом про числа, формулы, статистику.

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

Текущее время

Сейчас я продолжаю трудиться в рамках своей основной работы, одновременно собирая аналитику по инструментарию и дорабатывая своё решение. В свободное время оптимизирую не только свой код, но и заглядываю в уже готовые стратегии в разных open source-проектах, пытаясь улучшить логику.

Дневник разработчика-алготрейдера

В этом блоге-«дневнике» я планирую:

• Рассказывать о своих практических находках в алготрейдинге;

• Делиться опытом разработки и тестирования стратегий (это отдельная история);

• Говорить о технических деталях, но немного;

• Обсуждать библиотеки и разные инструменты из экосистемы алготрейдинга.

Цель — не стать «гуру» или «экспертом», а собрать накопленные наработки, чтобы и мне самому, и всем, кому эта тема близка, было проще ориентироваться в мире алгоритмического трейдинга.

В следующих выпусках блога расскажу о терминологии, о важных технических решениях или разных open source-проектах. Спасибо, что читаете — надеюсь, вы найдёте здесь для себя что-то полезное или хотя бы любопытное!

P.S. никакого телеграм-канала :)

3
Начать дискуссию