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.