uso de funções csv.DictReader() e csv.DictWriter() para ler e escrever ficheiros csv

This commit is contained in:
2024-05-19 10:24:29 +01:00
parent b95f0c2b79
commit 6ab144e3d1
6 changed files with 281 additions and 16 deletions

View File

@ -48,6 +48,3 @@ https://api.coingecko.com/api/v3/coins/bitcoin/market_chart?vs_currency=eur&days
https://api.coingecko.com/api/v3/coins/bitcoin/ohlc?vs_currency=eur&days=365&precision=3

View File

@ -1,14 +1,33 @@
import requests
import time
# import datetime
baseURL = 'https://api.coingecko.com/api/v3/'
base_url = 'https://api.coingecko.com/api/v3/'
coin = 'bitcoin'
vs_currency = 'eur'
days = '30'
days = '365'
precision = '3'
intervalo = 'daily'
ohlc_endpoint = baseURL + 'coins/' + coin + '/ohlc?vs_currency=' + vs_currency + '&days=' + days + '&precision=' + precision
historico_precos_header = [
"data",
"moeda",
"preco_abertura",
"preco_maximo",
"preco_minimo",
"preco_fecho"
]
portfolio_headers = [
"data",
"moeda",
"quantidade",
"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
APY_KEY = "CG-K5RS5VXsdFDip2UvY3z8VjQP"
@ -17,17 +36,25 @@ headers = {
'x-cg-demo-api-key': APY_KEY
}
#print(ohlc_endpoint)
# tipo de pesquisa
url_consulta = url_historico_preco
response = requests.get(ohlc_endpoint, headers= headers)
response = requests.get(url_consulta, headers= headers)
if response.status_code == 200:
data = response.json()
print(len(data))
date = time.ctime(data[0][0]/1000)
date_as_string = time.strftime("%d/%m/%Y", time.gmtime(data[0][0]/1000))
ohlc = [ data[0][1], data[0][2], data[0][3], data[0][4] ]
print(len(data['prices']))
#print(data)
for index in range(0, len(data['prices'])):
#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]
print(f'{date_as_string} -> {price}')
# ohlc = [ data[0][1], data[0][2], data[0][3], data[0][4] ]
# print(f'price of bitcoin in {date_as_string}:\nopen: {ohlc[0]}\nhigh: {ohlc[1]}\nlow: {ohlc[2]}\nclose: {ohlc[3]}')
print(f'price of bitcoin in {date_as_string}:\nopen: {ohlc[0]}\nhigh: {ohlc[1]}\nlow: {ohlc[2]}\nclose: {ohlc[3]}')
else:
print('failed to retrive data')

View File

@ -1 +0,0 @@
data,moeda,preco_abertura,preco_maximo,preco_minimo,preco_fecho
1 data moeda preco_abertura preco_maximo preco_minimo preco_fecho

181
historico_precos.csv Normal file
View File

@ -0,0 +1,181 @@
data_unix,criptomoeda,vs_currency,preco_abertura,preco_maximo,preco_minimo,preco_fecho
1713355200000,bitcoin,eur,59764.004,59780.489,59063.235,59074.252
1713369600000,bitcoin,eur,58918.27,59133.883,56552.395,56864.602
1713384000000,bitcoin,eur,56822.322,57997.435,56402.343,57301.294
1713398400000,bitcoin,eur,57282.049,57820.207,56972.026,57478.363
1713412800000,bitcoin,eur,57429.02,58262.439,57209.276,58048.276
1713427200000,bitcoin,eur,58060.628,58122.991,56936.61,57311.959
1713441600000,bitcoin,eur,57285.932,58979.922,57067.387,58756.027
1713456000000,bitcoin,eur,58669.332,60049.857,57911.636,59717.552
1713470400000,bitcoin,eur,59598.34,59898.385,58608.058,59560.426
1713484800000,bitcoin,eur,59717.912,59918.23,59434.539,59623.562
1713499200000,bitcoin,eur,59681.227,59681.227,56519.13,58162.602
1713513600000,bitcoin,eur,58064.108,61045.359,58064.108,60554.231
1713528000000,bitcoin,eur,60616.231,61393.969,60339.227,60977.394
1713542400000,bitcoin,eur,60971.085,61311.245,59827.192,60495.172
1713556800000,bitcoin,eur,60509.69,60772.588,59802.064,60367.297
1713571200000,bitcoin,eur,60395.123,60524.011,59237.423,60012.937
1713585600000,bitcoin,eur,59874.011,60074.088,59301.122,59936.202
1713600000000,bitcoin,eur,59993.471,60266.905,59917.963,60000.677
1713614400000,bitcoin,eur,59988.613,59988.613,59466.549,59836.851
1713628800000,bitcoin,eur,59761.551,60955.354,59691.987,60755.668
1713643200000,bitcoin,eur,60781.259,61314.618,60562.13,60805.715
1713657600000,bitcoin,eur,60901.527,60923.55,60592.348,60862.269
1713672000000,bitcoin,eur,60938.556,61593.293,60629.961,61143.226
1713686400000,bitcoin,eur,61154.202,61202.193,60873.366,61069.528
1713700800000,bitcoin,eur,61094.533,61376.334,60766.894,61175.368
1713715200000,bitcoin,eur,61200.502,61280.684,60802.855,60986.746
1713729600000,bitcoin,eur,60984.601,60984.601,60327.332,60775.547
1713744000000,bitcoin,eur,60587.886,61155.753,60506.872,60924.519
1713758400000,bitcoin,eur,60907.455,61896.493,60517.99,61896.493
1713772800000,bitcoin,eur,61770.036,62364.853,61540.303,61992.226
1713787200000,bitcoin,eur,61978.521,62133.222,61830.276,61966.167
1713801600000,bitcoin,eur,61966.502,62455.16,61807.264,62014.949
1713816000000,bitcoin,eur,62010.752,62680.938,61982.604,62333.08
1713830400000,bitcoin,eur,62492.696,63079.898,62338.092,62738.591
1713844800000,bitcoin,eur,62731.622,63007.936,62433.917,62433.917
1713859200000,bitcoin,eur,62351.893,62669.885,61913.266,62025.768
1713873600000,bitcoin,eur,61952.277,62209.706,61754.945,61947.752
1713888000000,bitcoin,eur,61879.02,62737.658,61781.657,62202.933
1713902400000,bitcoin,eur,62102.444,62487.804,62102.444,62104.228
1713916800000,bitcoin,eur,62102.458,62125.735,61739.056,62051.586
1713931200000,bitcoin,eur,62068.458,62432.363,62047.422,62223.781
1713945600000,bitcoin,eur,62211.832,62640.182,62211.832,62372.446
1713960000000,bitcoin,eur,62357.941,62431.122,61995.707,62194.979
1713974400000,bitcoin,eur,62338.851,62468.011,60444.068,60504.559
1713988800000,bitcoin,eur,60382.882,60804.572,59675.789,60023.083
1714003200000,bitcoin,eur,59790.792,60196.845,59425.428,60081.616
1714017600000,bitcoin,eur,60044.109,60444.851,59745.152,60081.572
1714032000000,bitcoin,eur,60007.958,60087.996,59624.922,59749.086
1714046400000,bitcoin,eur,59679.798,59843.651,59162.538,59572.513
1714060800000,bitcoin,eur,59542.489,59832.508,58881.003,59832.508
1714075200000,bitcoin,eur,59659.988,60396.868,59659.988,60231.051
1714089600000,bitcoin,eur,60257.802,60639.319,60008.651,60110.989
1714104000000,bitcoin,eur,60116.61,60273.204,59608.597,60053.969
1714118400000,bitcoin,eur,60006.506,60175.579,59803.154,59956.834
1714132800000,bitcoin,eur,59898.087,60162.065,59718.815,59890.135
1714147200000,bitcoin,eur,59933.721,60478.313,59328.845,59405.034
1714161600000,bitcoin,eur,59378.403,59882.278,59273.151,59708.565
1714176000000,bitcoin,eur,59630.891,59895.267,59603.808,59659.007
1714190400000,bitcoin,eur,59611.726,59644.229,58467.073,58998.063
1714204800000,bitcoin,eur,58961.958,59007.491,58744.958,58893.261
1714219200000,bitcoin,eur,58841.03,58894.744,58588.472,58720.809
1714233600000,bitcoin,eur,58744.473,59173.239,58717.13,58747.667
1714248000000,bitcoin,eur,58819.061,59381.558,58648.559,59193.789
1714262400000,bitcoin,eur,59175.089,59381.323,59009.245,59381.323
1714276800000,bitcoin,eur,59267.028,60073.75,59267.028,59835.503
1714291200000,bitcoin,eur,59810.576,59837.037,59628.934,59727.724
1714305600000,bitcoin,eur,59717.251,59764.377,59211.449,59321.727
1714320000000,bitcoin,eur,59321.606,59638.573,59321.606,59374.035
1714334400000,bitcoin,eur,59391.116,59767.129,59345.841,59627.195
1714348800000,bitcoin,eur,59621.14,59621.14,58700.625,58876.98
1714363200000,bitcoin,eur,58967.579,59113.879,58327.503,58387.16
1714377600000,bitcoin,eur,58310.997,58355.595,57861.181,58198.224
1714392000000,bitcoin,eur,58227.272,58479.666,58015.875,58062.365
1714406400000,bitcoin,eur,58086.371,58787.391,57862.727,58755.077
1714420800000,bitcoin,eur,58759.705,58840.797,58355.93,58611.266
1714435200000,bitcoin,eur,58627.485,59817.571,58609.272,59532.805
1714449600000,bitcoin,eur,59568.883,60256.035,58979.909,59496.917
1714464000000,bitcoin,eur,59428.934,59493.392,59004.425,59017.863
1714478400000,bitcoin,eur,58993.953,58993.953,56983.237,57108.094
1714492800000,bitcoin,eur,57074.016,57462.906,56613.66,56704.629
1714507200000,bitcoin,eur,56903.324,56931.424,55842.642,55842.642
1714521600000,bitcoin,eur,55389.868,57013.56,55389.868,56955.303
1714536000000,bitcoin,eur,56787.448,56900.479,55905.784,56488.279
1714550400000,bitcoin,eur,56484.742,56539.149,53914.325,53984.048
1714564800000,bitcoin,eur,53824.489,54140.556,53220.491,54106.734
1714579200000,bitcoin,eur,54173.318,54453.134,53043.641,53161.957
1714593600000,bitcoin,eur,53187.253,55351.766,53163.735,53519.521
1714608000000,bitcoin,eur,53177.766,54548.077,53177.766,54392.861
1714622400000,bitcoin,eur,54400.67,54510.031,53173.283,53644.88
1714636800000,bitcoin,eur,53638.753,53918.091,53354.566,53736.23
1714651200000,bitcoin,eur,53744.299,54734.23,53744.299,54734.23
1714665600000,bitcoin,eur,54680.172,55517.807,54560.207,55290.196
1714680000000,bitcoin,eur,55387.399,55472.451,55043.921,55273.284
1714694400000,bitcoin,eur,55249.448,55604.694,54708.994,55109.428
1714708800000,bitcoin,eur,55078.685,55876.828,54857.032,55623.005
1714723200000,bitcoin,eur,55645.336,55713.228,55065.536,55113.934
1714737600000,bitcoin,eur,55149.411,55455.92,54836.517,55112.147
1714752000000,bitcoin,eur,55149.463,57508.221,54914.313,57292.76
1714766400000,bitcoin,eur,57338.276,57605.107,57176.84,57528.36
1714780800000,bitcoin,eur,57535.131,58653.721,57535.131,58355.754
1714795200000,bitcoin,eur,58401.414,58800.495,58189.429,58216.952
1714809600000,bitcoin,eur,58263.549,58892.401,58260.972,58494.804
1714824000000,bitcoin,eur,58494.772,59757.693,58480.989,59272.107
1714838400000,bitcoin,eur,59301.583,59554.202,58957.623,59044.373
1714852800000,bitcoin,eur,59070.03,59416.645,58897.156,59416.645
1714867200000,bitcoin,eur,59388.306,59594.08,59082.136,59266.863
1714881600000,bitcoin,eur,59356.299,59564.874,58509.376,58722.065
1714896000000,bitcoin,eur,58739.437,59318.56,58689.532,59208.631
1714910400000,bitcoin,eur,59190.84,59349.264,59026.257,59270.521
1714924800000,bitcoin,eur,59280.532,59818.553,59123.874,59781.136
1714939200000,bitcoin,eur,59874.796,59881.276,59285.607,59315.032
1714953600000,bitcoin,eur,59293.91,59674.582,59113.416,59488.79
1714968000000,bitcoin,eur,59514.581,59868.451,59218.41,59313.262
1714982400000,bitcoin,eur,59337.481,59886.04,59294.307,59886.04
1714996800000,bitcoin,eur,59963.942,60808.132,59462.007,59518.755
1715011200000,bitcoin,eur,59641.32,59643.277,58454.424,58977.099
1715025600000,bitcoin,eur,59063.95,59063.95,58360.439,58605.379
1715040000000,bitcoin,eur,58721.392,59021.146,58553.96,58653.248
1715054400000,bitcoin,eur,58641.116,59426.852,58500.826,58725.725
1715068800000,bitcoin,eur,58739.929,59286.065,58699.324,59154.914
1715083200000,bitcoin,eur,59144.07,59771.898,58981.507,58981.507
1715097600000,bitcoin,eur,58949.56,59763.701,58597.991,59185.123
1715112000000,bitcoin,eur,59174.086,59282.937,58473.474,58662.467
1715126400000,bitcoin,eur,58575.826,58713.821,57953.874,57997.643
1715140800000,bitcoin,eur,57985.025,58605.739,57945.76,58605.739
1715155200000,bitcoin,eur,58542.663,58583.182,57852.53,57895.955
1715169600000,bitcoin,eur,57906.834,58120.745,57789.175,57991.403
1715184000000,bitcoin,eur,57906.939,58292.183,57448.28,57936.13
1715198400000,bitcoin,eur,57876.469,58390.94,57716.718,58002.596
1715212800000,bitcoin,eur,57885.137,57885.137,56609.158,56957.966
1715227200000,bitcoin,eur,56936.205,57437.692,56926.49,57410.593
1715241600000,bitcoin,eur,57391.672,57488.354,56976.719,56976.719
1715256000000,bitcoin,eur,57011.98,57229.323,56557.217,56917.44
1715270400000,bitcoin,eur,56898.037,57774.22,56650.147,57602.299
1715284800000,bitcoin,eur,57672.2,58106.113,57366.641,57982.468
1715299200000,bitcoin,eur,57905.789,58735.011,57883.295,58566.916
1715313600000,bitcoin,eur,58489.374,58489.374,58154.35,58362.548
1715328000000,bitcoin,eur,58378.65,58813.487,58171.87,58562.705
1715342400000,bitcoin,eur,58495.732,58649.137,58283.299,58649.137
1715356800000,bitcoin,eur,58717.003,58867.203,56468.63,56505.479
1715371200000,bitcoin,eur,56538.313,56787.288,55989.3,56411.626
1715385600000,bitcoin,eur,56328.122,56570.348,56110.42,56489.043
1715400000000,bitcoin,eur,56397.521,56656.367,56312.471,56336.727
1715414400000,bitcoin,eur,56319.16,56660.365,56319.16,56554.133
1715428800000,bitcoin,eur,56630.656,56630.656,56158.454,56388.137
1715443200000,bitcoin,eur,56284.096,56988.582,56230.25,56719.879
1715457600000,bitcoin,eur,56739.373,56890.672,56591.744,56703.941
1715472000000,bitcoin,eur,56696.515,56706.667,56385.836,56385.836
1715486400000,bitcoin,eur,56402.218,56667.512,56402.218,56539.232
1715500800000,bitcoin,eur,56499.864,56678.829,56264.892,56303.234
1715515200000,bitcoin,eur,56332.481,56852.77,56332.481,56657.575
1715529600000,bitcoin,eur,56660.206,56969.754,56607.143,56885.013
1715544000000,bitcoin,eur,56863.015,57249.036,56756.397,56967.745
1715558400000,bitcoin,eur,56956.462,57100.996,56573.223,57100.996
1715572800000,bitcoin,eur,57086.95,57289.673,56426.077,56711.045
1715587200000,bitcoin,eur,56753.984,57666.666,56434.323,57666.666
1715601600000,bitcoin,eur,57879.453,58563.072,57879.453,58089.626
1715616000000,bitcoin,eur,58098.181,58495.658,57855.94,58495.658
1715630400000,bitcoin,eur,58364.137,58658.702,58052.688,58530.598
1715644800000,bitcoin,eur,58475.761,58528.843,58127.109,58257.947
1715659200000,bitcoin,eur,58281.533,58484.789,57869.534,57892.809
1715673600000,bitcoin,eur,57908.379,58153.352,57000.816,57455.78
1715688000000,bitcoin,eur,57491.83,57491.83,56972.445,57227.436
1715702400000,bitcoin,eur,57221.186,57414.888,56606.05,57080.828
1715716800000,bitcoin,eur,57085.238,57085.238,56489.101,56945.882
1715731200000,bitcoin,eur,56883.281,57066.736,56818.876,56927.171
1715745600000,bitcoin,eur,56899.985,57191.209,56747.343,57164.267
1715760000000,bitcoin,eur,57176.955,57394.914,57116.123,57394.914
1715774400000,bitcoin,eur,57404.869,58108.165,57194.658,57746.826
1715788800000,bitcoin,eur,57637.448,59801.802,57637.448,59668.207
1715803200000,bitcoin,eur,59535.01,61031.33,59535.01,60763.851
1715817600000,bitcoin,eur,60615.125,60992.218,60456.549,60811.295
1715832000000,bitcoin,eur,60818.876,61142.694,60516.875,60709.752
1715846400000,bitcoin,eur,60613.227,60942.82,60371.71,60790.27
1715860800000,bitcoin,eur,60854.584,61070.525,60769.516,61006.795
1715875200000,bitcoin,eur,61210.721,61210.721,60191.437,60597.909
1715889600000,bitcoin,eur,60543.25,60561.33,59420.968,60024.16
1715904000000,bitcoin,eur,60006.817,60286.127,59875.171,60054.302
1715918400000,bitcoin,eur,60011.002,60600.03,60005.315,60463.319
1715932800000,bitcoin,eur,60419.234,61112.357,60211.556,60983.861
1 data_unix criptomoeda vs_currency preco_abertura preco_maximo preco_minimo preco_fecho
2 1713355200000 bitcoin eur 59764.004 59780.489 59063.235 59074.252
3 1713369600000 bitcoin eur 58918.27 59133.883 56552.395 56864.602
4 1713384000000 bitcoin eur 56822.322 57997.435 56402.343 57301.294
5 1713398400000 bitcoin eur 57282.049 57820.207 56972.026 57478.363
6 1713412800000 bitcoin eur 57429.02 58262.439 57209.276 58048.276
7 1713427200000 bitcoin eur 58060.628 58122.991 56936.61 57311.959
8 1713441600000 bitcoin eur 57285.932 58979.922 57067.387 58756.027
9 1713456000000 bitcoin eur 58669.332 60049.857 57911.636 59717.552
10 1713470400000 bitcoin eur 59598.34 59898.385 58608.058 59560.426
11 1713484800000 bitcoin eur 59717.912 59918.23 59434.539 59623.562
12 1713499200000 bitcoin eur 59681.227 59681.227 56519.13 58162.602
13 1713513600000 bitcoin eur 58064.108 61045.359 58064.108 60554.231
14 1713528000000 bitcoin eur 60616.231 61393.969 60339.227 60977.394
15 1713542400000 bitcoin eur 60971.085 61311.245 59827.192 60495.172
16 1713556800000 bitcoin eur 60509.69 60772.588 59802.064 60367.297
17 1713571200000 bitcoin eur 60395.123 60524.011 59237.423 60012.937
18 1713585600000 bitcoin eur 59874.011 60074.088 59301.122 59936.202
19 1713600000000 bitcoin eur 59993.471 60266.905 59917.963 60000.677
20 1713614400000 bitcoin eur 59988.613 59988.613 59466.549 59836.851
21 1713628800000 bitcoin eur 59761.551 60955.354 59691.987 60755.668
22 1713643200000 bitcoin eur 60781.259 61314.618 60562.13 60805.715
23 1713657600000 bitcoin eur 60901.527 60923.55 60592.348 60862.269
24 1713672000000 bitcoin eur 60938.556 61593.293 60629.961 61143.226
25 1713686400000 bitcoin eur 61154.202 61202.193 60873.366 61069.528
26 1713700800000 bitcoin eur 61094.533 61376.334 60766.894 61175.368
27 1713715200000 bitcoin eur 61200.502 61280.684 60802.855 60986.746
28 1713729600000 bitcoin eur 60984.601 60984.601 60327.332 60775.547
29 1713744000000 bitcoin eur 60587.886 61155.753 60506.872 60924.519
30 1713758400000 bitcoin eur 60907.455 61896.493 60517.99 61896.493
31 1713772800000 bitcoin eur 61770.036 62364.853 61540.303 61992.226
32 1713787200000 bitcoin eur 61978.521 62133.222 61830.276 61966.167
33 1713801600000 bitcoin eur 61966.502 62455.16 61807.264 62014.949
34 1713816000000 bitcoin eur 62010.752 62680.938 61982.604 62333.08
35 1713830400000 bitcoin eur 62492.696 63079.898 62338.092 62738.591
36 1713844800000 bitcoin eur 62731.622 63007.936 62433.917 62433.917
37 1713859200000 bitcoin eur 62351.893 62669.885 61913.266 62025.768
38 1713873600000 bitcoin eur 61952.277 62209.706 61754.945 61947.752
39 1713888000000 bitcoin eur 61879.02 62737.658 61781.657 62202.933
40 1713902400000 bitcoin eur 62102.444 62487.804 62102.444 62104.228
41 1713916800000 bitcoin eur 62102.458 62125.735 61739.056 62051.586
42 1713931200000 bitcoin eur 62068.458 62432.363 62047.422 62223.781
43 1713945600000 bitcoin eur 62211.832 62640.182 62211.832 62372.446
44 1713960000000 bitcoin eur 62357.941 62431.122 61995.707 62194.979
45 1713974400000 bitcoin eur 62338.851 62468.011 60444.068 60504.559
46 1713988800000 bitcoin eur 60382.882 60804.572 59675.789 60023.083
47 1714003200000 bitcoin eur 59790.792 60196.845 59425.428 60081.616
48 1714017600000 bitcoin eur 60044.109 60444.851 59745.152 60081.572
49 1714032000000 bitcoin eur 60007.958 60087.996 59624.922 59749.086
50 1714046400000 bitcoin eur 59679.798 59843.651 59162.538 59572.513
51 1714060800000 bitcoin eur 59542.489 59832.508 58881.003 59832.508
52 1714075200000 bitcoin eur 59659.988 60396.868 59659.988 60231.051
53 1714089600000 bitcoin eur 60257.802 60639.319 60008.651 60110.989
54 1714104000000 bitcoin eur 60116.61 60273.204 59608.597 60053.969
55 1714118400000 bitcoin eur 60006.506 60175.579 59803.154 59956.834
56 1714132800000 bitcoin eur 59898.087 60162.065 59718.815 59890.135
57 1714147200000 bitcoin eur 59933.721 60478.313 59328.845 59405.034
58 1714161600000 bitcoin eur 59378.403 59882.278 59273.151 59708.565
59 1714176000000 bitcoin eur 59630.891 59895.267 59603.808 59659.007
60 1714190400000 bitcoin eur 59611.726 59644.229 58467.073 58998.063
61 1714204800000 bitcoin eur 58961.958 59007.491 58744.958 58893.261
62 1714219200000 bitcoin eur 58841.03 58894.744 58588.472 58720.809
63 1714233600000 bitcoin eur 58744.473 59173.239 58717.13 58747.667
64 1714248000000 bitcoin eur 58819.061 59381.558 58648.559 59193.789
65 1714262400000 bitcoin eur 59175.089 59381.323 59009.245 59381.323
66 1714276800000 bitcoin eur 59267.028 60073.75 59267.028 59835.503
67 1714291200000 bitcoin eur 59810.576 59837.037 59628.934 59727.724
68 1714305600000 bitcoin eur 59717.251 59764.377 59211.449 59321.727
69 1714320000000 bitcoin eur 59321.606 59638.573 59321.606 59374.035
70 1714334400000 bitcoin eur 59391.116 59767.129 59345.841 59627.195
71 1714348800000 bitcoin eur 59621.14 59621.14 58700.625 58876.98
72 1714363200000 bitcoin eur 58967.579 59113.879 58327.503 58387.16
73 1714377600000 bitcoin eur 58310.997 58355.595 57861.181 58198.224
74 1714392000000 bitcoin eur 58227.272 58479.666 58015.875 58062.365
75 1714406400000 bitcoin eur 58086.371 58787.391 57862.727 58755.077
76 1714420800000 bitcoin eur 58759.705 58840.797 58355.93 58611.266
77 1714435200000 bitcoin eur 58627.485 59817.571 58609.272 59532.805
78 1714449600000 bitcoin eur 59568.883 60256.035 58979.909 59496.917
79 1714464000000 bitcoin eur 59428.934 59493.392 59004.425 59017.863
80 1714478400000 bitcoin eur 58993.953 58993.953 56983.237 57108.094
81 1714492800000 bitcoin eur 57074.016 57462.906 56613.66 56704.629
82 1714507200000 bitcoin eur 56903.324 56931.424 55842.642 55842.642
83 1714521600000 bitcoin eur 55389.868 57013.56 55389.868 56955.303
84 1714536000000 bitcoin eur 56787.448 56900.479 55905.784 56488.279
85 1714550400000 bitcoin eur 56484.742 56539.149 53914.325 53984.048
86 1714564800000 bitcoin eur 53824.489 54140.556 53220.491 54106.734
87 1714579200000 bitcoin eur 54173.318 54453.134 53043.641 53161.957
88 1714593600000 bitcoin eur 53187.253 55351.766 53163.735 53519.521
89 1714608000000 bitcoin eur 53177.766 54548.077 53177.766 54392.861
90 1714622400000 bitcoin eur 54400.67 54510.031 53173.283 53644.88
91 1714636800000 bitcoin eur 53638.753 53918.091 53354.566 53736.23
92 1714651200000 bitcoin eur 53744.299 54734.23 53744.299 54734.23
93 1714665600000 bitcoin eur 54680.172 55517.807 54560.207 55290.196
94 1714680000000 bitcoin eur 55387.399 55472.451 55043.921 55273.284
95 1714694400000 bitcoin eur 55249.448 55604.694 54708.994 55109.428
96 1714708800000 bitcoin eur 55078.685 55876.828 54857.032 55623.005
97 1714723200000 bitcoin eur 55645.336 55713.228 55065.536 55113.934
98 1714737600000 bitcoin eur 55149.411 55455.92 54836.517 55112.147
99 1714752000000 bitcoin eur 55149.463 57508.221 54914.313 57292.76
100 1714766400000 bitcoin eur 57338.276 57605.107 57176.84 57528.36
101 1714780800000 bitcoin eur 57535.131 58653.721 57535.131 58355.754
102 1714795200000 bitcoin eur 58401.414 58800.495 58189.429 58216.952
103 1714809600000 bitcoin eur 58263.549 58892.401 58260.972 58494.804
104 1714824000000 bitcoin eur 58494.772 59757.693 58480.989 59272.107
105 1714838400000 bitcoin eur 59301.583 59554.202 58957.623 59044.373
106 1714852800000 bitcoin eur 59070.03 59416.645 58897.156 59416.645
107 1714867200000 bitcoin eur 59388.306 59594.08 59082.136 59266.863
108 1714881600000 bitcoin eur 59356.299 59564.874 58509.376 58722.065
109 1714896000000 bitcoin eur 58739.437 59318.56 58689.532 59208.631
110 1714910400000 bitcoin eur 59190.84 59349.264 59026.257 59270.521
111 1714924800000 bitcoin eur 59280.532 59818.553 59123.874 59781.136
112 1714939200000 bitcoin eur 59874.796 59881.276 59285.607 59315.032
113 1714953600000 bitcoin eur 59293.91 59674.582 59113.416 59488.79
114 1714968000000 bitcoin eur 59514.581 59868.451 59218.41 59313.262
115 1714982400000 bitcoin eur 59337.481 59886.04 59294.307 59886.04
116 1714996800000 bitcoin eur 59963.942 60808.132 59462.007 59518.755
117 1715011200000 bitcoin eur 59641.32 59643.277 58454.424 58977.099
118 1715025600000 bitcoin eur 59063.95 59063.95 58360.439 58605.379
119 1715040000000 bitcoin eur 58721.392 59021.146 58553.96 58653.248
120 1715054400000 bitcoin eur 58641.116 59426.852 58500.826 58725.725
121 1715068800000 bitcoin eur 58739.929 59286.065 58699.324 59154.914
122 1715083200000 bitcoin eur 59144.07 59771.898 58981.507 58981.507
123 1715097600000 bitcoin eur 58949.56 59763.701 58597.991 59185.123
124 1715112000000 bitcoin eur 59174.086 59282.937 58473.474 58662.467
125 1715126400000 bitcoin eur 58575.826 58713.821 57953.874 57997.643
126 1715140800000 bitcoin eur 57985.025 58605.739 57945.76 58605.739
127 1715155200000 bitcoin eur 58542.663 58583.182 57852.53 57895.955
128 1715169600000 bitcoin eur 57906.834 58120.745 57789.175 57991.403
129 1715184000000 bitcoin eur 57906.939 58292.183 57448.28 57936.13
130 1715198400000 bitcoin eur 57876.469 58390.94 57716.718 58002.596
131 1715212800000 bitcoin eur 57885.137 57885.137 56609.158 56957.966
132 1715227200000 bitcoin eur 56936.205 57437.692 56926.49 57410.593
133 1715241600000 bitcoin eur 57391.672 57488.354 56976.719 56976.719
134 1715256000000 bitcoin eur 57011.98 57229.323 56557.217 56917.44
135 1715270400000 bitcoin eur 56898.037 57774.22 56650.147 57602.299
136 1715284800000 bitcoin eur 57672.2 58106.113 57366.641 57982.468
137 1715299200000 bitcoin eur 57905.789 58735.011 57883.295 58566.916
138 1715313600000 bitcoin eur 58489.374 58489.374 58154.35 58362.548
139 1715328000000 bitcoin eur 58378.65 58813.487 58171.87 58562.705
140 1715342400000 bitcoin eur 58495.732 58649.137 58283.299 58649.137
141 1715356800000 bitcoin eur 58717.003 58867.203 56468.63 56505.479
142 1715371200000 bitcoin eur 56538.313 56787.288 55989.3 56411.626
143 1715385600000 bitcoin eur 56328.122 56570.348 56110.42 56489.043
144 1715400000000 bitcoin eur 56397.521 56656.367 56312.471 56336.727
145 1715414400000 bitcoin eur 56319.16 56660.365 56319.16 56554.133
146 1715428800000 bitcoin eur 56630.656 56630.656 56158.454 56388.137
147 1715443200000 bitcoin eur 56284.096 56988.582 56230.25 56719.879
148 1715457600000 bitcoin eur 56739.373 56890.672 56591.744 56703.941
149 1715472000000 bitcoin eur 56696.515 56706.667 56385.836 56385.836
150 1715486400000 bitcoin eur 56402.218 56667.512 56402.218 56539.232
151 1715500800000 bitcoin eur 56499.864 56678.829 56264.892 56303.234
152 1715515200000 bitcoin eur 56332.481 56852.77 56332.481 56657.575
153 1715529600000 bitcoin eur 56660.206 56969.754 56607.143 56885.013
154 1715544000000 bitcoin eur 56863.015 57249.036 56756.397 56967.745
155 1715558400000 bitcoin eur 56956.462 57100.996 56573.223 57100.996
156 1715572800000 bitcoin eur 57086.95 57289.673 56426.077 56711.045
157 1715587200000 bitcoin eur 56753.984 57666.666 56434.323 57666.666
158 1715601600000 bitcoin eur 57879.453 58563.072 57879.453 58089.626
159 1715616000000 bitcoin eur 58098.181 58495.658 57855.94 58495.658
160 1715630400000 bitcoin eur 58364.137 58658.702 58052.688 58530.598
161 1715644800000 bitcoin eur 58475.761 58528.843 58127.109 58257.947
162 1715659200000 bitcoin eur 58281.533 58484.789 57869.534 57892.809
163 1715673600000 bitcoin eur 57908.379 58153.352 57000.816 57455.78
164 1715688000000 bitcoin eur 57491.83 57491.83 56972.445 57227.436
165 1715702400000 bitcoin eur 57221.186 57414.888 56606.05 57080.828
166 1715716800000 bitcoin eur 57085.238 57085.238 56489.101 56945.882
167 1715731200000 bitcoin eur 56883.281 57066.736 56818.876 56927.171
168 1715745600000 bitcoin eur 56899.985 57191.209 56747.343 57164.267
169 1715760000000 bitcoin eur 57176.955 57394.914 57116.123 57394.914
170 1715774400000 bitcoin eur 57404.869 58108.165 57194.658 57746.826
171 1715788800000 bitcoin eur 57637.448 59801.802 57637.448 59668.207
172 1715803200000 bitcoin eur 59535.01 61031.33 59535.01 60763.851
173 1715817600000 bitcoin eur 60615.125 60992.218 60456.549 60811.295
174 1715832000000 bitcoin eur 60818.876 61142.694 60516.875 60709.752
175 1715846400000 bitcoin eur 60613.227 60942.82 60371.71 60790.27
176 1715860800000 bitcoin eur 60854.584 61070.525 60769.516 61006.795
177 1715875200000 bitcoin eur 61210.721 61210.721 60191.437 60597.909
178 1715889600000 bitcoin eur 60543.25 60561.33 59420.968 60024.16
179 1715904000000 bitcoin eur 60006.817 60286.127 59875.171 60054.302
180 1715918400000 bitcoin eur 60011.002 60600.03 60005.315 60463.319
181 1715932800000 bitcoin eur 60419.234 61112.357 60211.556 60983.861

61
portfolio.py Normal file
View File

@ -0,0 +1,61 @@
# script para criar um historico de preços de criptomoedas, guardado em ficheiro CSV, com intuito de utilizar este historico de precos para acompanhar evolução de portfolio de criptomoedas
# aceder ao historico de preços OHLC de CoinGecko através da API
# máximo de requests mensal: 10000 (320/dia; 13/hora)
# . referenciar o uso da CoinGecko através de branding oficial e link para site (https://www.coingecko.com/en/branding)
# . documentação API: https://docs.coingecko.com/v3.0.1/reference/introduction
# . obter OHLC: https://docs.coingecko.com/v3.0.1/reference/coins-id-ohlc
import requests
url_raiz_API = 'https://api.coingecko.com/api/v3/'
criptomoeda = 'bitcoin'
vs_currency = 'eur'
dias = '30'
precisao = '3'
url_consulta_ohlc = 'coins/' + criptomoeda + '/ohlc?vs_currency=' + vs_currency + '&days=' + dias + '&precision=' + precisao
url = url_raiz_API + url_consulta_ohlc
CHAVE_API = 'CG-K5RS5VXsdFDip2UvY3z8VjQP'
headers = {
'accept': 'application/json',
'x-cg-demo-api-key': CHAVE_API
}
resposta = requests.get(url, headers= headers)
# carregar dados já existentes em ficheiro CSV (criar ficheiro se não existir)
import csv
import os
cabecalho: list = [ 'data_unix', 'criptomoeda', 'vs_currency', 'preco_abertura', 'preco_maximo', 'preco_minimo', 'preco_fecho' ]
caminho_ficheiro_csv_historico_bitcoin = './historico_precos.csv'
if (os.path.exists(caminho_ficheiro_csv_historico_bitcoin) == False):
ficheiro = open(caminho_ficheiro_csv_historico_bitcoin, 'w+', newline='')
ficheiroCSV = csv.DictWriter(ficheiro, fieldnames=cabecalho)
ficheiroCSV.writeheader()
ficheiro.close()
with open(caminho_ficheiro_csv_historico_bitcoin, 'r', newline='') as ficheiro_csv_historico_precos:
ficheiroCSV = csv.DictReader(ficheiro_csv_historico_precos)
entradas: list = []
for linha in ficheiroCSV:
entradas.append(linha)
# converter dados de coingecko para o formato usado no ficheiro CSV
novas_linhas: list = []
for linha_resposta in resposta.json():
nova_entrada: dict = {}
nova_entrada[cabecalho[0]] = linha_resposta[0]
nova_entrada[cabecalho[1]] = criptomoeda
nova_entrada[cabecalho[2]] = vs_currency
nova_entrada[cabecalho[3]] = linha_resposta[1]
nova_entrada[cabecalho[4]] = linha_resposta[2]
nova_entrada[cabecalho[5]] = linha_resposta[3]
nova_entrada[cabecalho[6]] = linha_resposta[4]
novas_linhas.append(nova_entrada)
# eliminar registos que não sejam novos
# gravar dados importados
with open(caminho_ficheiro_csv_historico_bitcoin, 'w+', newline='') as ficheiro_csv_historico_precos:
ficheiroCSV = csv.DictWriter(ficheiro_csv_historico_precos, fieldnames=cabecalho)
ficheiroCSV.writeheader()
ficheiroCSV.writerows(entradas)

0
precos.csv Normal file
View File