Finanças Quantitativas: Como coletar dados de Criptomoedas no R

As criptomoedas tem tomado grande espaço dentro do mercado financeiro, tanto como forma de investimento, quanto em discussões sobre sua usabilidade como moeda. Apesar de todas essas questões, é um fato que as criptomoedas inovaram na forma de transacionar moedas, utilizando a tecnologia de blockchain e de criptografia. Vamos explicar neste post como podemos coletar seus preços no R.

As criptomoedas, mais conhecidas como moedas digitais, são ativos descentralizados, ou seja, não possuem o controle de nenhuma autoridade monetária. Em sua grande maioria, como não há emissão de novas moedas por algum órgão, possuem oferta limitada, sendo seu preço medido substancialmente pela demanda.

Além do advento de diferente tipos de moedas digitais, a consolidação e também a aceitação de sua tecnologia pela população mundial, sua demanda tem aumentado substancialmente na última década, elevando os preços de diversas moedas digitais. Iremos visualizar essa mudança ao longo do tempo utilizando a linguagem R.

A primeira forma de realizar a coleta dos preços diários das criptomoedas é através do pacote {quantmod}, utilizando como fonte o Yahoo Finance. Os tickers das criptomoedas podem ser encontradas dentro do site do Yahoo Finance.

Aqui utilizaremos como exemplo o Bitcoin (BTC-USD), Ethereum (ETH-USD) e Dogecoin (DOGE-USD).

library(quantmod)
library(tidyverse)


[code lang="r"]
tickers <- c("BTC-USD", "ETH-USD", "DOGE-USD")

getSymbols(Symbols = tickers, # Os tickers dos ativos a serem coletados
           src = "yahoo", # A fonte da coleta dos dados
           auto.assign = TRUE, # Permitir que faça a auto atribuição
           warnings = FALSE
           )

A função getSymbols() permite que realizemos a coleta de dados direto do Yahoo Finance. É feito também uma auto atribuição dos dados coletados a objetos com o nomes dos tickers na forma OHLCVA (Open, High, Low, Close, Volume e Adjusted).

Podemos por fim realizar a visualização dos dados coletados. O próprio pacote fornece meios simplificados para gerar os gráficos.

chartSeries(`BTC-USD`)

Podemos também mudar as cores dos gráficos.

chartSeries(`ETH-USD`,
            theme = chartTheme('white',
                               up.col='blue',
                               dn.col='red')
            )

chartSeries(`DOGE-USD`,
            theme = chartTheme('white',
                               up.col='blue',
                               dn.col='red'),
            subset = "2021") # Filtra o período de tempo

Outro pacote que vale a menção é o {coinmarketcapr}, que nos dá informações além dos preços das criptomoedas, porém, com um limite de uso e de informações que podem ser coletadas através do plano de básico da API. Portanto, não iremos fazer sua avaliação aqui, somente deixando para quem queira se aprofundar neste campo.

________________________
(*) Para entender mais sobre Mercado Financeiro e aprender como realizar a coleta, tratamento e visualização de dados financeiros, confira nosso curso de R para o Mercado Financeiro.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Sumarizando divulgações trimestrais de empresas usando IA no Python

Neste exercício, iremos utilizar a inteligência artificial no Python para analisar e sumarizar divulgações trimestrais de empresas. Focaremos no uso de ferramentas como Gemini e técnicas de processamento de linguagem natural para extrair informações de documentos PDF relacionados aos relatórios financeiros das empresas.

Prevendo efeitos de mudanças de preços em produtos usando TimeGPT

O exercício explora como prever os efeitos de mudanças nos preços de produtos utilizando o TimeGPT, uma ferramenta de previsão de séries temporais no Python. Usando elasticidade-preço, é possível medir a resposta da demanda a variações de preço. O exemplo prático utiliza dados de vendas de abacates nos EUA.

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.