#%% import pandas as pd from tqdm import tqdm from utils.glassnode import GlassnodeClient, Indicators, Mining path = 'data/daily_glassnode/' client = GlassnodeClient(asset='BTC', since='2014-01-01', until='2021-12-17') print("Client initiated") indicator_client = Indicators(client) indicator_names = ['rhodl_ratio', 'cvdd', 'difficulty_ribbon_compression', 'nvt_ratio', 'nvt_signal', 'velocity', 'supply_adjusted_cdd', 'binary_cdd', 'supply_adjusted_dormancy', 'puell_multiple', 'asopr', 'reserve_risk', 'sopr', 'cdd', 'asol', 'msol', 'dormancy', 'liveliness', 'relative_unrealized_profit', 'relative_unrealized_loss', 'nupl', # 'sth_nupl', # 'lth_nupl', 'ssr', 'bvin', ] def process_df(df: pd.DataFrame) -> pd.DataFrame: df.index.rename('time', inplace=True) if len(df.columns) != 1: df = df[['v']] df.rename(columns={df.columns[0]: 'close'}, inplace=True) df.sort_index(inplace=True) return df for name in tqdm(indicator_names): method_to_call = getattr(indicator_client, name) df = method_to_call() df = process_df(df) df.to_csv(path + name + '.csv') # Mining data mining_names = ['hash_rate'] mining_client = Mining(client) for name in tqdm(mining_names): method_to_call = getattr(mining_client, name) df = method_to_call() df = process_df(df) df.to_csv(path + name + '.csv')