Арбитражни скриптове за ботове за крипто търговия

>

Волатилността на криптовалутния пазар го прави привлекателно място за арбитражна търговия. Трудността при изграждането на арбитражна инфраструктура обаче го прави тромав процес.

Свързването към множество борси, достъп до уебсайтове в реално време и изпълнение на арбитражната стратегия изискват свързаност с множество централи. Всеки обмен е различен по начина, по който предоставят своите API, което предотвратява прости интеграции.

В тази статия ще ви бъде предоставен скрипт за автоматично свързване към някоя от най-популярните борси на крипто пазара. С тези връзки ще имате достъп до ценови потоци на живо, които ще ни позволят да изградим началото на една арбитражна стратегия.

Въпреки че няма да разглеждаме изпълнението на поръчки в тази статия, след като бъде идентифицирана възможността, изпълнението на сделка е лесно.

Можете да намерите уроци за това как да извършвате сделки, да събирате информация за баланса на портфейла и много други в последните ни публикации в блога тук:

  • Python скриптове за крипто търговия с ботове [Урок за API търговия]

  • Проверка на стойността на вашия крипто портфейл

  • Python скрипт за криптовалутни графики на цените

  • Автоматизиране на крипто портфейли със скриптове за търговия

Нека не чакаме повече – Време е за арбитраж!

Какво е арбитраж?

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

Настройвам


Потапяйки се директно в сценария, нека започнем с настройването на нашата среда.

Инсталирайте библиотеки

Всичко, от което се нуждаем, се осигурява от API библиотека на Shrimpy за разработчици. За да инсталирате библиотеката на python, изпълнете следната команда:

pip инсталирайте shrimpy-python

Вземете API ключове

След като библиотеката бъде инсталирана, ще трябва да се регистрираме за Акаунт в API на Shrimpy Developer за да получите нашите API ключове.

След като се регистрирате, генерирайте вашия Master API ключове като изберете бутона за генериране на нови API ключове. След като тези ключове са създадени, не забравяйте да активирате „Данни”Разрешение за ключовете, в противен случай няма да можем да осъществим достъп до уебсайтовете в по-късни стъпки. Ако искате да търгувате с тези ключове, трябва да активирате ВСИЧКО разрешения за ключовете.

Запазете ключовете си за по-късни стъпки.

Вземете кодиране

Настройката вече е завършена, така че нека да вземем кодиране!

Внос

Започнете с импортиране на библиотеката Shrimpy. Това ще бъде единствената библиотека, която ще трябва да импортираме за този урок за скриптове.

внос скариди

Определете вашите манипулатори на съобщения

Когато се получи съобщение през уебсайта, ще ни е необходим манипулатор, който ще определи как ще бъдат обработени данните.

Преди да стигнете до забавната обработка на съобщения в websocket, нека създадем манипулатор, който ще управлява грешките, които се връщат през websocket. Това ще опрости начина, по който управляваме грешките си.

def error_handler (грешка):

печат (грешка)

След това е време да създадем нашия основен манипулатор на съобщения. Този манипулатор ще получи актуализациите на websocket и след това ще ги обработи. Тъй като все още не сме преминали през целия скрипт, всяка от тези стойности може да няма смисъл, но ето пример за обработка.

обмени_bbo = {}

def манипулатор (съобщение):

bid_price = msg [‘content’] [‘bids’] [0] [‘price’]

ask_price = msg [‘съдържание’] [‘пита’] [0] [‘цена’]

exchange_b_b [msg [‘exchange’]] = {‘bid’: float (bid_price), ‘ask’: float (ask_price)}

best_bid = 0.0

best_ask = 10000000.0

best_bid_exchange = “

best_ask_exchange = “

за ключ, стойност в обмените_bbo.items ():

ако стойност [‘оферта’] > best_bid:

best_bid = стойност [‘оферта’]

best_bid_exchange = ключ

if стойност [‘попитайте’] < best_ask:

best_ask = value [‘ask’]

best_ask_exchange = ключ

ако best_bid > best_ask:

печат ("продавай на " + best_bid_exchange + " за " + str (best_bid))

печат ("купувайте " + best_ask_exchange + " за " + str (best_ask))

друго:

печат ("Няма наличен арбитраж")

Въпреки че се чувства много, всичко, което този манипулатор прави, е да събира актуализациите от websocket, да съхранява най-добрата цена за оферта и цена за всяка борса, след което да сравнява цените на борсите, за да види дали има арбитражни възможности за тази двойка за търговия.

“Exchangechange_bbo” е мястото, където съхраняваме най-добрата оферта и цена за всяка борса. Когато получим всяко съобщение за отметка от websocket, стойностите в този речник се актуализират, за да включват най-новите цени за всяка борса.

Ако най-добрата оферта е по-голяма от най-добрата заявка, това означава, че има възможност за арбитраж. Когато това се случи, скриптът ще отпечата коя борса трябва да продадете и коя борса трябва да купите.

Забележка: Можете да правите каквото искате в манипулатора. Това е само пример. Най-лесният манипулатор би бил просто да разпечатате всяко съобщение, когато постъпят, подобно на манипулатора на грешки. По-сложният манипулатор би отишъл една стъпка по-далеч и би изпълнил сделките въз основа на арбитражните възможности.

Създаване на клиент

В стъпките по-рано създадохме нашите API ключове за разработчици за API на Shrimpy. Тези ключове вече могат да бъдат присвоени на променливи за публичния и частния ключ.

public_key = ‘6d73c2464a71b94a81aa7b13d …’

private_key = ‘e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …’

api_client = shrimpy.ShrimpyApiClient (public_key, private_key)

raw_token = api_client.get_token ()

client = shrimpy.ShrimpyWsClient (манипулатор на грешка, raw_token [‘маркер’])

За да създадем останалия клиент, трябва да предадем публичния и частния ключ. След това този клиент се използва за заявка на маркер за клиента на уебсайта.

След като маркерът бъде получен, просто го прехвърлете в конструктора за клиента на websocket, за да създадете клиент на websocket.

Свържете

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

client.connect ()

Забележка: Токените могат да се използват само ЕДИН ПЪТ. След като клиентът е създаден с помощта на маркера, ще трябва да поискате нов маркер всеки път, когато създавате нов клиент. Ти НЕДЕЙ трябва да поискате токен, за да се абонирате за уеб канали. Само за клиентската връзка.

Абонирай се

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

борси = ["bittrex", "binance", "kucoin"]

чифт = "btc-usdt"

за размяна в борси:

абонирайте се_данни = {

"Тип": "Абонирай се",

"обмен": обмен,

"двойка": чифт,

"канал": "bbo" }

client.subscribe (абонамент_данни, манипулатор)

Това ще се абонира за двойката BTC-USDT за Bittrex, Binance и KuCoin. След всеки отметка ще можем да разберем дали има арбитражни възможности на тези борси за тази двойка активи.

Забележка: Приложният програмен интерфейс (API) на Shrimpy позволява 100 абонамента за websocket на клиент и до 10 клиента на IP. Това означава, че можете да се абонирате за до 1000 двойки за търговия в 17+ различни борси, които поддържаме.

Прекъснете връзката

След като приключите със събирането на данни, можете да прекъснете връзката, като използвате следната проста команда.

client.disconnect ()

Това е! Всичко, което трябва да знаете, за да започнете да изграждате своя арбитражен поток от данни.

Всичко в един сценарий

След като разделихме сценария стъпка по стъпка, нека разгледаме целия шедьовър. Как изглежда като един скрипт, който можем да стартираме.

# импортирайте Shrimpy библиотеката за крипто обмен на уеб сайтове

внос скариди

# пример за обработка на грешки, той просто отпечатва входящата грешка

def error_handler (грешка):

печат (грешка)

обмени_bbo = {}

# дефинирайте манипулатора за управление на изходния поток

def манипулатор (съобщение):

bid_price = msg [‘content’] [‘bids’] [0] [‘price’]

ask_price = msg [‘съдържание’] [‘пита’] [0] [‘цена’]

exchange_b_b [msg [‘exchange’]] = {‘bid’: float (bid_price), ‘ask’: float (ask_price)}

best_bid = 0.0

best_ask = 100000.0

best_bid_exchange = “

best_ask_exchange = “

за ключ, стойност в обмените_bbo.items ():

ако стойност [‘оферта’] > best_bid:

best_bid = стойност [‘оферта’]

best_bid_exchange = ключ

if стойност [‘попитайте’] < best_ask:

best_ask = value [‘ask’]

best_ask_exchange = ключ

ако best_bid > best_ask:

печат ("продавай на " + best_bid_exchange + " за " + str (best_bid))

печат ("купувайте " + best_ask_exchange + " за " + str (best_ask))

друго:

печат ("Няма наличен арбитраж")

# въведете вашия Shrimpy публичен и частен ключ

public_key = ‘6d73c2464a71b94a81aa7b13d …’

private_key = ‘e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …’

# създайте клиента на Shrimpy websocket

api_client = shrimpy.ShrimpyApiClient (public_key, private_key)

raw_token = api_client.get_token ()

client = shrimpy.ShrimpyWsClient (манипулатор на грешка, raw_token [‘маркер’])

# свържете се с уебсайта на Shrimpy и се абонирайте

client.connect ()

# изберете борси за арбитраж

борси = ["bittrex", "binance", "kucoin"]

чифт = "btc-usdt"

# абонирайте се за уебсайтовете за дадената двойка на всяка борса

за размяна в борси:

абонирайте се_данни = {

"Тип": "Абонирай се",

"обмен": обмен,

"двойка": чифт,

"канал": "bbo" }

client.subscribe (абонамент_данни, манипулатор)

Изпълнението на този скрипт веднага ще започне да отпечатва възможностите за арбитраж за тази двойка активи на посочените борси.

За да разширите функционалността на този скрипт, някои опции за следващите стъпки биха били да се оцени как да се правят поръчки на борсата, като се възползвате от тези възможности чрез търговия.

Предназначение

Целта на тази статия не е да изгради за вас цял надежден алгоритъм за арбитражна търговия. Това е да ви покаже началото на нещо, което можете да разширите и да разраснете. Има много място за подобрение.

След няколко минути е възможно да създадете невероятни функции с помощта на API за разработчици на Shrimpy. Вместо да прекарвате часове в бъркотия с API за обмен, можете да получите последователно поведение на всеки основен обмен, като се развивате с Универсални API за крипто търговия.

Търговия с ботове за криптовалута

Разработчиците могат да използват тези прости скриптове като основа за арбитражни ботове за криптовалути. Избирайки активите за арбитраж, незабавно разкрийте пазарните възможности.

Не може да стане по-лесно.

Shrimpy интегрира 17+ различни борси, което прави процеса на разработка безпроблемен във всяка борса. Няма уникално поведение или странни грешки. Последователността е вградена в платформата.

Научете повече за всичко, което предлага Shrimpy присъединяване към нашата Telegram.

За достъп до пълните библиотеки на Python и Node следвайте тези връзки:

Възел

Python

Вижте някои от последните ни видео уроци за това как да изградите бот за крипто търговия!

Не се колебайте да се свържете, ако искате да споделите с нашия екип какво изграждате!

Относно скариди

Скариди води на пазара като водещо приложение за управление на портфолио. Потребителите са в състояние да конфигурират персонализирано крипто портфолио и да приложат пасивна стратегия за ребалансиране, премахвайки неприятностите, свързани с активната търговия с крипто.

Скаридно уеб приложение: Shrimpy – Управление на портфейл от криптовалути

API за търговия с разработчици на Shrimpy е унифициран начин за интегриране на функционалността за търговия във всяка голяма борса. Събиране на исторически пазарни данни, достъп до уебсайтове в реално време, изпълнение на усъвършенствани стратегии за търговия и управление на неограничен брой потребители.

API на Shrimpy Crypto Trading: Скариди | API за крипто търговия за разработчици

Не забравяйте да ни следвате Twitter и Facebook за актуализации и задавайте всякакви въпроси на нашата невероятна, активна общност на Телеграма.

Екипът на скаридите

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me