
В настоящий момент тема арбитража криптовалют в значительной степени скомпрометирована, что не может не вызывать сожаления. Первые же несколько Telegram‑каналов, найденные при беглом поиске по ключевым словам, оказались мошенническими проектами. На практике таких ресурсов в социальных сетях на порядки больше. Фактически это заботливо расставленные сети для ловли очередных доверчивых пользователей, стремящихся к быстрому и лёгкому заработку. И на волне очередного хайпа в теме криптовалют, таких становится все больше и больше.
В интернете можно встретить диаметрально противоположные мнения: от «криптоарбитраж мертв, все возможности закрыты профессиональными участниками рынка и алготрейдерами, начинающим там делать нечего» до «отрасль развивается, растут денежные вливания, новые участники создают множество новых возможностей». Но окончательный вывод каждый должен сделать для себя сам.
Обман на криптоарбитраже
Очень часто ресурсы посвященные криптоарбитражу пестрят отзывами мнимых пользователей с цифрами полученной прибыли и словами благодарности в адрес владельцев канала. Но в реальности все это не более, чем фейк. Я попытался связаться с администраторами нескольких каналов и понять что они предлагают, и каким образом клиента вводят в заблуждение.
В основном, встретившиеся способы обмана с некоторыми вариациями сводились к следующей схеме. При контакте с администратором для начала вам озвучивают «плату» за услуги — как правило это 20–30% от прибыли. Уточняется, что деньги «вперёд» платить не нужно. Если потенциального ученика все устраивает, куратор предлагает «помощь» в проведении первой сделки.
Далее возможны варианты в предложении бирж, обменников, криптовалют и способов перевода. Интересно что в большинстве случаев, вам сначала вернут один или несколько платежей обратно и даже с небольшим процентом. Это нужно чтобы усыпить бдительность и создать видимость надежно работающей системы. Но не стоит обольщаться, ваши деньги все равно проходят через кошелек, контролируемый куратором. И как только вы поверите что способ рабочий и решитесь увеличить сумму — платеж вдруг застревает. Далее вам могут предложить «протолкнуть» деньги следующим переводом, но как нетрудно догадаться, ни к чему хорошему это не приведет.
Иногда такие мошеннические схемы продолжаются: пострадавшие становятся жертвами повторных обманов через якобы «группы помощи» по возврату средств, за которыми стоят всё те же лица.
А бывают ли честные?
Спойлер — бывают. Ради справедливости стоит отметить, что не все поставщики арбитражных данных — одинаковы мошенники. На рынке встречаются и добросовестные сервисы, которые:
не навязывают конкретные биржи, обменники или кошельки;
предоставляют выбор из хорошо известных и относительно надёжных (если это понятие вообще применимо к торговле криптовалютой) биржевых платформ и общеизвестных точек обмена;
работают на условиях прозрачной подписки или разового платежа, как правило с предоплатой (кто знает, сможете ли вы расплатиться потом?);
не обещают гарантированной прибыли и не используют агрессивный маркетинг.
Но я намеренно не буду приводить здесь ссылки и рекомендации дабы не быть заподозренном в рекламе какого‑либо конкретного проекта.
Cледующй раздел можно пропустить тем, кто знаком с принципами работы криптовалютных или традиционных бирж. Остальным будет полезен краткий обзор, не претендующий впрочем на полноту, но крайне необходимый в качестве контекста дальнейшего описания.
Предметная область
В простейшем случае биржевой арбитраж представляет собой поиск ценового расхождения одного и того же актива на разных торговых площадках с целью извлечения прибыли из этой разницы. В данной статье мы не рассматриваем такие разновидности, как арбитраж на фандинге, триангулярный арбитраж и другие более сложные или специфические формы.
В качестве аналогии из реального мира можно представить несколько сообщающихся сосудов, наполненных различными жидкостями. При повышении уровня в одном из них происходит переток в другой, парный ему сосуд. Соединительная трубка символизирует канал, позволяющий трейдеру воспользоваться ситуацией и конвертировать разницу в цене в собственную прибыль.
На спотовых рынках, т. е. там где торгуется сам актив, например валюта, ресурсы, акции, а не производные от него инструменты, как правило существует несколько цен. Цена покупки ASK — цена по которой трейдер может купить актив, цена продажи BID — по которой может продать. Есть еще цена последней сделки и т.д, но нас в данном случае интересует цена ASK на бирже покупки и цена BID на бирже продажи. Следует учесть, что за любую сделку биржа берет комиссию и это в некоторой степени может повлиять на ваш окончательный финансовый результат.
Кроме того, купив монеты на одной бирже для продажи на другой нам необходимо сделать перевод посредством одной из блокчейн‑сетей. Разные монеты переводятся в разных сетях, одной или нескольких. Сеть также берет комиссию за перевод, и зачастую эта комиссия может значительно уменьшить и даже обнулить ожидаемую вами прибыль от сделки. И еще важный момент — не всегда две биржи, торгуя одной и той же монетой, имеют подключение к одинаковым сетям. Иногда общие сети есть, но они по каким‑либо причинам закрыты на ввод или вывод, что фактически означает невозможность операции перевода. Хорошей новостью является то, что большинство бирж оперативно предоставляют информацию о наличии и активности сетей и размерах комиссий, и это можно и нужно учитывать при планировании сделки.
И последнее о чем надо помнить — это глубина рынка и ликвидность монеты. Предлагаемые на бирже цены не являются одноуровневыми. Существует т. н. стакан, в котором как со стороны продавцов, так и со стороны покупателей размещаются заявки по разным ценам на разное количество актива. Покупая актив, вы сначала получаете лучшую цену в стакане, но если количества актива на этом уровне цены для вас недостаточно, вы покупаете его уже по следующей, немного более худшей цене, и так до тех пор пока не получите запрошенное вами количество. Это может привести к так называемому проскальзыванию и покупке актива по менее выгодной, а не изначально предполагаемой цене. На малоликвидных рынках — с небольшим объемом спроса или предложения, вы можете вообще не получить или не продать нужное количество актива за приемлемое время, в таком случае говорят о недостаточной глубине рынка.
Терминология
Валюты (currencies, coins) - торгуемые на криптобиржах монеты, например Bitcoin, Etherium, Solana и т.д. Их краткие обозначения - BTC, ETH, SOL.
Валютные пары (pair, symbols) - пара валют, по которой могут производиться операции купли/продажи. Обозначаются например как DOGE/BTС или DOGEBTC. Первой всегда стоит валюта котирования - та которую мы покупаем/продаем, второй - базовая валюта - та, которой расплачиваемся или в которой получаем оплату. В качестве базовой обычно используются наиболее ликвидные криптовалюты - Bitcoin, Etherium, либо фиатные валюты USD, EUR.
Тикер (ticker) - краткая текущая информация о валютной паре, включающая основные параметры - цену, объем торгов и т.д.
Арбитражная ситуация (profit trade) - потенциально прибыльная сделка или серия сделок, предварительно рассчитанная на основе разницы курсов валют.
Описания используемых терминов могут в некоторой степени отличаться от общепринятых.
Инструменты
В качестве платформы была выбрана .NET и язык C#. Это решение обусловлено прежде всего личным опытом — с этой технологией у меня наибольшая практика. Кроме того, по количеству доступных фреймворков для реализации специфичного функционала в области криптотрейдинга .NET уступает разве что Python. Но это мое чисто субъективное мнение.
Для получения хотя бы сколько‑нибудь статистически значимых результатов необходимо сравнивать данные с как можно большего числа бирж и для максимально доступного количества криптовалют.
Итак, первая проблема с которой пришлось столкнуться — необходимость единого стандартизированного API для доступа к различным биржам. Несмотря на то, что многие платформы используют аналогичные внутренние механизмы и схожие методы доступа к ним, различия между ними могут быть весьма существенными. Писать самому поддержку API под каждую биржу достаточно накладно. Более того, не стоит забывать что биржа это — активный живой организм и ее API постоянно меняется, причем не всегда старые версии совместимы с новыми. Эти изменения необходимо постоянно отслеживать.
Вторая важная задача — получение не просто текущей цены актива на двух биржах, а полноценной информации, достаточной для определения наличия арбитражной возможности. Одного лишь сравнения цен недостаточно, требуются дополнительные параметры: объемы, глубина стакана, комиссии и т. д. Необходимость анализа все этих параметров еще более расширяет спектр решаемых проблем.
На помощь пришло одно из нескольких найденных open‑source решений — библиотека ccxt, которая поддерживает сразу несколько языков: JavaScript, TypeScript, Python,.NET/C#, PHP, Go. Параллельно рассматривались еще пара свободных проектов: CryptoClients.Net и серия API‑интерфейсов от разработчика Burak Öner, но только ccxt мог похвастаться интеграцией c более чем сотней бирж, серьезной поддержкой сообщества и регулярно выходящими обновлениями. Таким образом удалось получить унифицированный интерфейс для большинства популярных платформ и избавиться от необходимости вручную отслеживать изменения их API.
В качестве системы управления базами данных использовался ClickHouse. Почему не PostgreSQL, MySQL или другое более распространённое решение? Возможно, для текущего масштаба проекта ClickHouse — не самый очевидный выбор. Однако на тот момент я параллельно занимался другим проектом, где использовался именно ClickHouse, и решил совместить задачи — заодно протестировать его возможности в контексте высокочастотной записи данных. При необходимости заменить СУБД несложно: логика взаимодействия с базой выделена в отдельный сервис, что упрощает модификацию структуры проекта.
Архитектура
В рамках реализации проекта арбитражного сканера мы анализируем расхождения курсов криптовалютных пар на различных биржах. При обнаружении ситуации, в которой цена продажи (ASK) на одной бирже превышает цену покупки (BID) на другой с учётом комиссии и доступности сети, фиксируется потенциальная арбитражная возможность.
Выходные метрики каждой сделки:
биржа покупки;
биржа продажи;
торговая пара;
используемая сеть (или сети);
комиссии за ввод/вывод и торговлю.
Этот перечень не является исчерпывающим для практической работы, но он достаточен для целей нашего эксперимента.
Общий алгоритм работы сканера:
Получение данных по всем доступным торговым парам с подключённых бирж: цены ASK/BID, поддерживаемые сети, комиссии.
Попарное сравнение цен между биржами: если BID на одной бирже превышает ASK на другой с учётом комиссий и совместимости сетей — фиксируем потенциальную арбитражную ситуацию.
Уведомление пользователя о найденной возможности.
Регулярный мониторинг условий сделки: при выходе параметров за заданные пределы — аннулировать сделку, сообщить пользователю.
Этот алгоритм отражает лишь базовую логику системы. В дальнейшем, чтобы повысить производительность и уменьшить количество ложных срабатываний, его пришлось усложнить.
Иногда изменения цен на биржах происходят очень быстро и имеют форму короткого импульса с периодом в нескольких миллисекунд. На такие выбросы могут реагировать только высокочастотные торговые боты. В рамках текущей реализации мы ориентируемся на более длительные ценовые расхождения, пригодные для принятия решений человеком или ботом начального уровня.
Чтобы обеспечить требуемый функционал, приложение может иметь следующую архитектуру:

Exchange Service — сервис получения рыночной информации. Обеспечивает унифицированный интерфейс доступа к данным бирж (цены, стаканы, комиссии и т.д.).
Collector Service — отвечает за сбор "сырых" данных, поиск и первичную фильтрацию арбитражных ситуаций.
DB Service — сервис взаимодействия с хранилищем данных. Обеспечивает хранение "сырых" биржевых данных и найденных арбитражных ситуаций.
Verifier Service — верификатор арбитражных ситуаций. Исключает ложные срабатывания, в том числе из-за кратковременных изменений цен, ведет постоянный мониторинга найденных сделок, отслеживая продолжительность арбитражных окон. Генерирует событие появления и истечения потенциальной сделки.
В качестве пользовательского интерфейса можно использовать консоль, веб-приложение или настроить интеграцию с мессенджерами. Но реализация клиентской части выходит за рамки данной статьи.
Exchange Service
Сервис Exchange Service
предоставляет унифицированный интерфейс для доступа к данным с криптовалютных бирж. Как я уже говорил, в его основе используется библиотека ccxt, поддерживающая более 100 торговых площадок (на момент написания статьи). Хотя в текущей реализации сканера их только 16. Обратите внимание, что не все биржи предоставляют открытый доступ к своему API без авторизации, а проходить регистрацию с процедурой KYC тот еще квест.
Еще одним ключевым преимуществом ccxt, является встроенная система таймингов, позволяющая не задумываться о соблюдении требований различных бирж к частоте запросов данных.
Многие биржи, помимо REST API, поддерживают также WebSocket‑соединения, обеспечивающие более быструю и стабильную передачу данных. Версия ccxt pro включает такую возможность. Однако в целях упрощения реализации в текущем проекте используется только REST API.
Ниже представлен интерфейс сервиса:
public interface IExchangeService
{
// Событие получения книги ордеров
event putOrderBookHandler EventOrderBook;
// Справочник бирж
Dictionary<string, (decimal? fee, Exchange? exchange, Queue<string> symbolQueue)> Exchanges { get; }
// Получение рыночных данных
Task GetMarketData(string exchangeId);
// Получение тикеров
Task GetTickers(string exchangeId);
// Получение списка валют
Task GetCurrencies(string exchangeId);
// Получение книги ордеров
Task GetOrderBook(string exchangeId, string symbol);
}
Интерфейс включает методы для получения необходимых рыночных данных: список валют, тикеры, книгу ордеров и общую информацию по рынку. Также предусмотрено событие EventOrderBook
, которое будет использоваться на этапе верификации арбитражных ситуаций.
Отдельно стоит отметить структуру Exchanges
— словарь, содержащий данные о биржах, комиссиях, и очередях тикеров для каждой биржи. С точки зрения объектно‑ориентированного программирования, предпочтительнее было бы реализовать доступ к этому справочнику через методы. Однако в целях упрощения архитектуры принято решение оставить его публичным.
DB Service
Другой вспомогательный сервис — DB Service, инкапсулирует в себе логику взаимодействия с базой данных. Его основная задача — запись, выборка и удаление биржевых данных, как «сырых», так и обработанных.
В базе данных предусмотрено несколько таблиц:
currencies — содержит список криптовалют, доступных на биржах. Помимо названия валют, таблица включает информацию о доступных сетях ввода/вывода и комиссии, взимаемой сетью при переводе между биржами.
market_data — содержит справочную информацию по торговым парам: биржа, базовая и котируемая валюты.
trading_data — включает тикеры валютных пар с каждой биржи: цены и объемы. Эти данные используются
Collector Service
для быстрого поиска арбитражных ситуаций.order_book — содержит подробные данные по стаканам: уровни цен и объёмов. Используется на этапе верификации в
Verification Service
для более точной оценки сделки.profit_trades — хранит список подтвержденных арбитражных ситуаций, пригодных для исполнения.
Интерфейс сервиса выглядит следующим образом:
public interface IDBService
{
Task TruncateTables();
Task Export(DataTable data, string tableName);
Task RemoveItem(SpotSpotDeal deal, string tableName);
Task GetProfitTrades(long minVolume, (int minValue, int maxValue) prcProfitRange, string[] whitelist, int agUpdated);
}
Описание методов:
TruncateTables - очистка таблиц при перезапуске сканера.
Export — универсальный метод записи данных в указанные таблицы. В качестве аргументов принимает имя таблицы и источник данных в виде объекта
DataTable
. Структура таблиц предварительно задана в конфигурации сервиса.RemoveItem — удаляет устаревшие записи из таблицы
profit_trades
, если арбитражная ситуация более не актуальна.GetProfitTrades — возвращает список верифицированных арбитражных ситуаций, соответствующих заданным критериям: минимальный объем, диапазон прибыли в процентах, whitelist валют и ограничение по времени обновления.
Collector Service
Collector Service занимает центральное место в структуре приложения и предназначен для сбора и предварительной фильтрации данных с бирж. Для этих целей он использует соответствующие методы Exchange Service и DB Service. Не имеет интерфейса, поскольку не содержит доступных для вызова внешним по отношению к нему кодом. Сервис унаследован от абстрактного базового класса BackgroundService, предназначенного для упрощения создания фоновых служб. Его ключевой метод ExecuteAsync — основное место для реализации логики службы. Переопределив его в нашем коде мы реализуем циклический процесс опроса, фильтрации и сохранения как биржевых данных, так и найденных арбитражных ситуаций и передачу их для дальнейшей верификации.
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
_logger.Info("CollectorService started");
while (!stoppingToken.IsCancellationRequested)
{
try
{
// Цикл запроса и публикации профитных сделок
await CollectDataCycleAsync(stoppingToken);
}
catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested)
{
_logger.Info("CollectorService is stopping");
break;
}
catch (Exception ex)
{
_logger.Error(ex, "Error in main data collection loop");
await Task.Delay(5000, stoppingToken);
}
}
}
В итоге найденные сервисом кандидаты на арбитражные ситуации отправляются на шину данных для последующей проверки Verification Service.
Verification Service
Аналогично Collector Service, сервис верификации не содержит публичных методов и наследуется от класса BackgroundService. Его основной метод — ExecuteAsync — реализует цикл опроса шины данных, представленной в виде объекта Dictionary, содержащего список активных арбитражных ситуаций.
Каждая ситуация из списка последовательно проверяется. При этом значения цен покупки и продажи берутся не из таблицы тикеров, а из более детального списка оrder_book. Причем данные в списке считываются и обновляются в реальном времени — свежая порция загружается через Exchange Service непосредственно в момент проверки очередной записи. Таким образом поддерживается актуальность уже найденных арбитражных ситуаций.
Дополнительно сервис проверяет доступные объемы на каждом уровне стакана. Например, сделки, у которых из‑за недостаточной ликвидности потенциальная прибыль не перекрывает комиссию сети, автоматически отфильтровываются.
Для более точной фильтрации были введены параметры глубины рынка и максимальной допустимой прибыли по сделке. Малоликвидные рынки, хотя и часто генерируют положительные сигналы, на практике не позволяют построить устойчивую стратегию из‑за высокого проскальзывания. В качестве одного из критериев ликвидности используется дневной торговый объем пары — по умолчанию он должен составлять не менее 100 000 USD.
Максимальный размер возможной прибыли ограничен в 100%. Высокие показатели прибыли чаще всего свидетельствуют не о выгодной возможности, а скорее о какой‑либо ошибке или сбое на уровне биржи, блокчейн‑сети или наличии другой проблемы, искажающей результат.
Кроме того, введено понятие базового депозита. Часто для достижения положительной прибыльности даже при достаточной разнице цен требуется большая сумма депозита. В противном случае комиссии съедают всю прибыль. Фильтр настроен таким образом, что для достижения положительного баланса требуется размер депозита не более заданного. В данном случае — 100 USD.
И наконец, после сборки проекта и запуска приложения в консоли начинают отображаться первые потенциальные сделки.

? Анализ и итоги
Нисколько не претендую на полноту исследований, но за несколько дней работы сканера все же удалось выявить ряд интересных тенденций.
Основные показатели сканирования
Показатель |
Значение |
---|---|
Количество бирж |
16 |
Количество криптовалют |
2 870 |
Максимальный потенциальный профит сделки |
100 % |
Минимальный потенциальный профит сделки |
> 0 % |
Размер базового депозита |
100 USD |
Минимальный дневной объём пары |
100 000 USD |
Время работы приложения |
~3 дня |
ТОП 5 бирж по числу арбитражных ситуаций
Название |
Доля от общего кол-ва |
---|---|
Gate.io |
77 % |
Kucoin |
9,5 % |
Poloniex |
4,1 % |
HTX |
1,7 % |
XT |
0,3 % |
Остальные |
7,4 % |
Сегментация арбитражных ситуаций по длительности
Длительность активности |
Количество ситуаций |
---|---|
Более 0 сек (всего) |
15 256 |
От 1 до 5 мин |
1 266 |
От 5 до 15 мин |
366 |
15 мин и больше |
137 |
Прошли ручную проверку |
4 |
Выводы
Наибольшее число потенциальных арбитражных сделок зафиксировано в парах с участием биржи Gate.io. Однако и доля ситуаций, отфильтрованных как непригодные, также оказалась наибольшей у этой биржи.
90,8% арбитражных ситуаций — кратковременные ценовые всплески, на которые практически невозможно отреагировать вручную.
Еще 8,3% арбитражных ситуаций корректируются в течение 5 минут, что также усложняет их ручную обработку.
-
Оставшиеся 0,9% теоретически могут быть использованы для торговли, однако большинство из них оказались непригодными по причинам, не учтенным в логике фильтра сканера. Среди них:
Монета формально доступна для перевода, но фактически сеть не работает, при этом биржа не сообщает об этом через API.
Возможна покупка и продажа монеты на разных биржах, но вывод базовой валюты после завершения операций сопровождается завышенной комиссией.
Под одинаковым тикером на разных биржах торгуются разные активы.
Из более чем 15 тыс. зафиксированных арбитражных ситуаций лишь четыре выглядели потенциально пригодными для реальной торговли. Однако даже в этих случаях остаются риски, которые не были выявлены при последующем ручном анализе. Они могут проявиться только в реальной торговле.
Если вы хотите поэкспериментировать самостоятельно — исходный код сканера выложен в открытый доступ:
? github.com/Alex-ok2005/crypto-arbitrage-scanner
Буду рад комментариям, замечаниям, предложениям по оптимизации кода и расширению функционала.
⚠️ Важно
Торговля на криптовалютных биржах — это деятельность с высоким уровнем риска. Вы можете частично или полностью потерять вложенные средства.
Разработанный сканер является тестовым инструментом, не содержит полноценной системы управления рисками и не предназначен для использования в реальных сделках в текущем виде.
P.S. К моменту выхода статьи для демонстрации работы сканера был запущен Telegram-канал:
? t.me/arbitrex_crypto
В канал транслируются найденные арбитражные возможности. Он работает в тестовом режиме и может быть отключён без предварительного уведомления.
Комментарии (22)
Alex-ok Автор
20.05.2025 13:01Да, стратегия с распределёнными депозитами на нескольких биржах — действительно, позволяет обойти необходимость в on-chain переводах и существенно снизить задержки. Однако у этой схемы есть свои особенности:
Требуется заранее держать ликвидность на всех целевых биржах, что увеличивает нагрузку на капитал по крайне мере вдвое.
Необходима синхронизация сделок, чтобы избежать перекоса в позициях (например, закупился, но не успел продать). В своем эксперименте я намеренно пошёл по пути "классического" арбитража с физическим перемещением активов, чтобы понять, насколько вообще сейчас доступны такие возможности для розничного участника без больших финансовых затрат.
Но такой подход, безусловно, имеет практическую ценность. Спасибо за мысль!
UnderSki14
20.05.2025 13:01Здравствуйте. Расширьте границы своего крипто познания. Копните глубже. В пулы дексов...Арбитраж на сек'сах кардинально отличается от арбитража на декс'ах. И в последних как раз океан возможностей
bumbarash
20.05.2025 13:01Там тоже уже все занято. Нужны серьезные ресурсы для того чтобы конкурировать с уже существующими ботами
Gregdev
20.05.2025 13:01Специально для читателей в РФ, вы не сможете нормально распоряжаться деньгами на б.картах российских. Вас будут постоянно блочить за подозрительные операции. Это основной, но очень жирный, минус.
Dsoku
20.05.2025 13:01Так оно и есть, однако если тут автор рассматривает меж.биржевой обмен, то есть переливать денежную массу с одной биржи на другую и зарабатывать на разнице цен на биржах, поэтому участие банковских карт в данной схеме никак не учитывается и не должно учитываться, только в момент покупки самой криптовалюты и в момент вывода средств уже себе на карту
Gregdev
20.05.2025 13:01Это понятно, но все бизнесдвижения должны генерить прибыль, а если распоряжаться своими деньгами свободно нельзя, то это не прибыль.
Kilosala
20.05.2025 13:01Существуют ОООшки уровня "рога и копыта" которые заведут вам на счета вполне белые и чистые ярды вечнодеревянных за ваши тезеры, правда за 13-15% комсы.
Alex_Mage
20.05.2025 13:01Интересная статья. Расскажите, вы все 2 870 "токенов" используете? Если да, то каким алгоритмом пользуетесь для поиска возможностей?
Интересно что с API? Сколько запросов и как часто? Это платно или нет?
В целом, какая цель сканера?
Спасибо.
Alex-ok Автор
20.05.2025 13:012 870 — это общее количество криптовалютных пар, которые сканировались на 16 биржах.
Как работает алгоритм:
Сканер попарно сравнивает цены покупки и продажи между биржами по всем доступным валютам: сначала между двумя, затем следующими двумя, и так далее по списку. Общее число сравнений получается значительно больше — вручную такой объём проверить невозможно.
Если находится положительная разница в ценах (когда можно купить дешевле, а продать дороже), сканер уведомляет пользователя о потенциально прибыльной сделке.
Однако важно понимать: число действительно подходящих сделок на выходе существенно меньше, чем общее количество проверок.
Цель проекта чисто академическая - проверить существуют ли реально арбитражные возможности и можно ли их использовать.
API у бирж бесплатный, но некоторые требуют регистрацию. По частоте запросов так же могут быть ограничения, но это не критично.
Alex17777
20.05.2025 13:01C 2021 занимался разработкой программ (rest, websocket) для синхронного арбитража фьючерсов (binance, okx, huobi, gate, kucoin, bybit). За два года сделал на ней примерно 500-700%. Сравнительный анализ показал, что существуют быстрые всплески разницы цены порядка 1-5% за времена меньше секунды и моя прога их отрабатывала. Спот арбитраж не рассматривал ввиду очевидной причины, а именно за время транзакции цена измениться. На данный момент то ли рынок устраняет дисбаланс цены, то ли из за спада рынка, арбитраж фьючерса не так уже эффективен, но я уверен, что ещё выстрелит, так как дисбаланс является фундаментальным свойством динамической системы.
aronsky
20.05.2025 13:01А сейчас чем занимаетесь?
Alex17777
20.05.2025 13:01Если, этот вопрос ко мне, то потихоньку наращиваю мощности совершенствую код, мониторю (сижу в засаде):), посматриваю на dex с api и фьючом. А вообще было бы интересно найти единомышленников, так как уверен, что потенциал есть.
0xtrade
20.05.2025 13:01Привет, потиху занимаюсь ботом binance - dydx. Если интересно, давай пообщаемся.
Kilosala
20.05.2025 13:01Автор копал очень усердно но совсем не в ту сторону. Первая ошибка - это то, что рассматривал спот а не фьючерсы либо dex-cex арбитраж, все сливки именно там. Второе - в списке мониторинга мало бирж, да и я не вижу там тех площадок, которые склонны "люфтить" курсом всяко разных щиткоинов в рамках 1-4% курсовой разницы на протяжении 15-45 минут. На личном опыте уверенно скажу, что из темы реально "поднимать" 25-75% от депозита в месяц, и это реальность. Главная задача - это не спалиться, чтобы площадка не просекла, что вы завели на неë 5к usdt а через три месяца волшебным образом "наторговали" до ~18к usdt и хотите вывести. Там не болванчики сидят, давно мониторят "токсичные" сделки и выдают неопытным бан. Очень повезëт, что вернëте стартовый капитал через пару месяцев. Хотя и существуют хитрые ходы как не попасть в черный список биржи.
И ещë одно - для любителей инвестировать незнакомым и отдавать трейд ключи по API. Знайте, что есть как минимум пара железобетонных вариантов вывести ваши кровные имея на руках апи ключи только для совершения торговых сделок с заблокированным выводом средств по апи. Это касается совершенно любой биржи.
VladNi
20.05.2025 13:01Ну не пали блин :)
Придет туда народ уже не будет шоколада, вон один сервис уже сильно ограничил количество заявок через него :(
kdkotov
20.05.2025 13:01Ещё любопытно, как автор обходит ограничения биржи на количество запросов? Если просто опрашивать по REST IP, то в лучшем случае, состояние стакана будет будет получатся раз в 2-3 минуты
Alex-ok Автор
20.05.2025 13:01Да, действительно ограничения есть, и у каждой биржи они разные. У OKX например максимум 10 запросов в 2 секунды. Но хитрость в том, что поиск проходит в 2 этапа. На первом - мы выкачиваем все тикеты оптом, в одном запросе и производим первоначальное сравнение цен. Происходит отсев подавляющего большинства комбинаций. А по найденным сделкам уже полностью запрашиваем весь стакан и проверяем более тщательно с учетом глубины и комиссий. Их не так много на самом деле остается. На 16 бирж уходит меньше минуты.
Кроме того, как я писал, в используемую библиотеку ccxt авторами включена система таймингов. И она сама знает к какой бирже, как часто можно обращаться. Если просишь слишком часто - выдаст данные из кэша.
А вот если бирж подключить больше - тут без вебсокетов не обойдешься. Но это уже другая история.
Alex17777
20.05.2025 13:01По rest примерно раз в секунду, а через websocket порядка 20-100мс и без ограничений. Все это есть в описании api. Можно даже ордера через wss выставлять, пробовал, но особой разницы не почувствовал. В итоге опрос через wss (но можно и rest), ордера rest. Вот было бы интересно на dex все это реализовать, но что нормального api на dex пока не нашел, может плохо искал. Есть например dxdy. A что касается количества бирж, то не очень понятно зачем вам много, у вас на каждой депозит будет?
Alex-ok Автор
20.05.2025 13:01Много бирж просто чтоб статистику собрать-изучить. В реальности то конечно много не надо.
Alex17777
20.05.2025 13:01Да, изучить это правильно, но надо также учесть, что полезный дисбаланс цены происходит вследствии крупных событий на рынке и в этот момент api многих бирж начинает колбасить, так что реализовать полезный сигнал может не получиться (пробовал, например gate не очень). Не уверен, что и руками получиться без сильной задержки.
agent777
А вы не рассматривали стратегию, при которой на нескольких биржах заранее лежат депозиты, и сделки совершаются синхронно с обеих сторон без перевода средств между биржами? Такой подход может минимизировать задержки и устранить комиссии сети.