From 58137a0f364042a00bbe5aa9938d234e4fa5448b Mon Sep 17 00:00:00 2001 From: Mark Aron Szulyovszky Date: Tue, 9 Nov 2021 12:58:05 +0100 Subject: [PATCH] feat(Data): fetch prices from cryptocompare (and alphavantage) --- .../data}/oecd_housing_prices.csv | 0 .../housing_preprocess.py | 0 fetch-data.py | 42 +++++++++++++++++++ 3 files changed, 42 insertions(+) rename {data => archive/data}/oecd_housing_prices.csv (100%) rename preprocess.py => archive/housing_preprocess.py (100%) create mode 100644 fetch-data.py diff --git a/data/oecd_housing_prices.csv b/archive/data/oecd_housing_prices.csv similarity index 100% rename from data/oecd_housing_prices.csv rename to archive/data/oecd_housing_prices.csv diff --git a/preprocess.py b/archive/housing_preprocess.py similarity index 100% rename from preprocess.py rename to archive/housing_preprocess.py diff --git a/fetch-data.py b/fetch-data.py new file mode 100644 index 0000000..378f924 --- /dev/null +++ b/fetch-data.py @@ -0,0 +1,42 @@ +# %% +import requests +import pandas as pd + +AV_API_KEY = 'UY5VGSWBE88SHGI6' +CC_API_KEY = 'bfb8b5f54b21354608020a6654b370617b2fcabd2c8c2ce04ab881682a1d9dc9' + +# %% +def get_crypto_price_crypto_compare(symbol, exchange, days): + api_url = f'https://min-api.cryptocompare.com/data/v2/histoday?fsym={symbol}&tsym={exchange}&limit={days}&api_key={CC_API_KEY}' + raw = requests.get(api_url).json() + df = pd.DataFrame(raw['Data']['Data'])[['time', 'high', 'low', 'open']].set_index('time') + df.index = pd.to_datetime(df.index, unit = 's') + return df + +ada = get_crypto_price_crypto_compare('ADA', 'USD', 1500) +ada + + +# %% + +def get_crypto_price_av(symbol, exchange, start_date = None): + api_url = f'https://www.alphavantage.co/query?function=DIGITAL_CURRENCY_DAILY&symbol={symbol}&market={exchange}&apikey={AV_API_KEY}' + raw_df = requests.get(api_url).json() + df = pd.DataFrame(raw_df['Time Series (Digital Currency Daily)']).T + df = df.rename(columns = {'1a. open (USD)': 'open', '2a. high (USD)': 'high', '3a. low (USD)': 'low', '4a. close (USD)': 'close', '5. volume': 'volume'}) + for i in df.columns: + df[i] = df[i].astype(float) + df.index = pd.to_datetime(df.index) + df = df.iloc[::-1].drop(['1b. open (USD)', '2b. high (USD)', '3b. low (USD)', '4b. close (USD)', '6. market cap (USD)'], axis = 1) + if start_date: + df = df[df.index >= start_date] + return df + +btc = get_crypto_price_av(symbol = 'BTC', exchange = 'USD', start_date = '2018-01-01') +btc + + + +# %% + +# %%