# 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. ~~~pseudo 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. ~~~pseudo 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: ~~~pseudo / = 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 API_KEY = "CG-K5RS5VXsdFDip2UvY3z8VjQP"
## Sidequest - criação de wrapper para a API Coingecko sim sim, já existe uma (muito bem feita, por sinal!) que pode ser descarregada [aqui](). esta é a minha tentativa! :D ### Padrões a adoptar #### Nomes de funções e parâmetros das chamadas API usar como nome das funções e dos parâmetros os mesmos nomes usados pela API da CoinGecko,por exemplo: ~~~pseudo documentação: 'Coin OHLC Chart by ID' endpoint: https://api.coingecko.com/api/v3/coins/{id}/ohlc parametros: de caminho: id (obrigatorio) de consulta: vs_currencies (obrigatorio) days (obrigatorio) precision função: coin_ohlc_chart_by_id() parametros: id vs_currencies days precision ~~~ *Nota: na situação em que o nome do parâmetro for um termo reservado, renomear com nome apropriado e comentar essa alteração* #### Parâmetros obrigatórios e vazios nas chamadas de API com parametros obrigatorios, a função deve gerar erro quando o parametro não for passado como argumento ou o tipo de objecto for diferente do esperado quando houver parametros 'vazios' passados como argumentos, estes não devem ser incluidos no URL de consulta. ( implementado na função API() ) #### Dados devolvidos por chamadas API **url** - url completo do endpoint **codigo** - codigo de erro devolvido pelo modulo requests **dados** - dados devolvidos pela chamada, em formato dict[Any, Any]
Documentação Public API ### endpoints Public API Demo [V3.0.1](https://docs.coingecko.com/v3.0.1/reference/introduction) ✅ - implementado ❌ - não implementado 📖 - documentado * **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
Documentação Pro API ### endpoints Pro API [V3.1.1](https://docs.coingecko.com/reference/introduction) ✅ - implementado ❌ - não implementado 📖 - documentado * **key** * ❌ API usage * **coins** * ❌ top gainers & losers * ❌ recently added coins * ❌ coin ohcl chart within time range by id (enterprise only) * ❌ circulating supply chart by id (enterprise only) * ❌ total supply chart by id (enterprise only) * ❌ total supply chart within time range by id (enterprise only) * **asset platforms** * ❌ token lists by asset platform id (enterprise only) * **exchanges** * ❌ exchange volume chart within time range by id (enterprise only) * **NFTs (beta)** * ❌ nfts list with market data * ❌ nfts collection historical chart data by id * ❌ nfts collection tickers by id * **global** * ❌ global market cap chart data