VPS для крипто-торгового бота на ccxt
Торговый бот должен работать без пауз и с минимальной задержкой до биржи — секунды простоя стоят денег. Разберём стенд на Python и ccxt: подключение к бирже, безопасные ключи, systemd и почему близость сервера к бирже важнее мощности.
Содержание
Почему торговому боту критичен VPS
['Домашний интернет для трейдинга не подходит: разрыв связи в момент сделки может обернуться незакрытой позицией и убытком. Боту нужен сервер с аптаймом близким к 100% и стабильным низким пингом до API биржи.', 'Второй фактор — задержка. Чем ближе VPS к дата-центру биржи, тем быстрее исполняются ордера. Для большинства стратегий, кроме HFT, разницы в единицы миллисекунд достаточно, и обычный VPS в правильной локации закрывает задачу.', '- Аптайм 24/7 — рынок не спит, бот тоже.
- Низкая задержка — быстрее исполнение ордеров.
- Стабильный IP — многие биржи привязывают ключи к белому списку адресов.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для торгового ботаУстановка ccxt
['ccxt — единая библиотека для сотни бирж: один код работает с Binance, Bybit, OKX и другими. Ставим её в venv.', 'sudo apt update && sudo apt install -y python3-venv git ufw\nsudo ufw allow OpenSSH && sudo ufw enable\npython3 -m venv ~/trader/.venv\nsource ~/trader/.venv/bin/activate\npip install --upgrade pip\npip install ccxt', 'Проверим доступ к публичному API биржи без ключей — это подтвердит сетевую связность:', 'python3 -c "import ccxt; print(ccxt.binance().fetch_ticker(\'BTC/USDT\')[\'last\'])"']
Безопасное хранение API-ключей
['API-ключи биржи — это доступ к деньгам. Никогда не храните их в коде и git. Держите в .env с правами 600 и создавайте ключ без права вывода средств.', "cat > ~/trader/.env <<'EOF'\nEXCHANGE_API_KEY=your_key\nEXCHANGE_SECRET=your_secret\nEOF\nchmod 600 ~/trader/.env", 'На стороне биржи в настройках API включите только торговлю и чтение, отключите вывод и добавьте IP вашего VPS в белый список — тогда даже утёкший ключ бесполезен с чужого адреса.', "import os, ccxt\nfrom dotenv import load_dotenv\nload_dotenv()\nex = ccxt.binance({\n 'apiKey': os.environ['EXCHANGE_API_KEY'],\n 'secret': os.environ['EXCHANGE_SECRET'],\n 'enableRateLimit': True,\n})\nprint(ex.fetch_balance()['total'])"]
Учёт лимитов и надёжность
['Биржи жёстко ограничивают частоту запросов. ФлагenableRateLimit: True в ccxt сам выдерживает паузы, но логику всё равно проектируйте экономно: не опрашивайте рынок чаще, чем нужно стратегии.', 'Оборачивайте сетевые вызовы в обработку ошибок и повторы — временный сбой сети не должен ронять бота.', "import time, ccxt\nfor attempt in range(5):\n try:\n ticker = ex.fetch_ticker('BTC/USDT')\n break\n except ccxt.NetworkError as e:\n print('network error, retry:', e)\n time.sleep(2 ** attempt)\n except ccxt.ExchangeError as e:\n print('exchange error:', e)\n break"]
Запуск под systemd
['Бот должен подниматься после ребута и перезапускаться при падении. Unit-файл с автоперезапуском:', '[Unit]\nDescription=Crypto trading bot\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nUser=trader\nWorkingDirectory=/home/trader/trader\nEnvironmentFile=/home/trader/trader/.env\nExecStart=/home/trader/trader/.venv/bin/python bot.py\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target', 'sudo systemctl daemon-reload\nsudo systemctl enable --now trader\njournalctl -u trader -f']
Где брать сервер и частые ошибки
['Торговому боту важнее стабильность и низкая задержка, чем количество ядер. На тарифах MAATRIX это AMD EPYC + NVMe от $8/мес: высокая частота ядра быстро считает индикаторы, а локации UK и США дают предсказуемо низкий пинг до крупных бирж. Ежедневные бэкапы сохранят конфиг и историю сделок. Оплата картой РФ, СБП, криптой или токеном MAAT.', '- Ключи в коде или git — прямой путь к потере средств.
- Ключ с правом вывода — при утечке уводят баланс; отключайте вывод.
- Нет IP-whitelist на бирже — ключ работает с любого адреса.
- Игнор rate limit — биржа временно банит по IP.
- Синхронизация времени — при расхождении часов биржа отклоняет подпись; держите включённым systemd-timesyncd.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для торгового ботаЧастые вопросы
Какая биржа поддерживается через ccxt?
ccxt работает с сотней бирж, включая Binance, Bybit, OKX, KuCoin. Один и тот же код с минимальными правками переносится между ними.
Нужен ли мощный сервер для торгового бота?
Нет, если это не HFT. Обычной стратегии хватает 1-2 ГБ RAM. Важнее стабильный аптайм и низкий пинг до биржи.
Почему биржа отклоняет запросы с подписью?
Чаще всего из-за расхождения системного времени. Убедитесь, что на VPS работает синхронизация времени через systemd-timesyncd или chrony.