from .types import RawConfig, Config def get_dev_config() -> RawConfig: classification_models = ["LogisticRegression_two_class"] return RawConfig( directional_models_meta = False, dimensionality_reduction = False, n_features_to_select = 30, expanding_window_base = False, expanding_window_meta = False, sliding_window_size_base = 380, sliding_window_size_meta = 1, retrain_every = 20, scaler = 'minmax', # 'normalize' 'minmax' 'standardize' assets = ['daily_only_btc'], target_asset = 'BTC_USD', other_assets = [], exogenous_data = [], load_non_target_asset= True, own_features = ['level_2', 'date_days'], other_features = ['single_mom'], exogenous_features = ['z_score'], directional_models = classification_models, meta_models = [], event_filter = 'none', labeling = 'two_class', forecasting_horizon = 100, ) def get_default_ensemble_config() -> RawConfig: classification_models = ["LogisticRegression_two_class", "LDA", "NB", "RFC", "XGB_two_class", "LGBM", "StaticMom"] meta_models = ['LogisticRegression_two_class', 'LGBM'] return RawConfig( directional_models_meta = True, dimensionality_reduction = False, n_features_to_select = 30, expanding_window_base = False, expanding_window_meta = True, sliding_window_size_base = 380, sliding_window_size_meta = 240, retrain_every = 10, scaler = 'minmax', # 'normalize' 'minmax' 'standardize' assets = ['daily_crypto'], target_asset = 'BTC_USD', other_assets = ['daily_etf'], exogenous_data = ['daily_glassnode'], load_non_target_asset= True, own_features = ['level_2', 'date_days', 'lags_up_to_5'], other_features = ['level_2', 'lags_up_to_5'], exogenous_features = ['z_score'], directional_models = classification_models, meta_models = meta_models, event_filter = 'cusum_vol', labeling = 'two_class', forecasting_horizon = 100, ) def get_lightweight_ensemble_config() -> RawConfig: classification_models = ['LogisticRegression_two_class', 'LGBM'] meta_models = ['LogisticRegression_two_class', 'LGBM'] return RawConfig( directional_models_meta = True, dimensionality_reduction = True, n_features_to_select = 30, expanding_window_base = True, expanding_window_meta = True, sliding_window_size_base = 3800, sliding_window_size_meta = 2400, retrain_every = 1000, scaler = 'minmax', # 'normalize' 'minmax' 'standardize' assets = ['fivemin_crypto'], target_asset = 'BTC_USD', other_assets = [], exogenous_data = [], load_non_target_asset= False, own_features = ['level_1'], other_features = [], exogenous_features = [], directional_models = classification_models, meta_models = meta_models, event_filter = 'cusum_fixed', labeling = 'two_class', forecasting_horizon = 50, )