Со стартом биткоиновой лихорадки в интернете появилось бесчисленное множество интересных проектов, начиная от ICO, облачного майнинга и заканчивая влогами и курсами по трейдингу, майнингу и т.п. Я же обратил внимание на крипто арбитраж, о чем мы сейчас и поговорим.

Долго я присматривался к этой теме, читал много статей, не верил, сомневался, потом вдохновлялся, и наконец понял если не попробую не узнаю.

Стратегий много, но для себя я разделил арбитраж на две ветки: внутрибиржевой (триногий) и межбиржейвой (пространственный) арбитраж.

Эта статья была написана еще в 2018 и только сейчас я ее нашел и решил поделиться. Поэтому не судите строго если какая-то информация будет неактуальной.

Внутрибиржевой арбитраж

Эта стратегия реализовывается на одной конкретной бирже и выглядит примерно так.

Допустим у нас есть BTC, их продаем за доллары, на эти доллары покупаем LTC, а потом LTC меняем на BTC – получаем прибыль в BTC. Так-как цену двигают люди – всегда есть какой-то зазор, на котором можно заработать. Если перемножить все цены - в идеале должно получится 1, а на любом отклонении от единицы можно заработать проходя по треугольнику по часовой стрелке или против часовой. Не обязательно должно быть три валюты, их может быть любое количество.

На словах выглядит запутанно, давайте рассмотрим конкретный пример в цифрах, приближенный к простому человеку. Возьмем тройку Доллар-Евро-Фунт.

Доллар-Евро - 0.9

Евро-Фунт - 0.8

Фунт-Доллар - 1.3

0.9 * 0.8 * 1.3 = 0.93

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

1/0.9 * 1/0.8 * 1/1.3 = 1.07

Ситуацию еще усложняет то, что за каждую операцию мы платим комиссию. А за три сделки мы заплатим тройную комиссию.

Есть много ботов на гитхабе, платных и бесплатных, которые ищут арбитражные возможности и производят сделки. Такие программы или не внушают доверия, или не соответствуют требованиям. В общем, решил все сделать сам и проверить. Использовал библиотеку ccxt. Для начала взял одну тройку и каждые несколько секунд проверял есть ли возможность для арбитража и действительно такие возможности были, но в полной мере оценить картину не удавалось. Поэтому я добавить еще несколько троек. Даже пытался торговать. Вскоре решил переделать бота, добавил к нему веб-интерфейс, подключил другие биржи. Начал сканировать каждую по очереди в поисках арбитражных ситуаций. Но как бы я не старался, торговать так и не удавалось. Если и существует арбитражная ситуация, то через секунду, максимум две ее уже нет.

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

Даже если и успеешь просчитать и начать торговать, можно не успеть на последней сделке и остаться с никому ненужной монетой. 

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

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

  2. высокоскоростной канал связи с биржей;

  3. использовать высокопроизводительный язык программирования, такой как C, Assembler, возможно даже программирование микропроцессора, чтобы обойти использование OS, а работать напрямую с железом;

  4. оптимизировать свою программу по максимуму;

  5. и лучше держать нужную сумму сразу в нужной валюте. К примеру, торгуем BTC->LTC->USD, то надо чтобы в эквиваленте $100 было и в LTC и в BTC и в USD. Или можно использовать маржинальную торговлю, если это позволяет биржа и ее API.

Я использовал polling запросы с интервалом в несколько секунд, но некоторые биржи предоставляют канал связи по веб сокетам, что, по идее, должно ускорить обмен данными с биржей.

Конечно можно зарабатывать и с помощью своего сервера или компа, но по моим подсчетам сумма в $1000, раскиданная по разным биржам, по разным монетам, принесет несколько десятков долларов в месяц и это в лучшем случае, если все будет гладко. Кто-то еще верит, что можно арбитражить вручную?

Межбиржевой арбитраж

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

Арбитражные ситуации (вилки) возникают, когда на одной бирже монету покупают или продают в большом объёме, двигая при этом цену. На этой бирже цена на монету отличается от цены на других биржах. Люди, в том числе и арбитражники, понимают куда будет идти цена на других биржах и начинают своими действиями выравнивать цену.

Для максимальной доходности лучше держать деньги на двух биржах, в валютах с которыми работаем, чтобы сразу купить на одной и продать на другой. Например, возьмем пару BTC-ETH (биткоин-эфир), у нас есть приблизительно одинаковое количество ETH и BTC на обеих биржах. На бирже А, эфир стоит дешевле, поэтому там покупаем его, а на бирже Б где он стоит дороже, столько же эфиров продаем. На бирже А стало больше эфиров, а на бирже Б – больше биткоинов. Мы переводим эфиры и биткоины чтобы выровнять их количество на обеих биржах. Эта стратегия дает возможность моментально отреагировать на ситуацию, потому что время перевода некоторых монет может длиться несколько часов, а то и больше. Чтобы заработать и уменьшить комиссию за перевод (так как она не в процентах, а фиксированная), желательно оперировать суммами от $300. Держать такие суммы во многих монетах на разных биржах не каждый может себе позволить. 

Так как у меня уже была настроена работа с несколькими биржами, решил доработать свою систему для мониторинга межбиржевых арбитражных ситуаций. 

Чтобы долго не думать, за основную валюту к торой торгуются почти все монеты возьмем биткоин.

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

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

В поиске участвовало около 30 бирж.

Мой сервис так же, как и другие показывали много арбитражных ситуаций с процентами от 0 до 100 и выше. Но как оказалось: 

  • там, где большие проценты, монеты не доступны к выводу или даже к торгам;

  • там, где маленький процент, можно вообще не заработать и даже потерять на комиссии; 

  • часто надо смотреть на объем торгов, чтобы монета была ликвидна. Хорошо, когда объем торгов несколько биткоинов, значит монету не так просто пампить и во время закупки цена не будет сильно подниматься, а при продаже опускаться;

  • надо брать проверенную биржу, которая не замораживает кошельки для личной выгоды;

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

Исходя из выше перечисленных особенностей, решил сделать фильтр. Теперь стало возможно ограничивать профитность, указывать минимальный объем торгов за 24 часа, выбирать биржи, с которыми хочешь работать, исключать фиатные валюты и сохранять настройки фильтра.

Хотелось еще отфильтровать список валютных пар по доступности кошельков на бирже. Отсеять те, где вывод или ввод закрыт, но мало бирж предоставляют такую информацию по API. Поэтому проверять кошельки пришлось вручную. Но много проверять не пришлось. Отфильтровав выборку, осталось всего несколько вариантов. Проверив каждый, я не был удивлен, увидев, что одни и те же кошельки не доступны повсюду.

Осталось только ждать и следить, когда где-то цена начнет резко меняться и появится возможность торговать. И шансы есть, и можно торговать, но на нечестных биржах, часто транзакция может зависнуть на несколько дней, а то и недель. Несколько раз удалось поторговать, разок не успел, иногда деньги зависали и надолго. В общем, потратил больше нервов чем заработал денег. А пока торговал решил сделать еще две фичи – это таблицу профитности по конкретной монете на данный момент и график изменение цены по конкретной монете на разных биржах. 

Динамика цен мне показалось интересной функцией. По ней можно легко определить где цена отстает, видеть спред в конкретный момент времени. 

Анализ графиков динамики цен можно совмещать со стратегией пространственного арбитража при которой не надо выводить монеты с биржи, а просто дожидаться сглаживания цен. То есть мы закупаем монеты, где они дешевле и ждем, когда цена вырастет.

Сейчас сервис больше не развивается, так как изменились интересы. Как видно арбитраж работает, но вот сколько можно на этом заработать, это уже другой вопрос. Все зависит от волатильности монет, а как известно, она уменьшается. Принимаются новые законы, криптовалюты становятся более урегулированными и менее подвержены резким скачкам. Биржи становятся более опытными и стараются оградить своих пользователей от мошенничества на рынках типа спуфинга, искусственных пампов и дампов на монетах с маленьким объемом. Подобная ситуация наблюдалась на биржевых рынках.

В итоге на внутрибиржевом арбитраже тоже много не заработаешь без хорошей скорости работы с биржей, которая стоит не дешево. На межбиржевом же арбитраже больше возможностей, но и больше проблем и рисков, есть возможность не только не заработать, а даже и потерять, и я не говорю еще о том, что биржи могут закрываться, блокировать транзакции или целые аккаунты. Я слышал, что люди «праздновали» годовщину тикета без ответа на недобросовестной бирже. Можно дальше развивать идею автоматизации торговли на биржах, то ли это арбитраж, то ли торговля по определенной стратегии или сигналам. Ловля профита на отскоках при резком падении, или заработок на шортах при пампах. Создание видимости объема торгов для движения цены и т.п. В сети можно найти еще много интересных стратегий которые, скорее всего, уже кто-то реализовал и кучу идей которые еще только придется воплотить в жизнь.

Комментарии (31)


  1. StjarnornasFred
    07.01.2022 02:20

    Обыкновенная биржевая спекуляция, кои существуют уже не первый век, разве что вместо традиционных активов - нетрадиционные. Что здесь интересного?

    Как видно арбитраж работает, но вот сколько можно на этом заработать, это уже другой вопрос.

    Вот именно. Это выгадывание копеек. Копейки и можно заработать. С таким же успехом можно проходить платные опросы или ставить приложения на смартфон за 5 рублей каждое.


    1. Zolg
      07.01.2022 17:01
      +1

      можно проходить платные опросы или ставить приложения на смартфон за 5 рублей какаждое

      Если (как и торговлю на бирже) это допускается делать ботом, без ограничений по объемам, то это прям-таки золотая жила.


      1. Hait
        08.01.2022 20:47

        Так ботов же многие биржа банят. Недавно читал договор одной из них (название уже не вспомню), там прописано, что запрещена автоматизация торговли


  1. FreeNickname
    07.01.2022 02:24

    Спасибо за статью!) Тема интересная, но было бы здорово увидеть больше технических деталей: как реализованы торговые боты, какие трудности в интеграции с биржами и т.д.


    1. Yurich_T Автор
      07.01.2022 19:35
      +1

      Особых трудностей нету, есть хорошая библиотека, которая работает с многими биржами. https://github.com/ccxt/ccxt. Она поддерживает несколко популярных языков программирования и дает возможность работать с разными биржами через один интерфейс. И чтобы проверить концепцию ее вполне хватает.

      Но если мы хотим что-то оптимизировать или использовать уникальные возможности биржы, то придется использовать оригинальную API.


  1. oOKIBrTlUTohw4Sc
    07.01.2022 02:32
    +7

    Есть некий треугольник наподобие "дешево-быстро-качественно" можно выбрать только 2, так вот тут "низкий риск - высокий доход - низкий порог входа". Арбитраж - одна из самых безрисковых техник, порог входа - да любой может этим заниматься. Вот и дохода тут нет.

    Вот была возможность арбитражить руками на DEXах. Ботом можно было бы спокойно нашкрябать до 100К баксов в месяц. Нюансы? Окошко когда можно было зайти было небольшое, может 2-3 месяца, узнал я об этом через знакомых, в итоге заработок 0, ибо нишу занял другой бот, более эффективный, чуть-чуть не успел свой дописать. В общем подводя итог - хотите заработать - или рискуйте, или ищите нишу, никогда то, чем может заниматься практически любой не будет прибыльным.


  1. uburame
    07.01.2022 03:30
    +3

    Хммм. Когда я задался этой темой где-то в 2014 разница между биржами была порой в десятки процентов и держалась минуты. Но отсутствие API у одних, и его ограничение скорости у других ничего вменяемого сделать не позволило.


  1. eimrine
    07.01.2022 10:30

    Есть много ботов на гитхабе, платных и бесплатных, которые ищут арбитражные возможности и производят сделки.
    Можно поподробнее про алгоритм поиска профитных сделок? У меня есть опыт ручной торговли, но мой метод больше отталкивается от того, сколько тех или иных тугриков мне понадобится в ближайшее время.


    1. gonchik
      07.01.2022 10:51

      То есть оценку справедливой цены имеете ввиду?


      1. eimrine
        07.01.2022 14:25

        Да что угодно, лишь бы (в идеале) включить шкатулку и только успевать стричь купоны ;-)


        1. Yurich_T Автор
          07.01.2022 15:04
          +1

          К сожелению кнопки "Бабло" нету. Если есть навыки программирования, поищите на гитхабе по ключевым словам trade, crypto, bot, exchange, arbitration, посмотрите упоминание библиотеки ccxt/ccxt. Но большенство проектов надо доработывать или сильно настраивать под себя.


    1. SimSonic
      08.01.2022 07:12
      +1

      Делал такое же на ныне закрытой бирже BTC-E. Алгоритм простой -- берешь все возможные торговые пары, дальше брутфорс всех возможных цепочек переходов. Фильтрация по пригодности (out/in > 1), сортировка по прибыльности, и поехали.

      Даже смог наторговать с 1500 руб до 4200, но потом биржа сказала Аривидерчи :)


    1. AnonimYYYs
      09.01.2022 01:10

      Сам немного балуюсь этой темой. И я использую граф. С ним все просто - ноды это токены а узлы это коэфы обмена. При передаче по узлам Н токенов конвертируем их по коэффициенту. Задаем начальное условие, допустим, 100 битков и просто ищем результаты всех путей, или, скорее, всех циклов. Это уже алгоритм поиска кратчайшего пути на графе, только функция "краткости" пути скорее максимизирует а не минимизирует.

      Увы, я пока в процессе (и скорее больше именно графы исследую с возможностью далее это применить в нейронках, а не торговлю) поэтому насчет скорости и в принципе целесообразности такогг подхода пока что сказать не могу.


  1. niyaho8778
    07.01.2022 12:14
    +3

    Сейчас бы в 2022 заниматься не дефи лоянами на дефи ликвидных свапалках...

    друг ты отстал на года 3...


    1. Yurich_T Автор
      07.01.2022 14:45
      +2

      Я же написал, что этим занимался еще в 2018 году.


    1. pfffffffffffff
      07.01.2022 15:33
      +4

      Можно подробнее?


  1. SatyrB
    07.01.2022 12:25
    +2

    Рынок криптовалют достаточно фрагментирован и арбитражных возможностей там немало.
    Мне бы такого программиста, как автор))) увы, приходится все ручками делать. Профит не сказать, чтоб копеечный, особенно если сравнить с медианной российской зарплатой.


    1. SatyrB
      07.01.2022 18:31

      Вот прям сегодня наблюдал разницу в цене на уровне 0,4% на разных биржах. Торговая пара вполне ликвидная. Руками такую разницу нет смысла ловить, а вот бот бы мог заработать.
      Автор рано съехал с темы, имхо.


      1. Yurich_T Автор
        07.01.2022 19:30

        0.4% это не так и много, ктому же это не единственный параметр который стоит учитывать. Надо еще учесть стоимость переводов между биржами (если, конечно, у вас нет другой стратегии). А еще учесть ликвидность такой разницы курсов, к примеру какую минимальную сумму можно можно выкупить, чтобы цена монет не вировнялась? Ведь когда мы будем покупать монету, то мы будем выкупать несколько ордеров в стакане и цена ссответствено будет подыматься. Еще надо брать во вномание время существования арбитражной ситуации, которое обычно несколько десятков минут или меньше. За это время транакция между биржами не пройдет (надо иметь монеты на двоих этих биржах). Я не спорю что арбитражных ситуаций нету, но если учесть все параметры, по получаеться много гемороя. Возможно я ошибаюсь и можно доработать стратегию.


        1. SatyrB
          07.01.2022 21:46
          +2

          0,4% это дофига, если сравнивать с традиционным фондовым рынком. А десятки минут с той же точки зрения — это очень большой промежуток времени для арбитражной ситуации. Сразу кучу денег не заработать, ликвидность позволяет получить профит несколько долларов, но таких ситуаций возникает десятки за торговые сутки.
          Разумеется, нужно иметь капитал сразу на обеих биржах. Никто не гоняет капитал туда-сюда. Нужно иметь хотя бы несколько тысяч баксов на обоих концах. По нынешним временам это одна-две программистских зарплаты))


          1. Hait
            08.01.2022 20:50

            А комиссия за вывод не съест это всё?


        1. Nacreous1991
          08.01.2022 04:55

          Если находить по 1 сделке с разницей в 0.4% в день, то это даст 0.4/2*365%=72% в год


          1. Yurich_T Автор
            08.01.2022 10:40

            Не забывайте усчитать комииссию за покупку монет (хоть она и мизерная), и комиссию за перевод между биржами, для выравнивания баланса и умножте ее на два. Есть еще ограничение по сумме которую может провернуть, чтобы цена не выровнялась. Это может быть несколько сот долларов. Даже если мы провернем сделки на 500 долларов, то это всего 2 доллара (без учета комиссий). Или 700 долларов в год. И это при всем том геморое который сложно автоматизировать.


            1. Nacreous1991
              08.01.2022 14:42

              Просто я 3 года занимаюсь арбитражем и не плохо зарабатывают. Во первых даже на 500 долларов это очень мало. Нужны десятки тысяч. Или вы на фондовом рынке тоже хотите с 500 долларами полнятся. Во вторых выравнивать балансы нужно очень редко. Просто нужны стратегии когда мы сначала покупаем на одной, продаем на другой, а потом наоборот.


              1. Yurich_T Автор
                08.01.2022 14:55

                Возможно у вас более продуманная стратегия, я ишел по простой схеме. Согласен, что надо десятки, тысяч и я не против если бы знал рабочую схему, да и на финансовых биржах я бы не занимался арбитражем или тограми, я там просто холдю. А про 500 долларов я говорю что это один ордер при арбитражной ситауции. Большие ордера начинают двигать цену и ищезает нужный спред (абитражная ситуация)


                1. zamaksza
                  08.01.2022 23:38

                  Привет, твоим сервисом попользоваться/потестить?


                  1. Yurich_T Автор
                    08.01.2022 23:42

                    Я не разворачивал сервис. Тестил все локально. Хотел понять если в этом смысл, но вижу что тема интересная, возможно как нибуть доработаю и выложу.


          1. oleg1977
            09.01.2022 22:51

            В % мерять не корректно: если на бирже 1000 usd, а каждая упомянутая арбитражная сделка в день - 10 usd, то %% нужно делить на 100 - 0.72% годовых вместо 72%


  1. amarao
    07.01.2022 16:04
    +4

    Тю, я надеялся на арбиртаж между pancake и uniswap, причём прямо в контракте.


  1. themen2
    07.01.2022 23:14

    Почему вы не конвертировали в usdt токен? Это стабильный токен = 1 usd на многих биржах


  1. RickCastle2018
    09.01.2022 13:11

    Большинство минусов, да и сама проблема работы с биржами и их нечестностью уходит при использовании децентрализованных бирж, которые работают на смарт-контрактах. Например, Pancakeswap.