import os # ========================= # Path Config # ========================= BASE_DIR = os.path.dirname(os.path.abspath(__file__)) INPUT_DIR = os.path.join(BASE_DIR, "input") OUTPUT_DIR = os.path.join(BASE_DIR, "output_minute") VERSION = "_30m_from_1s_ticks_smoothed" INPUT_CSV = os.path.join(INPUT_DIR, "gemini_24h_analysis.csv") # ========================= # Data Parameters # ========================= SAMPLE_EVERY_N_EVENTS = 1 PREDICTION_HORIZON = 180 TOP_K_LEVELS = 5 WINDOW_MS = 1000 # ========================= # Model Parameters # ========================= N_SPLITS = 5 RANDOM_STATE = 42 VALIDATION_FRACTION = 0.2 EARLY_STOPPING_ROUNDS = 50 # ========================= # Label / Strategy Parameters # ========================= TRANSACTION_FEE_RATE = 0.001 MILD_RETURN_THRESHOLD = 0.00001 COST_AWARE_LABEL_THRESHOLD_MULTIPLIER = 1.0 SIGNAL_SCORE_WINDOW_MINUTES = 60 SIGNAL_SCORE_BUY_QUANTILE = 0.9 SIGNAL_SCORE_CLOSE_QUANTILE = 0.1 SIGNAL_SMOOTHING_SECONDS = max(60, PREDICTION_HORIZON // 3) MIN_HOLD_SECONDS = max(60, PREDICTION_HORIZON // 3) LGB_PARAMS = { "objective": "multiclass", "num_class": 3, "n_estimators": 1500, "learning_rate": 0.05, "num_leaves": 15, "max_depth": 4, "min_child_samples": 60, "subsample": 0.8, "subsample_freq": 1, "colsample_bytree": 0.8, "reg_alpha": 0.01, "reg_lambda": 0.001, "class_weight": "balanced", "random_state": RANDOM_STATE, "n_jobs": -1, } # ========================= # Output Paths # ========================= FEATURE_CSV = os.path.join(OUTPUT_DIR, "1s_tick_feature_2.0.csv") DATASET_CSV = os.path.join(OUTPUT_DIR, f"dataset_with_targets{VERSION}.csv") FOLD_METRICS_CSV = os.path.join(OUTPUT_DIR, f"fold_metrics{VERSION}.csv") OVERALL_METRICS_CSV = os.path.join(OUTPUT_DIR, f"overall_metrics{VERSION}.csv") FEATURE_IMPORTANCE_CSV = os.path.join(OUTPUT_DIR, f"feature_importances{VERSION}.csv") CONFUSION_MATRIX_CSV = os.path.join(OUTPUT_DIR, f"confusion_matrix{VERSION}.csv") OOS_PREDICTIONS_CSV = os.path.join(OUTPUT_DIR, f"oos_predictions{VERSION}.csv") OOS_TRADES_CSV = os.path.join(OUTPUT_DIR, f"oos_trades{VERSION}.csv") OOS_TRADE_EVENTS_CSV = os.path.join(OUTPUT_DIR, f"oos_trade_events{VERSION}.csv") PARAMETER_TUNING_CSV = os.path.join(OUTPUT_DIR, f"parameter_tuning{VERSION}.csv") PRED_VS_TRUE_PNG = os.path.join(OUTPUT_DIR, f"pred_vs_true{VERSION}.png") SCATTER_PNG = os.path.join(OUTPUT_DIR, f"scatter{VERSION}.png") CUMRET_PNG = os.path.join(OUTPUT_DIR, f"cumret{VERSION}.png") FEATURE_IMPORTANCE_PNG = os.path.join(OUTPUT_DIR, f"feature_importance{VERSION}.png") SIGNAL_TS_PNG = os.path.join(OUTPUT_DIR, f"signal_timeseries_with_thresholds{VERSION}.png") POSITION_MIDPRICE_PNG = os.path.join(OUTPUT_DIR, f"position_midprice{VERSION}.png")