MAATRIX / Блог / VPS для арбитражного бота: спред, комиссии и задержка

VPS для арбитражного бота: спред, комиссии и задержка

Блог MAATRIX · 2026-07-07

Арбитраж живёт на разнице цен между биржами, а разница исчезает за секунды. Успех решает связка «низкая задержка + честный расчёт комиссий». Разберём стенд: параллельный опрос бирж через ccxt, расчёт нетто-спреда и почему сервер должен быть близко к биржам.

Как работает арбитраж и что решает задержку

['Идея проста: купить актив дешевле на одной бирже и продать дороже на другой. Сложность — в скорости: спред между площадками закрывается за миллисекунды, и медленный бот видит уже устаревшие цены.', 'Поэтому задержка до бирж критична. VPS в правильной локации, рядом с дата-центрами площадок, даёт стабильно низкий пинг — это важнее, чем количество ядер. Домашний интернет тут не конкурент.', '
  • Скорость — спред живёт секунды, решает пинг до бирж.
  • Параллелизм — цены нескольких бирж опрашиваются одновременно.
  • Стабильность — разрыв связи в момент сделки оставляет позицию открытой.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для арбитражного бота

Установка окружения

['Ставим Python, venv и ccxt — той же библиотекой опрашиваем все биржи единым кодом.', "
sudo apt update && sudo apt install -y python3-venv git ufw\nsudo ufw allow OpenSSH && sudo ufw enable\npython3 -m venv ~/arb/.venv\nsource ~/arb/.venv/bin/activate\npip install --upgrade pip\npip install 'ccxt[async]' python-dotenv
"]

Параллельный опрос бирж

['Чтобы сравнивать цены в один момент, опрашиваем биржи асинхронно и одновременно. Асинхронный ccxt для этого и создан.', "
import asyncio, ccxt.async_support as ccxt\n\nasync def price(ex, symbol):\n    t = await ex.fetch_ticker(symbol)\n    return ex.id, t['bid'], t['ask']\n\nasync def main():\n    binance = ccxt.binance({'enableRateLimit': True})\n    kucoin  = ccxt.kucoin({'enableRateLimit': True})\n    try:\n        results = await asyncio.gather(\n            price(binance, 'BTC/USDT'),\n            price(kucoin,  'BTC/USDT'),\n        )\n        for exid, bid, ask in results:\n            print(exid, 'bid', bid, 'ask', ask)\n    finally:\n        await binance.close(); await kucoin.close()\n\nasyncio.run(main())
"]

Честный расчёт спреда с комиссиями

['Главная ошибка новичка — считать спред по «грязной» цене. Реальная прибыль появляется только после вычета комиссий обеих бирж и, для меж-биржевого арбитража, комиссии за вывод.', "
# покупаем на бирже A по ask_a, продаём на бирже B по bid_b\nfee_a = 0.001   # 0.1% taker\nfee_b = 0.001\ncost = ask_a * (1 + fee_a)\nrevenue = bid_b * (1 - fee_b)\nnet_spread = (revenue - cost) / cost * 100\nif net_spread > 0.3:      # порог с запасом на проскальзывание\n    print(f'Профит {net_spread:.2f}% — есть смысл торговать')
", 'Закладывайте порог с запасом на проскальзывание и время исполнения — «бумажный» спред 0.1% на практике часто уходит в ноль.']

WebSocket вместо частого опроса

['Дёргать REST каждую секунду — упереться в rate limit и получить устаревшие цены. Для арбитража точнее подписаться на поток обновлений стакана через WebSocket (библиотека ccxt.pro или нативные WS бирж).', 'REST-опрос оставьте для сверки, а решения принимайте по потоковым данным — так вы видите цену без задержки поллинга.', '
  • WebSocket — цены в реальном времени, без лишних запросов.
  • REST — сверка баланса и размещение ордеров.
  • Rate limit — держите enableRateLimit и не превышайте квоту площадки.
']

Где брать сервер и частые ошибки

['Для арбитража решает не мощность, а задержка и стабильность канала. На тарифах MAATRIX это AMD EPYC + NVMe от $8/мес: высокая частота ядра мгновенно считает спреды, а локации UK и США дают предсказуемо низкий пинг до крупных площадок. Оплата картой РФ, СБП, криптой или токеном MAAT — удобно, когда зарубежный провайдер карту не принимает.', '
  • Спред без комиссий — «бумажная» прибыль превращается в убыток.
  • Последовательный опрос бирж — цены снимаются в разные моменты, спред фиктивен.
  • Игнор rate limit — временный бан по IP в разгар сделки.
  • Нет учёта проскальзывания — реальная цена исполнения хуже котировки.
  • Забыли ex.close() в async ccxt — утечка соединений.
']

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.

Арендовать VPS для арбитражного бота

Частые вопросы

Реально ли заработать на арбитраже сейчас?

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

Почему нельзя опрашивать биржи по очереди?

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

REST или WebSocket для арбитража?

WebSocket даёт цены в реальном времени без лимитов на частоту. REST оставляют для сверки и размещения ордеров.