Script di arbitraggio per bot di criptovaluta

>

La volatilità del mercato delle criptovalute lo rende un luogo attraente per il trading di arbitraggio. Tuttavia, la difficoltà di costruire un’infrastruttura di arbitraggio lo rende un processo complicato.

Il collegamento a più scambi, l’accesso ai web socket in tempo reale e l’esecuzione della strategia di arbitraggio richiedono tutti la connettività a più scambi. Ogni scambio è diverso nel modo in cui fornisce le proprie API, il che impedisce semplici integrazioni.

In questo articolo, ti verrà fornito uno script per connetterti automaticamente a uno degli scambi più popolari nel mercato delle criptovalute. Con queste connessioni, avrai accesso a flussi di prezzi in tempo reale che ci consentiranno di costruire l’inizio di una strategia di arbitraggio.

Sebbene non tratteremo l’esecuzione degli ordini in questo articolo, una volta identificata l’opportunità, eseguire un’operazione è semplice.

Puoi trovare tutorial su come eseguire operazioni, raccogliere informazioni sul saldo del portafoglio e altro nei nostri recenti post sul blog qui:

  • Script Python per bot di trading crittografico [Tutorial sul trading di API]

  • Controllo del valore del tuo portafoglio crittografico

  • Uno script Python per grafici dei prezzi di criptovaluta

  • Automatizzazione di portafogli crittografici con script di trading

Non aspettiamo più: è tempo di arbitrare!


Cos’è l’arbitraggio?

Non tratteremo i dettagli dell’arbitraggio in questo articolo. Per saperne di più su cosa sia l’arbitraggio, visita il nostro articolo precedente Qui.

Impostare

Immergendoci nel copione, iniziamo impostando il nostro ambiente.

Installa le librerie

Tutto ciò di cui abbiamo bisogno è fornito da Libreria API per sviluppatori Shrimpy. Per installare la libreria python, esegui il seguente comando:

pip installa shrimpy-python

Ottieni chiavi API

Una volta installata la libreria, dovremo registrarci per un file Account API per sviluppatori di gamberetti per ottenere le nostre chiavi API.

Dopo la registrazione, genera il tuo Chiavi API principali selezionando il pulsante per generare nuove chiavi API. Dopo che queste chiavi sono state create, assicurati di abilitare “Dati“Sulle chiavi, altrimenti non saremo in grado di accedere ai websocket nei passaggi successivi. Se vuoi fare trading con quelle chiavi, dovresti abilitare TUTTI permessi sulle chiavi.

Salva le chiavi per i passaggi successivi.

Ottieni codifica

La configurazione è ora completata, quindi iniziamo a programmare!

Importazioni

Inizia importando la libreria di Shrimpy. Questa sarà l’unica libreria che dovremo importare per questo tutorial sullo script.

importare gamberetti

Definisci i tuoi gestori di messaggi

Quando un messaggio viene ricevuto tramite il websocket, avremo bisogno di un gestore che determinerà come verranno elaborati i dati.

Prima di arrivare alla divertente elaborazione dei messaggi websocket, creiamo un gestore che gestirà gli errori che ritornano attraverso il websocket. Ciò semplificherà il modo in cui gestiamo i nostri errori.

def error_handler (err):

stampa (err)

Successivamente, è il momento di creare il nostro gestore di messaggi principale. Questo gestore riceverà gli aggiornamenti del websocket e quindi li elaborerà. Poiché non abbiamo ancora esaminato l’intero script, ciascuno di questi valori potrebbe non avere senso, ma ecco un esempio di gestore.

exchange_bbo = {}

gestore def (msg):

prezzo_offerta = msg [“contenuto”] [“offerte”] [0] [“prezzo”]

ask_price = msg [“contenuto”] [“chiede”] [0] [“prezzo”]

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

migliore_offerta = 0,0

best_ask = 10000000.0

best_bid_exchange = ”

best_ask_exchange = ”

per chiave, valore in exchange_bbo.items ():

se valore [“offerta”] > best_bid:

best_bid = value [“offerta”]

best_bid_exchange = chiave

if value [‘ask’] < best_ask:

best_ask = value [“ask”]

best_ask_exchange = chiave

if best_bid > best_ask:

Stampa("vendere " + best_bid_exchange + " per " + str (best_bid))

Stampa("acquista su " + best_ask_exchange + " per " + str (best_ask))

altro:

Stampa("Nessun arbitraggio disponibile")

Anche se sembra molto, tutto ciò che questo gestore sta facendo è raccogliere gli aggiornamenti dal websocket, memorizzare il miglior prezzo di offerta e domanda per ogni scambio, quindi confrontare i prezzi tra gli scambi per vedere se ci sono opportunità di arbitraggio per quella coppia di scambio.

“Exchange_bbo” è dove memorizziamo la migliore offerta e il prezzo di domanda per ogni scambio. Quando riceviamo ogni messaggio tick dal websocket, i valori in quel dizionario vengono aggiornati per includere i prezzi più recenti per ogni scambio.

Se la migliore offerta è maggiore della migliore richiesta, significa che esiste un’opportunità di arbitraggio. Quando ciò accade, lo script stamperà su quale borsa dovresti vendere e quale borsa dovresti comprare.

Nota: puoi fare quello che vuoi nel gestore. Questo è solo un esempio. Il gestore più semplice sarebbe stampare semplicemente ogni messaggio non appena arrivano, in modo simile al gestore degli errori. Un gestore più complesso farebbe un ulteriore passo avanti ed eseguirà le operazioni in base alle opportunità di arbitraggio.

Creazione del cliente

Nei passaggi precedenti, abbiamo creato le nostre chiavi API per sviluppatori per le API Shrimpy. Queste chiavi possono ora essere assegnate a variabili per le chiavi pubbliche e private.

public_key = “6d73c2464a71b94a81aa7b13d …”

private_key = “e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …”

api_client = shrimpy.ShrimpyApiClient (public_key, private_key)

raw_token = api_client.get_token ()

client = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

Per creare il resto del client, dobbiamo passare le chiavi pubblica e privata. Questo client viene quindi utilizzato per richiedere un token per il client websocket.

Una volta ricevuto il token, passalo semplicemente al costruttore per il client websocket per creare il client websocket.

Collegare

Prima di iscriverti a canali websocket specifici per ogni coppia di trading, vai avanti e connettiti al flusso websocket. Ciò richiederà l’uso del token una tantum che hai recuperato dal passaggio precedente. Se è necessario creare un altro client per qualsiasi motivo, sarà necessario ottenere di nuovo un token e passarlo al costruttore del client.

client.connect ()

Nota: i token possono essere utilizzati solo UNA VOLTA. Dopo aver creato il client utilizzando il token, dovrai richiedere un nuovo token ogni volta che crei un nuovo client. voi NON è necessario richiedere un token per iscriversi ai canali websocket. Solo per la connessione client.

sottoscrivi

Ora che siamo connessi al websocket, possiamo iscriverci a ciascuna delle coppie di scambio che vogliamo utilizzare per il nostro script di arbitraggio. Questo può essere fatto facilmente nel modo seguente.

scambi = ["bittrex", "binance", "kucoin"]

coppia = "btc-usdt"

per scambio in scambi:

subscribe_data = {

"genere": "sottoscrivi",

"scambio": scambio,

"paio": paio,

"canale": "bbo" }

client.subscribe (subscribe_data, handler)

Questo si iscriverà alla coppia BTC-USDT per Bittrex, Binance e KuCoin. Ad ogni tick, saremo in grado di dire se ci sono opportunità di arbitraggio tra questi scambi per questa coppia di asset.

Nota: le API di Shrimpy consentono 100 abbonamenti websocket per client e fino a 10 client per IP. Ciò significa che puoi iscriverti a un massimo di 1.000 coppie di trading negli oltre 17 diversi scambi che supportiamo.

Disconnetti

Dopo aver finito di raccogliere i dati, puoi disconnetterti utilizzando il seguente semplice comando.

client.disconnect ()

Questo è tutto! Tutto ciò che devi sapere per iniziare a creare il tuo flusso di dati di arbitraggio.

Tutto in uno script

Ora che abbiamo suddiviso l’istruzione di script passo dopo passo, diamo un’occhiata all’intero capolavoro. Come appare come un singolo script che possiamo eseguire.

# importa la libreria Shrimpy per i websocket di scambio crittografico

importare gamberetti

# un gestore di errori di esempio, stampa semplicemente l’errore in arrivo

def error_handler (err):

stampa (err)

exchange_bbo = {}

# definisce il gestore per gestire il flusso di output

gestore def (msg):

prezzo_offerta = msg [“contenuto”] [“offerte”] [0] [“prezzo”]

ask_price = msg [“contenuto”] [“chiede”] [0] [“prezzo”]

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

migliore_offerta = 0,0

best_ask = 100000.0

best_bid_exchange = ”

best_ask_exchange = ”

per chiave, valore in exchange_bbo.items ():

se valore [“offerta”] > best_bid:

best_bid = value [“offerta”]

best_bid_exchange = chiave

if value [‘ask’] < best_ask:

best_ask = value [“ask”]

best_ask_exchange = chiave

if best_bid > best_ask:

Stampa("vendere " + best_bid_exchange + " per " + str (best_bid))

Stampa("acquista su " + best_ask_exchange + " per " + str (best_ask))

altro:

Stampa("Nessun arbitraggio disponibile")

# inserisci la tua chiave pubblica e privata di Shrimpy

public_key = “6d73c2464a71b94a81aa7b13d …”

private_key = “e6238b0de3cdf19c7861f8e8f5d137ce7113ac1e884b191a14bbb2 …”

# crea il client websocket di Shrimpy

api_client = shrimpy.ShrimpyApiClient (public_key, private_key)

raw_token = api_client.get_token ()

client = shrimpy.ShrimpyWsClient (error_handler, raw_token [‘token’])

# connettiti alla websocket di Shrimpy e iscriviti

client.connect ()

# seleziona gli scambi da arbitrare

scambi = ["bittrex", "binance", "kucoin"]

coppia = "btc-usdt"

# iscriviti ai websocket per la coppia data in ogni scambio

per scambio in scambi:

subscribe_data = {

"genere": "sottoscrivi",

"scambio": scambio,

"paio": paio,

"canale": "bbo" }

client.subscribe (subscribe_data, handler)

L’esecuzione di questo script inizierà immediatamente a stampare le opportunità di arbitraggio per questa coppia di asset sugli scambi specificati.

Per espandere le funzionalità di questo script, alcune opzioni per i passaggi successivi sarebbero valutare come inserire ordini in borsa, sfruttando queste opportunità facendo trading.

Scopo

Lo scopo di questo articolo non è creare un intero algoritmo di trading di arbitraggio robusto per te. È per mostrarti l’inizio di qualcosa che puoi espandere e far crescere. C’è molto spazio per migliorare.

In pochi minuti, è possibile creare funzionalità straordinarie utilizzando le API per sviluppatori di Shrimpy. Invece di passare ore a giocherellare con le API di scambio, puoi ottenere un comportamento coerente in tutti i principali scambi sviluppando con API universali di Crypto Trading.

Trading di bot per criptovaluta

Gli sviluppatori possono utilizzare questi semplici script come base per i robot di arbitraggio di criptovaluta. Selezionando le risorse da arbitrare, scopri immediatamente le opportunità di mercato.

Non può essere più facile.

Shrimpy integra più di 17 scambi diversi che rendono il processo di sviluppo fluido in ogni scambio. Nessun comportamento unico o errori strani. La coerenza è integrata nella piattaforma.

Scopri di più su tutto ciò che offre Gamberetti di unirsi al nostro Telegram.

Per accedere alle librerie complete Python e Node, segui questi collegamenti:

Nodo

Pitone

Guarda alcuni dei nostri ultimi video tutorial su come costruire un bot per il trading di criptovalute!

Non esitare a contattarci se desideri condividere con il nostro team cosa stai costruendo!

A proposito di gamberetti

Gamberetti guida il mercato come la principale applicazione di gestione del portafoglio. Gli utenti sono in grado di configurare un portafoglio crittografico personalizzato e implementare una strategia di ribilanciamento passivo, eliminando il fastidio di dover scambiare attivamente crittografia.

Applicazione Web di gamberetti: Gamberetti – Gestione del portafoglio di criptovalute

API di Shrimpy’s Developer Trading è un modo unificato per integrare le funzionalità di trading in tutti i principali exchange. Raccogli dati storici di mercato, accedi a websocket in tempo reale, esegui strategie di trading avanzate e gestisci un numero illimitato di utenti.

API Shrimpy Crypto Trading: Gamberetti | API di Crypto Trading per sviluppatori

Non dimenticare di seguirci su Twitter e Facebook per gli aggiornamenti e per qualsiasi domanda alla nostra fantastica e attiva community su Telegramma.

Il team di gamberetti

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Like this post? Please share to your friends:
Adblock
detector
map