PDA

View Full Version : Construindo um painel de criptomoeda usando Plotly e Binance API



socrates980
04-08-2021, 07:56 PM
9096

A partir de agora, de acordo com a CoinMarketCap, o mercado global de criptomoedas vale mais de US $ 1,5 trilhão. A aprovação recente de alguns bancos e empresas de cartão de crédito para incluir criptomoedas como um de seus produtos financeiros indica um futuro brilhante para o mercado de criptografia. Nos últimos anos, mais pessoas começaram a negociar criptomoedas e há muitas bolsas em todo o mundo que oferecem suporte a diferentes criptomoedas. Neste artigo, vamos nos concentrar na bolsa Binance, que é a bolsa número um do mundo hoje. Suporta quase todas as criptomoedas e está disponível em muitos países.
Neste artigo, discutiremos como acessar dados da API Binance e criar um painel com o Plotly.
Aqui está o que vamos cobrir:
• Como configurar a API Binance
• Como obter dados usando a API Binance
• Construindo um painel com Plotly
1. Como configurar a API Binance
Binance fornece dois tipos de acesso à API: 1) API Actual Binance e 2) API Test Binance.
1.1 Configurando a API Binance real
A API real fornece acesso direto à sua conta real, e todas as negociações feitas com esta API serão refletidas em sua conta real. Isso significa que precisamos ter cuidado ao usar essa API.

9097


Após o registro, você será solicitado (ou pode fazer isso nas configurações de segurança) para configurar a autenticação de dois fatores para segurança adicional. Vou recomendar a escolha do Google Authenticator.
Assim que o 2FA estiver configurado, você pode ir para a guia de gerenciamento de API em configurações. Você será solicitado a fornecer um rótulo para suas chaves de API (isso será útil quando você tiver várias chaves associadas a uma única conta).


9098


Clique em criar API após fornecer um rótulo para suas chaves de API. Será solicitado que você se autentique mais uma vez e, então, poderá ver sua “Chave API” e “Chave secreta”. Esta é a única vez que você o verá, então copie suas chaves para um lugar seguro. Por padrão, as chaves terão o seguinte acesso, que pode ser alterado.

9099

Estaremos usando tanto a API real quanto as chaves da API de teste para entender como trabalhar com elas. Para isso, não queremos bagunçar nossa conta real, então vamos alterar a permissão das chaves de API reais para somente leitura.

9100

Estaremos salvando nossas chaves de API reais no arquivo secret.cfg conforme mencionado abaixo (lembre-se, nunca compartilhe ou publique seu arquivo secret.cfg)
1.2 Configurando a API Binance de teste
A API Test Binance fornece a você a mesma sensação de interação com a API real. Eu recomendaria começar com isso (para negociação) até que você tenha certeza de que seu aplicativo funciona bem.


Após fazer o login, clique em “Gerar chave HMAC_SHA256” e você será novamente solicitado a fornecer um rótulo para as chaves. Depois de fornecer o rótulo, clique em gerar e você poderá ver suas chaves de API. Copie-os para algum lugar seguro. Além disso, leia todos os detalhes na página principal sobre a API de teste.
Agora, modificaremos o arquivo secret. cfg para incluir chaves de API de teste, conforme mencionado abaixo
Configuramos com êxito as chaves de API reais e de teste e as salvamos no arquivo secret. cfg. Na próxima seção, vamos nos concentrar em obter dados usando essas chaves de API.
2. Como obter dados usando a API Binance
2.1 Instale a biblioteca python-binance
Binance não fornece uma biblioteca python para interagir com a API, mas há uma biblioteca de terceiros muito famosa chamada python-binance, que usaremos para interagir com a API.
Para instalar a biblioteca python-binance
$ pip install python-binance
2.2 Obtendo informações da conta
Por padrão, você obterá algum saldo em sua conta de teste na forma de diferentes criptomoedas e usaremos a API de teste para esta seção (já que não quero compartilhar as informações da minha conta). Além disso, python-binance não tem acesso à API de teste, então precisamos alterar o URL do endpoint.
Aqui está o código para obter as informações da conta de teste

Como você pode ver na saída acima, ele exibe coisas importantes como accountType, saldos, permissões, etc.
Agora, vamos obter o equilíbrio do ETH.


Você pode fazer muitas coisas com a biblioteca python-binance
2.3 Obtendo dados históricos
De acordo com minha observação, a API de teste não fornece dados históricos reais; em vez disso, ele fornece dados fictícios. Portanto, para acessar dados reais, usaremos a API real e as chaves reais da API.
Obtendo o preço ETH da primeira data disponível (no Binance) até os dias atuais


A saída acima representa os seguintes parâmetros, conforme mencionado no documento da API Binance


Converter a saída em um quadro de dados e salvá-la como um arquivo CSV

2.4 Obtendo dados em tempo real
Podemos usar o Binance WebSocket para transmitir dados em tempo real. É assim que você faz


Agora, para interromper o streaming de dados e fechar o WebSocket
Parece que descobrimos diferentes maneiras de obter dados e informações. Existem muitas outras coisas que você pode fazer com a biblioteca python-binance e a API Binance. Eu encorajaria você a dar uma olhada nisso e nisso. Agora podemos avançar para construir um painel do Plotly na próxima seção.
3. Construindo um painel com Plotly
Nesta seção, construiremos um painel com o Plotly que rastreará nosso portfólio da conta de teste em tempo real e alterará o valor total da conta com base nos dados de streaming ao vivo.
Veja como ficará nosso painel final (não se preocupe com a estética, pois você pode alterá-lo mais tarde)


GIF: Painel Final
Como você pode ver, incluímos os seguintes recursos no painel.
• Indicador - Valor total da carteira em USDT
• Indicador - Valor total da carteira em BTC
• Indicador - conversão BNB / USDT
• Gráfico de pizza - Distribuição de portfólio (em USDT)
• Gráfico de barras - distribuição de tokens
Vejamos o código.
Primeiro, importaremos todas as bibliotecas necessárias.
Em segundo lugar, leremos nossas chaves, estabeleceremos a conexão e obteremos as informações da conta.
Terceiro, definiremos algumas funções para cuidar da transmissão de dados e calcular métricas com base em dados ativos.
Em seguida, começaremos a transmitir dados.
Quinto, vamos definir nosso layout de painel, gráficos e hospedá-lo


É isso, e você deve ser capaz de rastrear o portfólio de sua conta de teste. Você pode facilmente configurá-lo para uma conta real usando chaves reais sem alterar o URL do terminal.
Isso nos leva ao final deste artigo. Você pode acessar todos os códigos neste repositório GitHub. Recentemente, comecei a escrever uma série sobre Negociação Algorítmica com Python e Aprendizado de Máquina. Você pode encontrar o primeiro artigo abaixo.