feat(Labeling): purge overlapping events, sort dataframe at loading time (#226)

* feat(Labeling): purge overlapping events, sort dataframe at loading time

* fix(Linter): ran

* refactor(Labeling): moved purge_overlapping_events one abstraction level higher

* fix(Data): renamed class

* fix(Data): corrected parameter name

* fix(Config): parameters

* fix(Data): fixed path

* fix(Data): uncommented required code

* feat(EventFilters): use vol based CUSUM

* fix(Config): only retrain every 2000 samples

* fix(Config): filter out even more events

* fix(Inference): added remove_overlapping_events

* refactor(Types): simplified type hierarchy
This commit is contained in:
Mark Aron Szulyovszky
2022-03-02 00:26:33 +01:00
committed by GitHub
parent 10a0803c91
commit 75157c6285
17 changed files with 120 additions and 77 deletions
+5 -3
View File
@@ -17,7 +17,7 @@ def get_default_config() -> RawConfig:
dimensionality_reduction_ratio=0.5,
n_features_to_select=50,
sliding_window_size=3800,
retrain_every=1000,
retrain_every=2000,
scaler="minmax", # 'normalize' 'minmax' 'standardize' 'robust'
assets=["fivemin_crypto"],
target_asset="BTCUSDT",
@@ -29,9 +29,11 @@ def get_default_config() -> RawConfig:
exogenous_features=[],
directional_models=classification_models,
meta_models=meta_models,
event_filter="cusum_fixed",
event_filter="cusum_vol",
remove_overlapping_events=False,
labeling="two_class",
forecasting_horizon=50,
forecasting_horizon=10,
transaction_costs=0.002,
save_models=True,
ensembling_method="voting_soft",
)
+4
View File
@@ -26,8 +26,10 @@ class RawConfig(BaseModel):
other_features: list[str]
exogenous_features: list[str]
event_filter: Literal["none", "cusum_vol", "cusum_fixed"]
remove_overlapping_events: bool
labeling: Literal["two_class", "three_class_balanced", "three_class_imbalanced"]
forecasting_horizon: int
transaction_costs: float
save_models: bool
ensembling_method: Literal["voting_soft", "stacking"]
@@ -49,8 +51,10 @@ class Config:
other_features: list[tuple[str, FeatureExtractor, list[int]]]
exogenous_features: list[tuple[str, FeatureExtractor, list[int]]]
event_filter: EventFilter
remove_overlapping_events: bool
labeling: EventLabeller
forecasting_horizon: int
transaction_costs: float
no_of_classes: Literal["two", "three-balanced", "three-imbalanced"]
save_models: bool