VPS для торгового бота: процессор, надёжность и защита API-ключей
Торговый бот, который работает через API брокера, не нуждается в графическом интерфейсе и мощном железе. Ему нужно другое: быстро обработать пришедшую котировку, не потерять соединение, вести понятный журнал и не отдать ключи доступа посторонним. Эта подборка собрана под такие задачи: Linux-серверы от 2 ядер с высокой частотой процессора и от 2 ГБ памяти. Речь о роботах для фондового и срочного рынка и валютных брокеров с официальным API.
Почему важна частота, а не число ядер
Типичный бот на Python или Node.js обрабатывает события в одном потоке: получил данные по WebSocket или gRPC, пересчитал индикаторы, принял решение, отправил заявку. Пока идёт расчёт, следующее событие ждёт в очереди. Поэтому время реакции определяется скоростью одного ядра, и процессор с частотой 3,5–4 ГГц ускоряет бота сильнее, чем восемь медленных ядер. Подробнее о том, как отличить честную частоту от маркетинговой, — на странице VPS с высокой частотой процессора.
Второе ядро всё равно нужно: на нём работают система, база данных, сборщик логов и второй бот, если он есть. Память расходуют в основном исторические данные: если бот держит в pandas несколько лет минутных свечей по десяткам инструментов, 2 ГБ быстро закончатся. Тестирование стратегий на истории лучше запускать отдельно, на временном мощном сервере с почасовой оплатой, чтобы оно не отнимало ресурсы у боевого процесса.
Где разместить сервер
Задержка считается до сервера API брокера, а не до биржи. Российские брокеры держат шлюзы в Москве, и для них подходит VPS в Москве. Если брокер зарубежный, узнайте в документации API, в каком регионе стоят его серверы. Для стратегий на часовых и дневных свечах разница в 20–30 мс ничего не значит, для реакции на стакан — заметна.
Если брокер даёт доступ только через десктопный терминал, а не через API, бот придётся запускать на Windows рядом с терминалом. Для QUIK есть отдельная подборка VPS для QUIK, для MetaTrader — VPS для Форекс.
Чтобы бот не останавливался
- Автоперезапуск. Запускайте бота как сервис systemd с
Restart=alwaysили в Docker с политикой перезапуска. После падения или перезагрузки сервера он поднимется сам. - Переподключение. Потоковые соединения API рвутся регулярно: при обслуживании у брокера, смене сессии, сбоях сети. Бот должен переподписываться на данные и сверять открытые позиции и заявки с брокером после каждого восстановления связи.
- Точное время. Включите синхронизацию времени через chrony или systemd-timesyncd. Расхождение часов на несколько секунд ломает расчёт свечей и расписание, а некоторые API отклоняют запросы с неверной меткой времени.
- Внешний контроль. Пусть бот раз в минуту отправляет сигнал «я жив» во внешнюю систему мониторинга или в мессенджер. Молчание бота — тоже событие, о котором нужно узнать сразу.
- Ограничители. Заложите в код лимиты на число заявок в минуту и на размер позиции. Ошибка в цикле без такого ограничения может отправить сотни заявок за секунды и упереться в лимиты API брокера.
Журналы: что записывать
Когда что-то идёт не так, единственный способ понять причину — журнал. Записывайте каждое решение бота с входными данными, каждую отправленную заявку с ответом брокера и все переподключения. Удобно писать логи в формате JSON по строке на событие: их легко фильтровать и загружать в анализ. Настройте ротацию через logrotate или ограничение размера журнала systemd, иначе за несколько месяцев логи займут весь диск. Историю сделок храните отдельно, в базе данных, и делайте её резервные копии.
Безопасность ключей
Токен API даёт доступ к вашему брокерскому счёту, поэтому обращайтесь с ним как с паролем от банка:
- Выпускайте токен с минимальными правами. Для аналитики хватит доступа только на чтение, для бота — на торговлю по одному счёту.
- Если брокер поддерживает привязку токена к IP-адресу, укажите адрес вашего VPS.
- Храните токен в файле окружения с правами 600 или в менеджере секретов, а не в коде и не в Git-репозитории.
- Входите на сервер по SSH-ключу, отключите вход по паролю и запускайте бота от отдельного пользователя без прав root.
Сервер отвечает только за техническую сторону. Ни быстрый процессор, ни низкий пинг не делают стратегию прибыльной, а алгоритмическая торговля несёт те же рыночные риски, что и ручная. Подключайтесь только к брокерам с действующей лицензией.