feat(Data): added daily_glassnode DataCollection (#99)

This commit is contained in:
Mark Aron Szulyovszky
2022-01-03 13:57:36 +01:00
committed by GitHub
parent 442915f847
commit 867269df2b
64 changed files with 74837 additions and 698 deletions
@@ -31,10 +31,3 @@ presets = __presets | dict(
level_2 = __presets["mom"] + __presets["vol"] + __presets["roc"] + __presets["rsi"] + __presets["stod"] + __presets["stok"],
)
def preprocess_feature_extractors_config(data_dict: dict) -> dict:
data_dict = data_dict.copy()
keys = ['own_features', 'other_features']
for key in keys:
preset_names = data_dict[key]
data_dict[key] = flatten([presets[preset_name] for preset_name in preset_names])
return data_dict
+2 -11
View File
@@ -1,15 +1,6 @@
import pandas as pd
import numpy as np
## Utility functions
def __get_close_low_high(df: pd.DataFrame) -> tuple[pd.Series, pd.Series, pd.Series]:
close = df['close']
low = df['low']
high = df['high']
return close, low, high
## Feature extractors
from feature_extractors.utils import get_close_low_high
def feature_debug_future_lookahead(df: pd.DataFrame, period: int, is_log_return: bool) -> pd.Series:
return df['returns'].shift(-period)
@@ -37,7 +28,7 @@ def feature_mom(df: pd.DataFrame, period: int, is_log_return: bool) -> pd.Series
return df['close'].pct_change(period)
def feature_STOK(df: pd.DataFrame, period: int, is_log_return: bool) -> pd.Series:
close, low, high = __get_close_low_high(df)
close, low, high = get_close_low_high(df)
STOK = ((close - low.rolling(period).min()) / (high.rolling(period).max() - low.rolling(period).min())) * 100
return STOK
@@ -3,8 +3,7 @@ import pandas as pd
import numpy as np
def feature_fractional_differentiation(df: pd.DataFrame, period: int, is_log_return: bool) -> pd.Series:
feature_selector = FracdiffStat(window = period)
frac_diff = FracdiffStat(window = period)
input_series = df["close"].to_numpy().reshape(-1, 1)
feature_selector.fit(input_series)
result = feature_selector.transform(input_series)
return pd.Series(np.log(result.squeeze()), index = df.index)
result = frac_diff.fit_transform(input_series)
return pd.Series(result.squeeze(), index = df.index)
+8
View File
@@ -0,0 +1,8 @@
import pandas_ta as ta
import pandas as pd
from feature_extractors.utils import get_close_low_high
def feature_EBSW(df: pd.DataFrame, period: int, is_log_return: bool) -> pd.Series:
close, low, high = get_close_low_high(df)
return ta.ebsw(close, period)
+7
View File
@@ -0,0 +1,7 @@
import pandas as pd
def get_close_low_high(df: pd.DataFrame) -> tuple[pd.Series, pd.Series, pd.Series]:
close = df['close']
low = df['low']
high = df['high']
return close, low, high