Розробка алгоритму cross-exchange арбітражу
Уявіть: ви виявили розбіжність у ціні BTC на Binance та Kraken у 0.3%. Комісії taker становлять 0.1% на кожній біржі, чистий прибуток — 0.1%. Але поки ваш бот отримує котирування, надсилає ордери та чекає підтвердження, спред зникає. Рішення — ультранизька латентність і паралельне виконання. Наш алгоритм сканує стакани 20 бірж за 10 мс, одночасно виставляючи ордери через asyncio.gather. Середня економія від впровадження становить $500–$5000 на місяць при стабільному спреді, а в окремих клієнтів — до $10,000.
Згідно Wikipedia: Arbitrage, міжбіржовий арбітраж заснований на неефективності ринків. Ми будуємо такі алгоритми під ключ: від моніторингу до автоматичного вирівнювання балансів. Зв'яжіться з нами для безкоштовного аудиту вашої стратегії.
Які проблеми вирішуємо
Затримка переказів між біржами. Якщо у вас немає попередньо розподілених коштів, спред закриється раніше, ніж транзакція підтвердиться. Рішення — тримати баланс на кожній біржі та переказувати тільки у фоні.
Часткове виконання ордерів. Ринковий ордер може виконатися не повністю — одна нога арбітражу залишається відкритою. Потрібен механізм хеджування залишку.
Застарілі дані. Якщо котирування приходять із затримкою понад 500 мс, ви торгуєте за неактуальними цінами. Потрібен WebSocket та VPS поруч із біржею.
Як ми шукаємо арбітражні можливості?
Алгоритм сканує стакан заявок на всіх підключених біржах паралельно, враховуючи комісії taker та мінімальний прибуток. Код ядра:
import asyncio from decimal import Decimal class CrossExchangeArbitrage: def __init__(self, exchanges, min_profit_pct=0.05): self.exchanges = exchanges # dict: name -> ccxt exchange self.min_profit = min_profit_pct / 100 async def scan_opportunities(self, symbol): tasks = { name: asyncio.create_task(ex.fetch_ticker(symbol)) for name, ex in self.exchanges.items() } tickers = {name: await task for name, task in tasks.items()} opportunities = [] exchanges = list(tickers.keys()) for i, buy_exchange in enumerate(exchanges): for sell_exchange in exchanges[i+1:]: buy_price = tickers[buy_exchange]['ask'] sell_price = tickers[sell_exchange]['bid'] buy_cost = buy_price * (1 + self.get_fee(buy_exchange, 'taker')) sell_revenue = sell_price * (1 - self.get_fee(sell_exchange, 'taker')) profit_pct = (sell_revenue - buy_cost) / buy_cost if profit_pct > self.min_profit: opportunities.append({ 'buy_exchange': buy_exchange, 'sell_exchange': sell_exchange, 'buy_price': buy_price, 'sell_price': sell_price, 'profit_pct': profit_pct }) buy_price2 = tickers[sell_exchange]['ask'] sell_price2 = tickers[buy_exchange]['bid'] buy_cost2 = buy_price2 * (1 + self.get_fee(sell_exchange, 'taker')) sell_revenue2 = sell_price2 * (1 - self.get_fee(buy_exchange, 'taker')) profit_pct2 = (sell_revenue2 - buy_cost2) / buy_cost2 if profit_pct2 > self.min_profit: opportunities.append({ 'buy_exchange': sell_exchange, 'sell_exchange': buy_exchange, 'profit_pct': profit_pct2 }) return sorted(opportunities, key=lambda x: x['profit_pct'], reverse=True) Чому latency критична?
Кожна мілісекунда — це потенційний прибуток. Якщо ваш бот знаходиться в Європі, а біржа в Азії, затримка може становити 200–300 мс. За цей час спред може зникнути. Ми розміщуємо торгових роботів на VPS у дата-центрах, максимально наближених до біржових серверів (AWS Tokyo для Binance, AWS Frankfurt для Kraken). Ping 1–5 мс, а час виконання угоди — менше 10 мс.
Інфраструктура та VPS
| Провайдер | Регіон | Ping до Binance (AWS Tokyo) | Ціна/міс (мінімальна конфігурація) |
|---|---|---|---|
| AWS | Tokyo | <1 мс | від $30 |
| Google Cloud | Osaka | ~2 мс | від $35 |
| Hetzner | Frankfurt | ~100 мс (не рекомендується) | від $10 |
Виконання: паралельні ордери
Для мінімальної latency обидва ордери надсилаються одночасно:
async def execute_arbitrage(self, opportunity, qty): buy_task = asyncio.create_task( self.exchanges[opportunity['buy_exchange']].create_market_buy_order( symbol, qty ) ) sell_task = asyncio.create_task( self.exchanges[opportunity['sell_exchange']].create_market_sell_order( symbol, qty ) ) buy_result, sell_result = await asyncio.gather(buy_task, sell_task) return buy_result, sell_result Ризик часткового виконання: один із ордерів міг не виконатися або виконатися частково. Потрібен механізм вирівнювання позицій.
Управління балансами
Автоматична ребалансировка між біржами:
- Моніторинг балансів кожні N хвилин
- При відхиленні балансу > 20% від цільового → ініціювати transfer
- Transfer проходить у фоні, не блокуючи торгівлю
- Моніторинг підтверджень транзакції
Які типи арбітражу існують?
| Тип | Суть | Ризики | Типова дохідність |
|---|---|---|---|
| Spot арбітраж | Купівля на одній біржі, продаж на іншій | Затримка переказу, комісії | 0.1–0.3% за угоду |
| Basis арбітраж | Шорт ф'ючерса + лонг спота | Зсув базису, ліквідність | 0.5–2% річних |
| Funding rate | Лонг спота + шорт перпетуала з позитивним funding | Різка зміна funding | 0.01–0.05% за 8 годин |
| Stablecoin | Купівля USDT/USDC на одній біржі, продаж на іншій | Слизькість, тонка ліквідність | 0.05–0.1% |
Процес роботи
- Аналітика: вивчаємо ваші обсяги, біржі, пари, ліквідність. Формуємо специфікацію.
- Проектування: архітектура алгоритму, вибір стеків (Foundry, ethers.js, viem), налаштування VPS.
- Реалізація: пишемо код, інтегруємо API, налаштовуємо моніторинг.
- Тестування: бектест на історичних даних (якщо доступні), стохастичне фаззинг-тестування на тестовій мережі.
- Деплой: запуск у продакшн, тонке налаштування параметрів, спостереження.
Що входить у результат та гарантії
- Вихідний код алгоритму з коментарями (на мові Solidity/Vyper для on-chain частини, Python/Node.js для бота)
- Документація: архітектура, інструкція по запуску, опис ризиків
- Доступи до моніторингу (Grafana + Prometheus, Telegram-сповіщення)
- Навчання вашої команди (2–3 сесії по 2 години)
- 30 днів підтримки після запуску
- Гарантія відсутності прихованих функцій (backdoors) — код повністю відкритий для перевірки
- Ми займаємося блокчейн-розробкою з 2017 року, реалізували понад 15 проєктів у сфері DeFi та арбітражу. Гарантуємо прозорий код і своєчасну здачу.
Терміни орієнтовно
- Базова версія (2 біржі, 1 пара, простий моніторинг): від 2 тижнів
- Продвинута (5+ бірж, управління балансами, ризик-менеджмент): від 1 місяця
- Enterprise (10+ бірж, мультивалютний, HFT-рівень): від 2 місяців
Вартість розраховується індивідуально — напишіть нам, щоб отримати оцінку. Замовте розробку алгоритму cross-exchange арбітражу і починайте заробляти на цінових розбіжностях.







