From 66d23625e0ec05b31c730142ec497f1c2ca8b017 Mon Sep 17 00:00:00 2001 From: Luis Rodrigues Date: Tue, 18 Jun 2024 22:23:49 +0100 Subject: [PATCH] criado exemplo de script 'crypto_portfolio.py' para aceder a dados CoinGecko via API --- crypto_portfolio.py | 46 ++++------- dados/bitcoin.csv | 73 ++++++++++++++++++ .../__pycache__/coingecko_api.cpython-312.pyc | Bin 0 -> 41896 bytes modulos/coingecko_api.py | 14 ++-- 4 files changed, 97 insertions(+), 36 deletions(-) create mode 100644 modulos/__pycache__/coingecko_api.cpython-312.pyc diff --git a/crypto_portfolio.py b/crypto_portfolio.py index 09b12d4..e0d6abb 100644 --- a/crypto_portfolio.py +++ b/crypto_portfolio.py @@ -1,12 +1,16 @@ -import requests +import modulos.coingecko_api as cgapi import time -base_url = 'https://api.coingecko.com/api/v3/' -coin = 'bitcoin' -vs_currency = 'eur' -days = '365' -precision = '3' -intervalo = 'daily' +APY_KEY = "CG-K5RS5VXsdFDip2UvY3z8VjQP" + +cgapi.headers = { + 'accept': 'application/json', + 'x-cg-demo-api-key': APY_KEY, +} + +criptomoeda: str = 'bitcoin' +vs_currency: str = 'eur' +dias: str = '30' historico_precos_header = [ "data", @@ -24,32 +28,16 @@ portfolio_headers = [ "movimento" ] -# https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=eur&days=365&interval=daily -url_historico_preco = base_url + 'coins/' + coin + '/market_chart?vs_currency=' + vs_currency + '&days=' + days + '&interval=' + intervalo + '&precision=' + precision -# https://api.coingecko.com/api/v3/coins/bitcoin/ohlc?vs_currency=eur&days=30&precision=3 -url_preco_ohlc = base_url + 'coins/' + coin + '/ohlc?vs_currency=' + vs_currency + '&days=' + days + '&precision=' + precision +url, codigo, dados_ohlc = cgapi.coin_ohlc_chart_by_id('bitcoin','eur','30') -APY_KEY = "CG-K5RS5VXsdFDip2UvY3z8VjQP" - -headers = { - 'accept': 'application/json', - 'x-cg-demo-api-key': APY_KEY -} - -# tipo de pesquisa -url_consulta = url_historico_preco - -response = requests.get(url_consulta, headers= headers) - -if response.status_code == 200: - data = response.json() - print(len(data['prices'])) +if codigo == 200: + print(len(dados_ohlc)) #print(data) - for index in range(0, len(data['prices'])): + for index in range(0, len(dados_ohlc)): #date = time.ctime(data['prices'][index][0]/1000) - date_as_string = time.strftime("%d/%m/%Y", time.gmtime(data['prices'][index][0]/1000)) - price = data['prices'][index][1] + date_as_string = time.strftime("%d/%m/%Y", time.gmtime(dados_ohlc[index][0]/1000)) + price = dados_ohlc[index][1] print(f'{date_as_string} -> {price:.2f}') # ohlc = [ data[0][1], data[0][2], data[0][3], data[0][4] ] diff --git a/dados/bitcoin.csv b/dados/bitcoin.csv index de3787a..f90ba8b 100644 --- a/dados/bitcoin.csv +++ b/dados/bitcoin.csv @@ -268,3 +268,76 @@ data_unix,criptomoeda,vs_currency,preco_abertura,preco_maximo,preco_minimo,preco 1717660800000,bitcoin,eur,65230.943,65316.458,65062.402,65316.458 1717675200000,bitcoin,eur,65274.639,65407.744,65158.324,65386.244 1717689600000,bitcoin,eur,65419.588,65774.141,65249.732,65506.978 +1717704000000,bitcoin,eur,65471.555,65532.729,64717.288,64717.288 +1717718400000,bitcoin,eur,64677.664,65089.162,64343.301,64964.378 +1717732800000,bitcoin,eur,64977.376,65149.537,64848.527,65130.071 +1717747200000,bitcoin,eur,65155.771,65552.101,65155.771,65216.141 +1717761600000,bitcoin,eur,65252.625,65702.159,65206.759,65702.159 +1717776000000,bitcoin,eur,65734.057,66131.777,65253.932,65752.783 +1717790400000,bitcoin,eur,65749.188,65848.487,63728.664,64129.646 +1717804800000,bitcoin,eur,64060.091,64272.295,63848.308,64146.758 +1717819200000,bitcoin,eur,64159.212,64299.072,64086.474,64249.859 +1717833600000,bitcoin,eur,64209.15,64349.251,64051.858,64318.275 +1717848000000,bitcoin,eur,64311.571,64311.571,64131.824,64131.824 +1717862400000,bitcoin,eur,64203.41,64296.204,64035.949,64249.135 +1717876800000,bitcoin,eur,64221.037,64299.139,64128.188,64277.034 +1717891200000,bitcoin,eur,64270.706,64270.706,64108.467,64137.266 +1717905600000,bitcoin,eur,64128.272,64158.804,63991.822,64090.377 +1717920000000,bitcoin,eur,64081.766,64217.961,64052.909,64057.296 +1717934400000,bitcoin,eur,64059.0,64149.432,64042.574,64134.292 +1717948800000,bitcoin,eur,64124.981,64479.239,63989.962,64285.248 +1717963200000,bitcoin,eur,64291.111,64656.936,64266.263,64601.802 +1717977600000,bitcoin,eur,64582.604,64759.561,64522.41,64623.807 +1717992000000,bitcoin,eur,64616.25,64801.268,64439.453,64691.987 +1718006400000,bitcoin,eur,64687.165,64792.696,64386.034,64411.814 +1718020800000,bitcoin,eur,64350.265,64704.291,64350.265,64575.72 +1718035200000,bitcoin,eur,64590.601,65248.725,64442.081,65248.725 +1718049600000,bitcoin,eur,65151.51,65166.971,64556.295,64556.295 +1718064000000,bitcoin,eur,64454.135,64736.581,64384.742,64559.648 +1718078400000,bitcoin,eur,64588.999,64616.169,63155.903,63453.009 +1718092800000,bitcoin,eur,63536.762,63536.762,62711.095,62731.686 +1718107200000,bitcoin,eur,62720.58,62879.267,62185.261,62304.792 +1718121600000,bitcoin,eur,62294.215,62696.767,61702.308,61713.404 +1718136000000,bitcoin,eur,61738.523,62902.134,61668.739,62902.134 +1718150400000,bitcoin,eur,62769.21,62897.02,62539.241,62689.904 +1718164800000,bitcoin,eur,62652.099,62907.854,62301.584,62738.123 +1718179200000,bitcoin,eur,62783.447,62938.535,62566.099,62754.609 +1718193600000,bitcoin,eur,62781.987,63246.226,62661.563,62926.3 +1718208000000,bitcoin,eur,62962.533,64500.086,62909.222,64289.713 +1718222400000,bitcoin,eur,64340.66,64441.731,62257.896,62401.11 +1718236800000,bitcoin,eur,62505.301,63451.515,62486.678,63085.644 +1718251200000,bitcoin,eur,63118.091,63244.317,61974.217,62384.132 +1718265600000,bitcoin,eur,62430.948,62626.296,62291.493,62574.146 +1718280000000,bitcoin,eur,62623.2,62937.053,62197.012,62797.728 +1718294400000,bitcoin,eur,62808.255,63507.276,61815.622,61853.329 +1718308800000,bitcoin,eur,61768.207,62448.107,61768.207,62102.312 +1718323200000,bitcoin,eur,62077.312,62349.546,61938.342,62107.467 +1718337600000,bitcoin,eur,62161.672,62367.239,61897.656,62111.616 +1718352000000,bitcoin,eur,62108.466,62596.584,62102.836,62596.584 +1718366400000,bitcoin,eur,62424.867,62816.856,62417.064,62652.665 +1718380800000,bitcoin,eur,62643.286,63005.52,62068.413,62068.413 +1718395200000,bitcoin,eur,62031.147,62079.753,60759.177,61094.451 +1718409600000,bitcoin,eur,61222.053,62012.143,61183.513,61562.526 +1718424000000,bitcoin,eur,61563.381,61797.231,61533.382,61742.924 +1718438400000,bitcoin,eur,61774.804,61910.234,61599.798,61610.882 +1718452800000,bitcoin,eur,61605.706,61852.385,61604.645,61796.547 +1718467200000,bitcoin,eur,61840.13,61990.543,61700.173,61830.904 +1718481600000,bitcoin,eur,61846.954,61859.093,61637.695,61702.146 +1718496000000,bitcoin,eur,61690.434,61806.068,61517.023,61759.233 +1718510400000,bitcoin,eur,61756.523,61774.106,61632.978,61673.592 +1718524800000,bitcoin,eur,61675.144,61887.92,61571.456,61795.6 +1718539200000,bitcoin,eur,61771.32,62242.399,61730.76,61954.382 +1718553600000,bitcoin,eur,62014.055,62260.225,61978.161,62163.599 +1718568000000,bitcoin,eur,62179.642,62252.792,62053.422,62153.209 +1718582400000,bitcoin,eur,62157.854,62557.4,62030.817,62231.369 +1718596800000,bitcoin,eur,62267.678,62461.5,61856.093,61892.854 +1718611200000,bitcoin,eur,61834.712,62113.756,61568.403,61903.611 +1718625600000,bitcoin,eur,61809.519,61898.448,61209.99,61376.919 +1718640000000,bitcoin,eur,61393.003,61393.003,60736.936,60936.7 +1718654400000,bitcoin,eur,60930.124,62601.636,60703.206,62067.171 +1718668800000,bitcoin,eur,62071.407,62105.956,61658.083,61877.281 +1718683200000,bitcoin,eur,61888.621,61946.547,60168.95,61105.393 +1718697600000,bitcoin,eur,61065.311,61367.521,60983.001,61236.949 +1718712000000,bitcoin,eur,61224.349,61350.669,60822.616,61069.727 +1718726400000,bitcoin,eur,60972.72,60972.72,59943.823,60352.265 +1718740800000,bitcoin,eur,60155.898,60358.155,59744.169,59767.125 diff --git a/modulos/__pycache__/coingecko_api.cpython-312.pyc b/modulos/__pycache__/coingecko_api.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9d819356643c220376b036eeac15bb82f7719606 GIT binary patch literal 41896 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 AzW@LL literal 0 HcmV?d00001 diff --git a/modulos/coingecko_api.py b/modulos/coingecko_api.py index 9096230..36a13be 100644 --- a/modulos/coingecko_api.py +++ b/modulos/coingecko_api.py @@ -1687,10 +1687,10 @@ def public_companies_holdings(coin_id: str = '') -> tuple[str, int, dict]: # debug (decomentar linhas seguintes para testar funcao) -url, codigo, dados = public_companies_holdings('bitcoin') -print(f'url: {url}') -if codigo == 200: - for item in dados: - print(f'{item}: {dados[item]}') -else: - print(f'erro {codigo}: {dados}') \ No newline at end of file +# url, codigo, dados = public_companies_holdings('bitcoin') +# print(f'url: {url}') +# if codigo == 200: +# for item in dados: +# print(f'{item}: {dados[item]}') +# else: +# print(f'erro {codigo}: {dados}') \ No newline at end of file