В предыдущих статьях я рассказывал, как пришёл к идее создания собственного торгового робота. Мотивация проста:
Автоматизация — алгоритм не спит, не нервничает и не занят своими делами.
Дисциплина — робот исключает эмоции, следуя правилам.
Тестирование — любую идею можно проверить на исторических данных, прежде чем рисковать деньгами.
Я всегда разделял два этапа: разработку торговых идей (логика стратегии) и реализацию механизма исполнения (отправка заявок, автотрейдинг). Сначала — бэктестинг и базовая оптимизация, и только потом — реальная торговля.
Поскольку я нахожусь в активном поиске подходящего решения для автотрейдинга и уже опробовал несколько рабочих вариантов, то эта статья представляет мои размышления об этом механизме исполнения заявок. Ваша критика или поддержка идей приветствуется.
Почему я не хочу использовать QUIК и Windows?
По моему мнению QUIK архаичен, нестабилен для автоматизации и требует оконной среды. Он не предназначен для headless-серверов (это компьютер без монитора, клавиатуры, мыши). QUIK + LUA или внешнее ПО — это сложная, криво документированная и уязвимая связка.
Raspberry Pi — это компактный одноплатный компьютер, размером с кредитную карту. Его главные козыри — низкая цена, минимальное энергопотребление (можно держать включенным 24/7) и достаточное для моих задач быстродействие. Мои торговые стратегии оперируют на часовых и дневных интервалах, где не требуются гигантские вычислительные мощности. Даже старая модель Raspberry Pi 3 справится с обработкой данных и отправкой ордеров через API брокера. Это идеальный домашний сервер для робота: компактный, бесшумный и условно недорогой если брать не самые новые модели.
В качестве операционной системы я выбрал Ubuntu Server. Этот дистрибутив Linux славится стабильностью, обширным сообществом и легкостью установки нужного ПО. Python, библиотеки для работы с API — всё ставится без проблем. Отсутствие графического интерфейса (GUI) экономит драгоценные ресурсы «малинки», а управление системой удобно осуществляется удаленно по SSH с любого другого компьютера в домашней сети.
Конечно, можно было бы рассмотреть аренду виртуального сервера (VPS) в облаке, но это влечет ежемесячные платежи. Старый ноутбук тоже мог бы подойти, но Raspberry Pi компактнее, тише и может быть установлена незаметно. Поэтому для моих целей связка Raspberry Pi и Ubuntu Server выглядит оптимальным решением для создания независимого и надежного торгового бота.
Вообще начал я с того, что было ближе и привычнее — Node.js. У меня за плечами немалый опыт в этом языке. Работа с WebSocket и REST API, запуск задач по таймеру, хранение данных в JSON — всё это в Node делается быстро и удобно. Именно на этой технологии я собрал свой первый рабочий прототип, и даже выложил его в открытый доступ: SilverFir-TradingBot.
Но по мере развития проекта я начал сталкиваться с ограничениями. Самая большая проблема — отсутствие зрелых библиотек для финансового анализа и бэктестинга. Всё приходилось писать вручную: от парсинга котировок до расчёта индикаторов. Подключение к API брокеров тоже часто требовало обёрток и промежуточных слоёв.
Под капотом Pine Script: как устроен и для чего используется язык TradingView
Поэтому я переключился на Python — язык, на котором написано большинство современных библиотек для финансов, анализа данных и машинного обучения. С переходом на Python открылся целый мир: Backtrader
, pandas
, matplotlib
, TA-Lib
. Всё готово: бери и тестируй любую идею. Вместо бесконечных «велосипедов» я сосредоточился на том, что важно — стратегии.
Сначала я выбрал Backtrader — мощный инструмент, позволяющий детально протестировать стратегию, использовать несколько таймфреймов, фильтры, индикаторы, комиссионные и проскальзывание. Но очень быстро стало ясно, что у него есть обратная сторона: слишком много времени уходит на подготовку данных, настройку окружения, отладку визуализации и описание каждой мелочи в коде. Всё гибко, но громоздко.
Мой первый и неудачный опыт поиска торговой стратегии для Московской биржиВ какой-то момент я открыл для себя Pine Script и TradingView. Это было откровением. Пишешь код — сразу видишь результат. Делиться стратегией можно по ссылке, и любой читатель статьи (я ведь пишу публичные статьи) мгновенно видит то же, что и я. Идеально для демонстрации логики и быстрого прототипирования. Но автоматизировать торговлю через Pine Script — плохая идея: нет доступа к API, нет гарантий исполнения.
Pine Script в деле: тестируем стратегию с линейной регрессией и R² (по мотивам S&C из 2007 года) на Московской БиржеВ итоге я хочу вернутся к Python и Backtrader. Хоть он мне и не особенно нравится, но в связке с готовой библиотекой-оберткой он позволяет работать с реальным API. Это единственный реально доступный путь автоматизации с брокером в России, не завязанный на QUIK и Windows.
В России есть выбор. Сегодня три брокера:
Т-Инвестиции: https://developer.tbank.ru/invest/intro/intro
Алор: https://alor.dev/docs/
предоставляют официально задокументированные API.
Для всех них энтузиаст из Екатеринбурга Чечет Игорь Александрович разработал удобные Python-обёртки: TinkoffPy, AlorPy и FinamPy. Это даёт возможность не только отправлять заявки, но и проводить бэктестинг прямо из Backtrader. Например, связка BackTraderTinkoff позволяет торговать и тестировать стратегии, не выходя из Python-экосистемы.
На фоне этого особенно интересно сравнить с международной практикой. У брокера Interactive Brokers есть официальное руководство по работе с Backtrader — такой уровень зрелости интеграции говорит о серьёзном подходе.
Аналогично и в криптоиндустрии: тот же Bybit предоставляет API и готовые коннекторы на GitHub, что подчёркивает тренд на API-фикацию торговли. Я сам не работаю с криптой, но это внушает оптимизм.
Итак, мой текущий стек вырисовывается так: Pine Script для быстрой проверки гипотез и визуализации, затем перенос логики в Python и Backtrader для глубокого бэктестинга, и наконец, TinkoffPy для реальной торговли через API брокера на домашнем Raspberry Pi.
Цель — полностью автономный робот на открытых технологиях, без QUIK и сопутствующей головной боли.
Что думаете?
Автор: Михаил Шардин
🔗 Моя онлайн-визитка
📢 Telegram «Умный Дом Инвестора»
20 мая 2025 г.