Obtenção de dados criptográficos históricos e em tempo real com programação web muito simples PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Obtenção de dados criptográficos históricos e em tempo real com programação web muito simples

Luciano Abriata

Enquanto aprendia sobre criptomoedas, eu precisava desesperadamente de dados que pudesse manipular para fazer meus próprios gráficos e análises. Aqui eu mostro como obter facilmente dados criptográficos históricos e em tempo real diretamente em seu navegador da web com habilidades mínimas de programação. Código-fonte, links e alguns gráficos e análises básicas incluídos.

Isenção de responsabilidade: você não encontrará nenhum conselho financeirocestou aqui e não sou especialista em criptomoeda, criptoarte, NFTs, suas negociações, etc. Eu apenas dou código HTML + JavaScript gratuito para obter dados por meio de chamadas de API para CryptoCompare.com; e exibo alguns gráficos derivados desses dados com algumas de minhas próprias opiniões subjetivas.

Recentemente, me interessei por criptomoedas, criptoarte, NFTs, etc. Naturalmente, como um cientista que trabalha com dados o tempo todo, uma das primeiras coisas que quis fazer foi brincar sozinho com dados de criptomoedas. Vi tramas por toda parte em sites, notícias e aplicativos; mas como eu poderia obter dados reais para brincar com eles e fazer minhas próprias tramas e investigações? E principalmente, como eu poderia ter certeza de que ele estava atualizado toda vez que eu o solicitasse?

Especificamente, a primeira coisa que eu queria colocar em prática eram as taxas de câmbio entre várias moedas criptográficas e Fiat. Descobri que o site CryptoCompare.com oferece uma API bacana, gratuita para pequenos números de chamadas, que permite acesso programático aos dados de sua base. Também encontrei on-line vários trechos de código JavaScript que juntei em dois aplicativos da web muito simples: um para obter atualizações das taxas de câmbio BTC-USD a cada 10 segundos; e outro para recuperar taxas de câmbio históricas BTC-USD a cada minuto, hora ou dia ao longo de toda a história do Bitcoin. Fique à vontade para copiar o código que apresento e adaptá-lo aos seus próprios objetivos.

Aplicativo Web 1: obtenha qualquer troca em tempo real

Claro, você poderia abrir qualquer site ou aplicativo de criptomoeda e obter esse número de lá, mas suponha que você queira tê-lo sempre à mão e atualizado automaticamente, ou talvez queira que ele seja alimentado automaticamente em um sistema de cálculo que você está desenvolvendo.

O simples acesso a este link na API do CryptoCompare retorna a taxa de câmbio do Bitcoin (BTC) em USD no momento em que você faz a ligação:

https://min-api.cryptocompare.com/data/price?fsym=BTC&tsyms=USD

Da mesma forma, este outro exemplo fornece a taxa de câmbio de Ethereum (ETH) em EUR no momento da chamada:

https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=EUR

Fácil, não é? Bem, com base nisso, o código a seguir retorna qualquer conversão que você solicitar (neste exemplo BTC em USD) a cada 10 segundos, em uma pequena página da web que você pode tornar privada para seguir suas taxas favoritas em seu próprio site:

Você pode copiar e colar esse código em um arquivo .html e carregá-lo com seu navegador para vê-lo em execução. Ou se você estiver com preguiça, basta abrir este exemplo de demonstração no meu site:

https://lucianoabriata.altervista.org/tests/cryptogames/getBTC-realtime.html

Você poderia facilmente desenvolver isso em um aplicativo da web que monitorasse constantemente quaisquer taxas de câmbio, até mesmo armazená-lo em um gráfico para visualização em movimento ou em uma variável para download.

Aplicativo Web 2: obtenha dados históricos

Mas e se você quiser obter dados antes de a página da web ser iniciada? Bem, você poderia acessar sites especializados e baixar esses dados; no entanto, descobri que sites fáceis de usar fornecem apenas dados parciais. Por exemplo, os dados BTC no Yahoo Finances começam em 17 de setembro de 2014 e seus registros são mensais, semanais ou diários, mas não dizem por hora ou por minuto. Além disso, se você está desenvolvendo um sistema que precisa ser atualizado automaticamente, o download manual de dados está fora de questão… você precisa de acesso programático.

Felizmente, a API do CryptoCompare inclui maneiras de recuperar dados históricos cronometrados em minutos, horas ou dias. Não apenas taxas de câmbio, mas também outras métricas, como volumes de câmbio. Para saber mais sobre API veja sua documentação e leia o seguinte.

Uma chamada de API como neste exemplo fornecerá dados das últimas 20 horas, hora a hora:

https://min-api.cryptocompare.com/data/v2/histohour?fsym=ETH&tsym=USD&limit=20&toTs=-1&api_key=YOURKEYHERE

A saída pode ser analisada no formato JSON. Se parece com isso:

Pontos a serem observados na URL da chamada da API (que usaremos a seguir dentro de uma função javascript fetch()):

  1. paraTs=-1 significa que você deseja dados até o momento em que a chamada é executada.
  2. limitar é o número de linhas que você deseja.
  3. Você precisa fornecer uma chave de API.

Com a chave API gratuita (obtenha-a no página de documentação; e sim, você pode comprar chaves com recursos mais avançados) você está limitado no número total de chamadas que pode fazer, e cada chamada fornecerá apenas até 2000 entradas. Então, por exemplo, se você solicitar, digamos, as taxas de câmbio horárias do BTC em dólares americanos, o máximo que você obterá será 2000 minutos atrasados ​​em relação ao horário solicitado, o que significa cerca de 33 horas, ou seja, pouco mais de um dia. Ou se você solicitar dados por hora, obterá no máximo dados de 83.33 dias consecutivos, pouco menos de 3 meses. No entanto, isso não é realmente um grande problema, porque você pode repetir a API de trás para frente quantas vezes forem necessárias para cobrir o intervalo de tempo de seu interesse. Por exemplo, para obter dados diários do BTC de volta até suas origens, você precisa pouco mais de 4000 pontos (dias) em agosto de 2021, quando esta história foi escrita. Isso significa que você precisa de apenas 3 chamadas consecutivas. E se você quiser dados horários para o mesmo período, você está atrás de cerca de 98400 pontos, que são cobertos por 50 ligações consecutivas.

Deixe-me mostrar este aplicativo da web, com o qual você pode solicitar dados históricos diários para qualquer taxa de câmbio em relação ao dólar americano:

O código pode parecer um pouco complicado, mas poderia ser muito mais simples. O problema aqui é que criei uma interface completa para permitir que o usuário escolha em qual intervalo de tempo obter os dados e, em seguida, concatene os resultados das chamadas subsequentes em uma caixa de texto para facilitar a cópia:

Observe que você deve chamar a API duas vezes: uma dentro da função que chama uma lista de entradas de dados até o momento da execução (getBtcData, executada quando o usuário clica em “Obter dados mais recentes” e também automaticamente no carregamento) e outra para a função que retorna dados antes de um determinado tempo (getBtcDataPrevious). Observe também que as funções atualizam automaticamente os horários De e Até, que são exibidos em formato serial bruto e também convertidos em formato legível pela função serialDateToNiceDate.

Depois de carregar a página ou clicar em “Obter dados mais recentes”, a caixa de texto à direita é preenchida com as últimas 2000 entradas por hora e os horários De e Até são atualizados. Posteriormente, você pode solicitar 2000 blocos de linhas de dados dos períodos anteriores clicando em “Obter período anterior”. As linhas recebidas serão adicionadas à caixa de texto, mantendo a ordem histórica.

Olhando para alguns dados históricos

Como eu disse na introdução, eu estava muito ansioso para obter dados sobre a evolução temporal das exchanges BTC:USD desde a criação do Bitcoin. Com uma pequena edição no aplicativo web mostrado acima (simplesmente alterando “histohour” por “histoday”), você obtém um aplicativo que retorna registros diários. Então, com três cliques em “Obter período anterior” você obtém todos os dados diários do Bitcoin, desde julho de 2010 até agora.

Vamos fazer alguns gráficos desses dados. Primeiro, simplesmente a taxa de câmbio ao longo do tempo, um gráfico que você vê na maioria dos aplicativos, sites e notícias:

O gráfico mostra cinco tempos de atividade principais: um por volta do final de 2013, um mais forte por volta do final de 2017 – início de 2018, seguido por outro em 2019, e depois um mais forte durante o primeiro semestre de 2021, seguido por um novo aumento rápido acontecendo agora.

É interessante como os máximos observados nesse gráfico correspondem aproximadamente ao interesse ao longo do tempo medido pelo Google Trends:

Outro gráfico de nossos dados de exchange BTC:USD recuperados, mais interessante do que o que fizemos acima, é este onde o preço é tratado na forma logarítmica (aqui log na base 10):

Esta transformação de log identifica as fases ascendentes com mais clareza. Verifique se as alturas relativas dos picos da base ao topo são bastante diferentes e parecem estar diminuindo lentamente: o primeiro pico principal acarreta um ganho de aproximadamente 1.5 ordens de grandeza (cerca de 30X); o segundo, terceiro e quarto têm cerca de 1 ordem de grandeza (cerca de 10X), e o último tem cerca de 0.5 ordens de grandeza (cerca de 3.2X). Assim, apesar dos máximos históricos terem ficado muito elevados, as probabilidades de lucros enormes estão a diminuir gradualmente para as pessoas que investem mais tarde. Embora seja tarde demais para ficar rico com Bitcoin, a tendência geral na taxa de câmbio BTC:USD parece indicar que ela ainda pode crescer por algum tempo (não estou dizendo para você comprar aqui, apenas extrapolando ingenuamente a partir do gráfico):

Esses gráficos de log contêm muito mais dados, que outros analisaram nos seguintes artigos do blog. Não sendo um especialista, não posso julgá-los, mas certamente são muito interessantes:

Conclusão e leitura adicional selecionada

Espero que você se divirta usando esses e outros scripts derivados para obter e brincar com dados criptográficos. Todo esse campo é muito interessante, e ao fazer minha pesquisa sobre criptomoedas nos últimos dois anos, li toneladas de artigos, histórias e postagens, dos quais os destilei para você continuar a partir daqui, principalmente do Medium e suas publicações associadas:

Fonte: https://towardsdatascience.com/obtaining-historical-and-real-time-crypto-data-with-very-simple-web-programming-7b481f153630?source=rss——-8—————–criptomoeda

Carimbo de hora:

Mais de Médio