Dados do livro de pedidos de troca de criptografia CCXT [tutorial de exemplo]

>

Esteja você criando um bot de negociação pessoal ou desenvolvendo um serviço de negociação completo que oferecerá suporte a milhares de usuários, os dados do livro de ordens de troca estarão sempre em sua mente. É um dos primeiros elementos necessários para avaliar com sucesso o mercado e executar uma estratégia.

Por que o livro de pedidos é importante?

O livro de pedidos especifica todos os pedidos disponíveis que estão atualmente abertos em uma troca. Cada pedido representa uma pessoa (ou várias pessoas) que deseja comprar ou vender um ativo a um determinado preço.

Ao negociar, você pode colocar sua própria ordem aberta na bolsa para outra pessoa aceitar ou pode aceitar uma ordem disponível na bolsa. Qualquer que seja a estratégia que você use, é importante ter as informações necessárias para tomar essa decisão.

Como acessamos o livro de pedidos de uma troca?

Uma forma de acessar o livro de pedidos de uma bolsa é solicitar diretamente essas informações da bolsa. Você pode fazer isso usando CCXT seguindo estes exemplos.

Exemplo CCXT – Par individual

Nosso primeiro exemplo solicitará o livro de ofertas atual para o par de negociação BTC / USDT na bolsa Binance. Ao usar a biblioteca CCXT, só é possível acessar um único par de negociação de cada vez. Isso significa que não seremos capazes de buscar a carteira de ordens inteira em cada par de negociação, mas precisamos puxar sistematicamente a carteira de ordens para cada par individual.

Instale CCXT

Antes de começarmos, vamos instalar a biblioteca Python CCXT.

pip install ccxt

Exemplo

Uma vez instalado, estamos prontos para escrever nosso primeiro script python que irá acessar os dados do livro de pedidos BTC / USDT no Binance.

importar ccxt

# recuperar dados para o par BTC / USDT em Binance

binance = ccxt.binance ()

livro de pedidos = binance.fetch_order_book (‘BTC / USDT’)

Resultados

A solicitação retornará as ordens de compra e venda que estão atualmente disponíveis na bolsa para o par de negociação BTC / USDT.

O primeiro elemento em cada pedido é o preço do pedido em termos da moeda de cotação (neste caso, USDT). O segundo elemento no pedido é a quantidade do pedido na bolsa em termos da moeda base (neste caso, BTC).

{

‘lances’: [

[8724,77, 0,149594],

[8724,11, 2,537818],

[8724,08, 0,030605],

],

‘pergunta’: [

[8725,61, 0,055265],

[8725,7, 0,028131],

[8725,81, 0,116984],

]

}

Exemplo de CCXT – pares agregados

Agora que cobrimos como acessar o livro de ordens para um único par de negociação usando CCXT, queremos expandir nossa abordagem para coletar dados do livro de ordens para cada par de negociação na bolsa.

Infelizmente, coletar essa quantidade de dados é um pouco complicado para o CCXT. Os dados para cada par de mercado devem ser solicitados individualmente à Binance. O envio de todas essas solicitações pode levar até 5 minutos ou mais, pois o Binance tem limites de taxa para a rapidez com que você pode acessar os dados.

importar ccxt

binance = ccxt.binance ()

aggregated_orderbook_data = []

# obter os mercados disponíveis para Binance

binance_markets = binance.load_markets ()

# buscar os livros de pedidos para cada ativo no Binance

# buscar todos esses catálogos de pedidos levará até 5 minutos

para par em binance_markets:

pair_orderbook = binance.fetch_order_book (par)

pair_orderbook [‘símbolo’] = par

aggregated_orderbook_data.append (pair_orderbook)

Resultados

Cada solicitação que enviarmos retornará o lance e os dados de mercado de profundidade para o par de negociação individual. Para fornecer uma maneira conveniente de identificar as carteiras de pedidos, adicionamos uma chave em cada objeto da carteira de pedidos para incluir o símbolo. Dessa forma, não perdemos o controle de quais dados pertencem a qual par de mercado.

O resultado do código de exemplo acima retornará o lance agregado e as ordens de pedido para cada par de negociação disponível na bolsa.

[{

‘símbolo’: ‘BTC / USD’,

‘lances’: [

[8724,77, 0,149594],

[8724,11, 2,537818],

[8724,08, 0,030605],

],

‘pergunta’: [

[8725,61, 0,055265],

[8725,7, 0,028131],

[8725,81, 0,116984],

]

}, {

‘símbolo’: ‘LTC / BTC’,

‘lances’: [

[8724,77, 0,149594],

[8724,11, 2,537818],

[8724,08, 0,030605],

],

‘pergunta’: [

[8725,61, 0,055265],

[8725,7, 0,028131],

[8725,81, 0,116984],

]

}]

Nota: Tenha cuidado ao acessar dados excessivos da troca. A solicitação contínua de dados do livro de ordens pode obstruir o seu serviço de negociação, pois restringirá o número de solicitações que você pode fazer para realizar outras ações na bolsa.

Exemplo de camarão – par individual

Devido às limitações do CCXT, nossa equipe desenvolveu uma alternativa de nível profissional. As APIs Shrimpy não restringem o acesso a dados como CCXT. O exemplo a seguir demonstra como você pode acessar o livro de pedidos de um único ativo usando as APIs de desenvolvedor Shrimpy.

Nota: Para terminar esses exemplos, inscreva-se para uma conta gratuita com o Dados criptográficos Shrimpy & APIs de negociação. Depois de entrar em sua conta Shrimpy, gere novas chaves de API selecionando a opção “Criar chave mestre de API”. Essas chaves serão usadas nos seguintes scripts.

Instale Shrimpy

Antes de pular para o nosso exemplo Shrimpy, vamos começar instalando a Biblioteca Python Shrimpy.

pip install shrimpy-python

Exemplo

Agora que instalamos a biblioteca, podemos escrever nosso primeiro script.

importar camarão

# atribua suas chaves mestras Shrimpy públicas e secretas

# inscreva-se gratuitamente em https://developers.shrimpy.io/

public_key = ‘bea8edb348af226 …’

secret_key = ‘df84c39fb49026dcad9d99 …’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

orderbooks = client.get_orderbooks (

‘bittrex’, # troca

‘XLM’, # base_symbol

‘BTC’, # quote_symbol

100 # limite de quanta profundidade retornar em cada lado (lance & perguntar)

)

Devoluções

As APIs do Shrimpy retornam uma lista bem organizada de dados do livro de pedidos que inclui o símbolo de base, símbolo de cotação, troca e cada um dos pedidos disponíveis na troca precisamente rotulados.

[{

"baseSymbol": "XLM",

"quoteSymbol": "BTC",

"encomendar livros": [{

"intercâmbio": "Bittrex",

"livro de pedidos": {

"pergunta": [

{

"preço": "0,00002585",

"quantidade": "1891.1316431" },

{

"preço": "0,00002594",

"quantidade": "35200" },

],

"lances": [

{

"preço": "0,00002577",

"quantidade": "774.92250177" },

{

"preço": "0,00002576",

"quantidade": "3509.07031022" },

]

}

}]

}]

Exemplo Shrimpy – Pares Agregados

Agora, o Shrimpy realmente brilha quando se trata de agregar dados entre pares de ativos ou mesmo trocas. Os exemplos a seguir destacarão alguns desses casos de uso.

Recupere o livro de pedidos para cada par no Bittrex.

importar camarão

# atribua suas chaves mestras Shrimpy públicas e secretas

# inscreva-se gratuitamente em https://developers.shrimpy.io/

public_key = ‘bea8edb348af226 …’

secret_key = ‘df84c39fb49026dcad9d99 …’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

orderbooks = client.get_orderbooks (

‘bittrex’ # troca

)

Você pode ver rapidamente como a diferença entre este último exemplo e o exemplo Shrimpy anterior, que solicitou apenas dados para um par comercial, é essencialmente a mesma. Tudo o que fizemos foi remover as entradas para moeda de cotação, moeda base e limite. Todo o resto permaneceu exatamente igual e recuperou todos os dados de que precisávamos em uma única solicitação.

Isso nos impede de gastar 5 minutos coletando dados para cada par de negociação individualmente.

Continuando com nosso último exemplo, existem ainda mais maneiras de configurarmos quais dados coletamos das APIs Shrimpy.

Na maioria das vezes, precisamos apenas de um subconjunto dos livros de pedidos disponíveis na troca. Como resultado, podemos querer saber todas as moedas base ou de cotação que se conectam a um ativo específico. Nesses casos, podemos solicitar dados para todos os pares conectados a uma base específica ou moeda de cotação.

Acesse o livro de pedidos para cada par no Bittrex que usa BTC como moeda de cotação.

importar camarão

# atribua suas chaves mestras Shrimpy públicas e secretas

# inscreva-se gratuitamente em https://developers.shrimpy.io/

public_key = ‘bea8edb348af226 …’

secret_key = ‘df84c39fb49026dcad9d99 …’

client = shrimpy.ShrimpyApiClient (public_key, secret_key)

orderbooks = client.get_orderbooks (

‘bittrex’, # troca

Nenhum, # moeda base

‘BTC’ # moeda de cotação

)

Observe como especificamos “Nenhum” para a moeda base. Isso significa que vamos recuperar os livros de ordens de todos os pares de negociação que têm uma moeda de cotação de “BTC”.

Por último, Shrimpy não está restrito apenas a uma única troca. É até possível solicitar dados entre trocas. Isso pode ser feito solicitando pares de negociação em várias bolsas na solicitação.

Um exemplo de solicitação que extrai dados entre as trocas em uma única solicitação.

GET https://dev-api.shrimpy.io/v1/orderbooks?exchange=bittrex,binance,kucoin&baseSymbol = XLM&quoteSymbol = BTC&limite = 10

Observe como especificamos várias trocas. O resultado desta consulta retornará o livro de ordens do par de negociação XLM / BTC em cada uma das 3 bolsas especificadas.

Devoluções

O formato que recebemos é consistente, independentemente de solicitarmos dados do livro de pedidos para um único par de negociação ou vários pares em bolsas.

[{

"baseSymbol": "XLM",

"quoteSymbol": "BTC",

"encomendar livros": [{

"intercâmbio": "Bittrex",

"livro de pedidos": {

"pergunta": [

{

"preço": "0,00002585",

"quantidade": "1891.1316431" },

{

"preço": "0,00002594",

"quantidade": "35200" },

],

"lances": [

{

"preço": "0,00002577",

"quantidade": "774.92250177" },

{

"preço": "0,00002576",

"quantidade": "3509.07031022" },

]

}

}]

}, {

"baseSymbol": "XRP",

"quoteSymbol": "BTC",

"encomendar livros": [{

"intercâmbio": "Bittrex",

"livro de pedidos": {

"pergunta": [

{

"preço": "0,00001485",

"quantidade": "2891.1316431" },

{

"preço": "0,00001494",

"quantidade": "45200" },

],

"lances": [

{

"preço": "0,00001477",

"quantidade": "874.92250177" },

{

"preço": "0,00001476",

"quantidade": "4509.07031022" },

]

}

}]

},

]

Nota: Shrimpy requer apenas uma única solicitação para acessar instantaneamente os dados do livro de pedidos em todas as principais bolsas. Isso reduz o número de solicitações que você precisa enviar para as bolsas e pode melhorar drasticamente o acesso aos dados.

Experimente o Comércio de camarões & APIs de dados hoje. É a maneira mais fácil de começar a coletar dados em todas as principais bolsas. Colete dados históricos do mercado, acesse websockets em tempo real, execute estratégias de negociação avançadas e gerencie um número ilimitado de usuários.

Não se esqueça de nos seguir no Twitter e o Facebook para atualizações e faça perguntas à nossa incrível comunidade ativa no Telegrama.

A equipe Shrimpy

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