Як працює трикутний арбітраж?
Трикутний арбітраж — циклічна торгівля трьома валютними парами в межах однієї біржі для отримання прибутку з цінових невідповідностей. Не потребує переказів між біржами — все відбувається на одній платформі. Ключовий параметр: швидкість. Можливості тривають мілісекунди.
Ми розробляємо алгоритми трикутного арбітражу, які в реальному часі сканують ринкові дані та виконують угоди швидше за конкурентів. Наш досвід — 15+ років у high-frequency trading та 5+ років у криптовалютах.
Уявіть ситуацію: ціна ETH/BTC відрізняється від розрахункової через USDT на 0.1%. Це дає прибуток у кілька десятків доларів за цикл. Але таку можливість потрібно зловити за мілісекунди — інакше її забере інший бот. Ми автоматизуємо цей процес: алгоритм постійно сканує всі пари, знаходить цикли та виконує їх з мінімальною затримкою. Наші клієнти отримують готове рішення, яке працює 24/7 і приносить стабільний прибуток при низькому ризику. Зв'яжіться з нами, щоб обговорити вашу стратегію.
Принцип трикутного арбітражу
Цикл із трьох пар: A → B → C → A Приклад:
- BTC/USDT: 45,000 (1 BTC = 45,000 USDT)
- ETH/USDT: 3,000 (1 ETH = 3,000 USDT)
- ETH/BTC: 0.0668 (1 ETH = 0.0668 BTC)
Теоретично: 1 ETH має коштувати 3000/45000 = 0.0667 BTC. Реально: 1 ETH = 0.0668 BTC. Невідповідність = 0.01 BTC (~$45).
Торговий цикл:
- Продаємо 45,000 USDT → купуємо 15 ETH (по ETH/USDT 3000)
- Продаємо 15 ETH → отримуємо 1.002 BTC (по ETH/BTC 0.0668)
- Продаємо 1.002 BTC → отримуємо 45,090 USDT (по BTC/USDT 45,000)
Profit: 90 USDT − fees. Якщо 3 × taker fee 0.04% = 0.12% ≈ 54 USDT → net profit ~$36.
Чому швидкість критична?
Трикутний арбітраж — висококонкурентна ніша. Можливості тривають 100–500ms. Ми використовуємо оптимізації:
- Pre-computed paths: не обчислюємо цикли з нуля при кожному оновленні. Завчасно визначаємо всі можливі трійки, в реальному часі тільки перевіряємо їх прибутковість.
- Selective monitoring: моніторимо лише топ-50 пар за об'ємом, а не всі 2000.
- Order preparation: всі параметри ордерів обчислюються заздалегідь, відправляємо при спрацьовуванні.
- WebSocket для всіх пар:
wss://stream.binance.com/stream?streams=btcusdt@bookTicker/ethusdt@bookTicker/ethbtc@bookTicker
Пошук прибуткових циклів
Графовий підхід: будуємо граф валют, де ребра — торгові пари з вагами (log обмінних курсів). Шукаємо від'ємні цикли алгоритмом Беллмана-Форда.
import networkx as nx import math def find_arbitrage_cycles(tickers): G = nx.DiGraph() for symbol, ticker in tickers.items(): base, quote = symbol.split('/') bid = ticker['bid'] ask = ticker['ask'] if bid > 0: # base → quote: продаємо base, отримуємо quote G.add_edge(base, quote, weight=-math.log(bid)) if ask > 0: # quote → base: купуємо base, платимо quote G.add_edge(quote, base, weight=-math.log(1/ask)) # Шукаємо від'ємні цикли (прибуткові арбітражі) try: cycle = nx.find_negative_cycle(G, source='USDT') return cycle except nx.NetworkXError: return None Розрахунок оптимального розміру угоди
def optimal_trade_size(step1_depth, step2_depth, step3_depth, max_slippage=0.001): """ Максимальний об'єм при якому slippage не з'їдає прибуток """ # Для кожного кроку: скільки об'єму можемо взяти в межах max_slippage size1 = get_available_liquidity(step1_depth, max_slippage) size2 = get_available_liquidity(step2_depth, max_slippage) size3 = get_available_liquidity(step3_depth, max_slippage) # Мінімальне з трьох — наше обмеження return min(size1, size2, size3) Формула прибутковості циклу
def calculate_cycle_profit(pair1_rate, pair2_rate, pair3_rate, fee=0.001): """ Перевіряємо цикл: USDT → BTC → ETH → USDT """ # Починаємо з 1 USDT after_trade1 = (1 / pair1_rate) * (1 - fee) # USDT → BTC after_trade2 = (after_trade1 / pair2_rate) * (1 - fee) # BTC → ETH after_trade3 = after_trade2 * pair3_rate * (1 - fee) # ETH → USDT profit = after_trade3 - 1 # > 0 = profitable return profit Які ризики трикутного арбітражу?
- Partial fill: один із трьох ордерів виконався частково. Виникає відкрита позиція. Потрібен обробник: негайно закрити залишок по ринку.
- Stale data: якщо дані про ціни застаріли (> 200ms) — пропускаємо можливість.
- API rate limits: три одночасних ордери споживають три API request. При сотнях сигналів на хвилину можна впертись в limits.
- Front-running: маркет-мейкери бачать патерн і закривають арбітражний спред швидше за нас.
Що входить у розробку трикутного арбітражного бота?
| Етап | Тривалість | Результат |
|---|---|---|
| Аналіз та вибір пар | 1-3 дні | Список потенційно прибуткових циклів |
| Проектування граф-моделі | 2-5 днів | Архітектура та алгоритм |
| Інтеграція з біржею | 3-7 днів | WebSocket та REST API |
| Реалізація виконання ордерів | 5-10 днів | Модуль торгівлі з контролем ризиків |
| Тестування (backtest + sandbox) | 3-5 днів | Звіт з доходності |
| Деплой та документація | 2-4 дні | Робочий бот, керівництво користувача |
| Підтримка після запуску | 1 місяць | Моніторинг та доробки |
| Метод пошуку | Швидкість | Точність | Складність реалізації |
|---|---|---|---|
| Повний перебір | Низька | Висока | Низька |
| Графовий (Bellman-Ford) | Висока | Висока | Середня |
| Аналітичний (лінеаризація) | Висока | Середня | Висока |
Як ми гарантуємо результат?
Ми використовуємо перевірені інструменти: Python, NetworkX, Binance WebSocket API. Кожен бот проходить тестування на історичних даних та в пісочниці. Після запуску ми супроводжуємо систему протягом місяця. Досвід команди — 15+ років в алгоритмічній торгівлі та 5+ років у криптовалютах, більше 50 реалізованих проектів.
Строки та вартість
Розробка займає від 2 до 6 тижнів залежно від складності. Вартість розраховується індивідуально після аналізу стратегії. Напишіть нам — ми оцінимо ваш проект і запропонуємо оптимальне рішення.
Зв'яжіться з нами, щоб обговорити ваш трикутний арбітражний бот. Замовте розробку під ключ — отримайте готовий алгоритм з документацією та підтримкою.







