# CryptoPortfolio pequena aplicação para ir acompanhando a evolução de um portfolio de activos de criptomoedas "historico_preco.csv" -> ficheiro CSV com dados historicos diarizados de um activo. data,moeda,simbolo,preco_abertura,preco_maximo,preco_minimo,preco_fecho - data a que se referem os dados. formato: dd-mm-aaaa - nome do activo (ex: bitcoin) - simbolo do activo (ex: btc) - preco de abertura do activo para esse dia (em EUR) - preco máximo atingido pelo activo nesse dia (em EUR) - preco minimo atingido pelo activo nesse dia (em EUR) - preco de fecho do activo nesse dia (em EUR) "portfolio.csv" - ficheiro CSV com informação sobre os movimentos de um activo. data,moeda,tipo_movimento,quantidade,preco_movimento - data a que se refere o movimento - activo a que se refere o movimento - tipo do movimento ("compra", "venda") - quantidade do activo a que se refere o movimento - preco a que foi efectuado o movimento (preco activo * quantidade comprada) exemplo: 02-03-2024,bitcoin,compra,0.05,2978.024 este exemplo indica-nos que no dia 02-03-2024 foi comprado 0.05BTC com um custo total de 2978.024EUR de notar que o preco do movimento é o valor pago por 0.05BTC, não o preco de mercado de 1un de BTC nesta data. podemos calcular qual o preco de compra por unidade de BTC deste movimento simplesmente: / = 59560.48EUR consultando na coingecko o preco de mercado de bitcoin à data de 02-03-2024 (cerca de 57560.483EUR), vemos que foi pago um premium de: ( ( 59560.48 / 57560.483 ) - 1 ) * 100 = 3.47% ## Documentação API https://docs.coingecko.com/reference/introduction API_KEY = "CG-K5RS5VXsdFDip2UvY3z8VjQP" ## Obter preço de fecho dos ultimos 365 dias https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=eur&days=365&interval=daily * 365 dias é o maximo que podemos obter com demo API_KEY da CoinGecko (as of May '24) ## Obter OHLC dos ultimos 2 dias https://api.coingecko.com/api/v3/coins/bitcoin/ohlc?vs_currency=eur&days=365&precision=3 ## Sidequest - criação de wrapper para a API Coingecko sim sim, já existe uma (muito bem feita, por sinal!) que pode ser descarregada aqui: https://github.com/khooihzhz/coingecko-python esta é a minha tentativa! :D ### endpoints Public API V3 - **ping** > ✅ check api server status - **simple** > ✅ coin price by ids > ✅ coin price by token addresses > ✅ supported currencies list - **coins** > ✅ coins list (id map) > ❌⬛ coins list with market data > ❌⬛ coin data by id > ❌⬛ coin tickers by id > ❌⬛ coin historical data by id > ❌⬛ coin historical chart data by id > ❌⬛ coin historical chart data within time range by id > ❌⬛ coin ohlc chart by id - **contract** > ❌⬛ coin data by token address > ❌⬛ coin historical chart data by token address > ❌⬛ coin historical chart data within time range by token address - **asset platforms** > ❌⬛ assets platforms list (id map) - **categories** > ❌⬛ coins categories list (id map) > ❌⬛ coins categories list with market data - **exchanges** > ❌⬛ exchanges list with data > ❌⬛ exchanges list (id map) > ❌⬛ exchange data by id > ❌⬛ exchange tickers by id > ❌⬛ exchange volume chart by id - **derivatives** > ❌⬛ derivatives tickers list > ❌⬛ derivatives exchange list with data > ❌⬛ derivatives exchange data by id > ❌⬛ derivatives exchanges list (id map) - **NFTs (beta)** > ❌⬛ nfts list (id map) > ❌⬛ nfts collection data by id > ❌⬛ nfts collection data by contract address - **exchange rates** > ❌⬛ btc-to-currency exchange rates - **search** > ❌⬛ search queries - **trending** > ❌⬛ trending search list - **global** > ❌⬛ crypto global market data > ❌⬛ global de-fi market data - **companies (beta)** > ❌⬛ public companies holdings