Skip to content

cdm2021/Analise_Mercado_Crypto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

💰 Análise do mercado de crypto 💰

📋 Recolha de dados e API's usados📋

Os dados foram recolhidos através das API's fornecidas dos websites Coingecko e Yahoo! Finance onde foram feitos “requests” de dados sobre o preço, volume e "market cap" de diversas cryptomoedas. Foram feitos mais "requests" de dados históricos das moedas Bitcoin, Ethereum e Cardano. Para o caso do Bitcoin a base de dados pedida foi entre 2013-04-28 até 2021. Já no caso do Ethereum, por ser uma moeda mais recente, a base de dados pedida apenas abrange dados entre 2015-08-07 até 2021. E para o Cardano, como a moeda mais recente destas 3, abrange desde 2017-10-18 até 2021. Todos foram fornecidos através do formato .json.

A Coingecko é uma plataforma que fornece uma análise fundamental do mercado de criptomoedas. Além de acompanhar preços, volume e capitalização de mercado, a CoinGecko acompanha o crescimento da comunidade, desenvolvimento do código-fonte aberto, principais eventos e métricas em cadeia.

Os csv's foram criados com os dataframes fornecidos pelas API's com o Jupyter Notebook.

Yahoo! Finance é uma propriedade de mídia que faz parte do Yahoo! rede de Ele fornece notícias financeiras, dados e comentários, incluindo cotações de ações, press releases, relatórios financeiros e conteúdo original. Ele também oferece algumas ferramentas online para gerenciamento de finanças pessoais.

Limpámos alguns dados que não eram relevantes para este projeto de forma a conseguirmos uma base de dados mais limpa e fácil de trabalhar no nosso objetivo.

Existe um dado, proveniente da base de dados fornecida pela Coingecko, por volta de 2017 na coluna de "Market Cap" que está alterado com o dado do dia seguinte por nao existir qualquer dado para aquele dia em relação ao "market cap". Para contornar este problema decidimos encontrar o index do dia em que se encontra o erro nos dados e substituir por 0.

Convertemos o tempo epoch em tempo ISO 8601 para ser percetível a qualquer humano ler a data.

🤔 Contexto 🤔

Com o crescente interesse em criptoativos, durante o ano de 2020, decidimos realizar o nosso trabalho de forma a explorar alguns dados estatisticos relacionados com o tema. A maioria dos sites que faz o reportório deste tipo de dados disponibiliza-os de uma forma geral e oferece pouca organização destas informações, desta forma também ficam mais facilmente inspeccionáveis/manipuláveis. Sem este tipo de trabalho tornam-se dificultadas as tarefas de análise, modelação e visualização por parte da comunidade de criptomoedas.

Como as API estão disponiveis na nuvem destes websites, então não é necessário descarregar-las e fica fácil para qualquer utilizador que quiser aceder a estes dados relativamente aos seus investimentos nesta área a partir do github.

A estrutura base deste ficheiro, desenhada para fácil manipulação em Excel/Python/R, não mudará, podendo a comunidade analítica considerá-lo um alvo imutável (em termos de localização e estrutura) para, por exemplo, alimentar plataformas de visualização/modelação. De notar que, mediante no final do ano 2021 com os relatórios da situação que irão decorrer, poderão ser adicionadas novas colunas desde que fornecidas pelo mesmo website e tratadas da mesma forma, mantendo-se claro a retrocompatibilidade. Fontes adicionais de dados poderão também então ser adicionadas.

Este projeto pode ser considerado ético e público assim como todos os dados do sistema blockchain são públicos, não é necessário recorrer a qualquer dado considerado privado.

Porque todas as boas decisões começam com bons dados.

🧱 Estrutura 🧱

Análise de mercado de cryptomoedas em relação a MarketShare.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par BTC-USD.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par ETH-USD.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par ADA-USD.

Volatilidade BTC_ETH_ADA Yahoo.

Efficient Frontier - Simulação Monte Carlo.

🚀 Funções das aplicações 🚀

Aviso Legal: Este trabalho nao tem como intuito de dar aconcelhamento financeiro, tem apenas o intuito de verificar dados de ação de preço ao longo dos anos.

Análise de mercado de cryptomoedas em relação a MarketShare - Representação gráfica e atualizada de partilha de mercado entre as 100 maiores Criptomoedas em 2020. O uso de "others" serve para simplificar o gráfico e obter uma melhor visualização sobre as moedas que com maior valor total de mercado.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par BTC-USD - Preço e Volume de negócio da Bitcoin histórico desde 28/04/2013 até 28/05/2021. O ROI foi calculado a partir do dia 1 de cada mês e acabando 30/60/90 dias depois. O cálculo e representação visual do ROI feito no nosso trabalho é uma ferramenta que pode ajudar em futuros investimentos, tendo em conta a ação de preço nos anos anteriores.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par ETH-USD - Preço e Volume de negócio da Ethereum histórico desde 07/08/2015 até 28/05/2021. O ROI foi calculado a partir do dia 1 de cada mês e acabando 30/60/90 dias depois. O cálculo e representação visual do ROI feito no nosso trabalho é uma ferramenta que pode ajudar em futuros investimentos, tendo em conta a ação de preço nos anos anteriores.

Preço, Volume e ROI Anual, de 30, 60 e 90 dias do par ADA-USD - Preço e Volume de negócio do Cardano histórico desde 18/10/2017 até 28/05/2021. O ROI foi calculado a partir do dia 1 de cada mês e acabando 30/60/90 dias depois. O cálculo e representação visual do ROI feito no nosso trabalho é uma ferramenta que pode ajudar em futuros investimentos, tendo em conta a ação de preço nos anos anteriores.

Volatilidade BTC_ETH_ADA Yahoo - A Volatilidade pode ser vista como uma linha de média da mudança do preço. A volatilidade é uma boa representação visual do risco de uma moeda.

Efficient Frontier - Simulação Monte Carlo - A "Efficient Frontier" é uma ferramenta visual que toma em conta o "Sharpe Ratio" de um determinado portfólio. Neste caso apenas foi calculados portfólios com as moedas BTC e ETH por nao haver dados históricos suficientes da moeda ADA/Cardano. A Simulação Monte Carlo é qualquer simulação que para a obtenção dos resultados faça o uso de dados aleatórios. A Simulação Monte Carlo foi utilizada na criação de potenciais portfólios, assim podemos criar e testar a quantidade de portfólios que achar-mos necessários para as nossas conlusões.

📔 Dicionário dos dados 📔

YahooFinance_bitcoin_price_volume_20140916_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Date Data DD-MM-YYYY h-m-s-ms
High é o preço máximo durante um certo dia >=0
Low é o preço mínimo durante um certo dia >=0
Open é o preço da primeira trade do dia >=0
Close é o preço da última trade do dia >=0
Volume Total de moedas trocadas num determinado período de tempo >=0
Adj Close corrige o preço de "Close" de uma trade para refletir o valor dessa ação após a contabilização de quaisquer ações corporativas >=0

YahooFinance_cardano_price_volume_20170930_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Date Data DD-MM-YYYY h-m-s-ms
High é o preço máximo durante um certo dia >=0
Low é o preço mínimo durante um certo dia >=0
Open é o preço da primeira trade do dia >=0
Close é o preço da última trade do dia >=0
Volume Total de moedas trocadas num determinado período de tempo >=0
Adj Close corrige o preço de "Close" de uma trade para refletir o valor dessa ação após a contabilização de quaisquer ações corporativas >=0

YahooFinance_ethereum_price_volume_20150806_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Date Data DD-MM-YYYY h-m-s-ms
High é o preço máximo durante um certo dia >=0
Low é o preço mínimo durante um certo dia >=0
Open é o preço da primeira trade do dia >=0
Close é o preço da última trade do dia >=0
Volume Total de moedas trocadas num determinado período de tempo >=0
Adj Close corrige o preço de "Close" de uma trade para refletir o valor dessa ação após a contabilização de quaisquer ações corporativas >=0

bitcoin_price_marketcap_volume_20130428_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
data Data DD-MM-YYYY h-m-s-ms
BTCUSD Valor da Bitcoin em dólares >=0
marketcap Valor total de mercado de uma moeda >=0
volume Total de moedas trocadas num determinado período de tempo >=0

bitcoin_roi_30_dias_mensal_2014-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Ano Ano YYYY
Meses Meses do Ano Mes
ROI 30 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 30 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 30 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 30 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 30 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 30 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 30 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 30 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

bitcoin_roi_60_dias_mensal_2014-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 60 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 60 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 60 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 60 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 60 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 60 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 60 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 60 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

bitcoin_roi_90_dias_mensal_2014-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 90 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 90 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 90 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 90 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 90 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 90 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 90 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 90 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

bitcoin_roi_anual_2014-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Ano Ano YYYY
ROI ROI médio de cada ano 0 <= x <= 100, com valor percentual
Preço Inicial preço inicial no inicio de cada ano 0 <= x <= 100, com valor percentual

cardano_price_marketcap_volume_20171018_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Data Data dd-mm-yyyy h-m-s-ms
ADAUSD Valor da Cardano em dólares >=0
marketcap Valor total de mercado de uma moeda >=0
volume Total de moedas trocadas num determinado período de tempo >=0

cardano_roi_30_dias_mensal_2018-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 30 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 30 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 30 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 30 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

cardano_roi_60_dias_mensal_2018-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 60 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 60 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 60 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 60 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

cardano_roi_90_dias_mensal_2018-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 90 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 90 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 90 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 90 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

cardano_roi_anual_2018-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Ano Ano YYYY
ROI ROI médio de cada ano 0 <= x <= 100, com valor percentual
Preço Inicial preço inicial no inicio de cada ano 0 <= x <= 100, com valor percentual

ethereum_price_marketcap_volume_20150807_20210528.csv

Nome do ficheiro Função e contéudo Possiveis Valores
data Data DD-MM-YYYY h-m-s-ms
ETHUSD Valor da Ethereum em dólares >=0
marketcap Valor total de mercado de uma moeda >=0
volume Total de moedas trocadas num determinado período de tempo >=0

ethereum_roi_30_dias_mensal_2016-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Ano Ano YYYY
Meses Meses do Ano Mes
ROI 30 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 30 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 30 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 30 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 30 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 30 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 30 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 30 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 30 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

ethereum_roi_60_dias_mensal_2016-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 60 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 60 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 60 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 60 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 60 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 60 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 60 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 60 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 60 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

ethereum_roi_90_dias_mensal_2016-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Meses Meses do Ano Mes
ROI 90 Dias 2014 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2014 0 <= x <= 100, com valor percentual
ROI 90 Dias 2015 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2015 0 <= x <= 100, com valor percentual
ROI 90 Dias 2016 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2016 0 <= x <= 100, com valor percentual
ROI 90 Dias 2017 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2017 0 <= x <= 100, com valor percentual
ROI 90 Dias 2018 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2018 0 <= x <= 100, com valor percentual
ROI 90 Dias 2019 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2019 0 <= x <= 100, com valor percentual
ROI 90 Dias 2020 ROI tendo em conta a data de investimento inicial o dia 1 de cada mês e a venda do mesmo 90 dias depois no ano 2020 0 <= x <= 100, com valor percentual
ROI 90 Dias Médio Roi médio 0 <= x <= 100, com valor percentual

ethereum_roi_anual_2016-2020.csv

Nome do ficheiro Função e contéudo Possiveis Valores
Ano Ano YYYY
ROI ROI médio de cada ano 0 <= x <= 100, com valor percentual
Preço Inicial preço inicial no inicio de cada ano 0 <= x <= 100, com valor percentual

💡 Problemas, inconsistências e melhorias 💡

Alguns problemas que necessitaram de atenção foi principalmente alguns dados que continham informação inútil (para este trabalho), a necessidade de conversão das datas em epoch e a ausência de alguns dados em certos dias de 2017 nos dados fornecidos pela API da Coingecko.

📚 Bibliografia/Webgrafia 📚

Este trabalho foi inspirado no canal do youtube Benjamin Cowen, nos videos ele analista ativos com o uso dos dados provenientes das blockchains e exchanges. Apesar de ele nao falar como o faz, a ideia deste trabalho vem dos videos do mesmo. Em relação a formulas usadas:

-> Para o ROI usámos uma simples formula para o calculo de retorno simples.

-> Para o "Average True Range" foi usado uma formula presente nesta página da Investopedia

-> Para a Simlação Monte Carlo foi baseado na definição presente na Wikipédia

-> Para o cálculo de retorno esperado foi usado um formula presente nesta página da Finance Training Course

About

Este repositório foi criado com o objetivo de analisar o mercado de criptomoedas utilizando dados históricos de preço, volume, valor de mercado, etc

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published