2025-04-18 03:30:02,430 - root - INFO - Using Base Models Directory: /home/yasha/develop/gru_sac_predictor/models 2025-04-18 03:30:02,430 - root - INFO - Using results directory: /home/yasha/develop/gru_sac_predictor/results/20250418_033002 2025-04-18 03:30:02,430 - root - INFO - Using logs directory: /home/yasha/develop/gru_sac_predictor/logs/20250418_033002 2025-04-18 03:30:02,430 - root - INFO - Using models directory: /home/yasha/develop/gru_sac_predictor/models/20250418_033002 2025-04-18 03:30:02,430 - root - INFO - Logging setup complete. Log file: /home/yasha/develop/gru_sac_predictor/logs/20250418_033002/pipeline_20250418_033002.log 2025-04-18 03:30:02,430 - root - INFO - --- Starting Pipeline Run: 20250418_033002 --- 2025-04-18 03:30:02,430 - root - INFO - Using config: /home/yasha/develop/gru_sac_predictor/gru_sac_predictor/config.yaml 2025-04-18 03:30:02,430 - root - INFO - Resolved relative db_dir '../data/crypto_market_data' to absolute path: /home/yasha/develop/data/crypto_market_data 2025-04-18 03:30:02,430 - gru_sac_predictor.src.data_loader - INFO - Initialized DataLoader with db_dir='/home/yasha/develop/data/crypto_market_data' 2025-04-18 03:30:02,430 - gru_sac_predictor.src.feature_engineer - INFO - FeatureEngineer initialized with minimal whitelist: ['return_1m', 'return_15m', 'return_60m', 'ATR_14', 'volatility_14d', 'chaikin_AD_10', 'svi_10', 'EMA_10', 'EMA_50', 'MACD', 'MACD_signal', 'hour_sin', 'hour_cos'] 2025-04-18 03:30:02,430 - gru_sac_predictor.src.gru_model_handler - INFO - GRUModelHandler initialized for run 20250418_033002 in /home/yasha/develop/gru_sac_predictor/models/20250418_033002 2025-04-18 03:30:02,430 - gru_sac_predictor.src.calibrator - INFO - Calibrator initialized with edge threshold: 0.55 2025-04-18 03:30:02,430 - gru_sac_predictor.src.backtester - INFO - Backtester initialized. 2025-04-18 03:30:02,430 - gru_sac_predictor.src.backtester - INFO - Initial Capital: 10000.00 2025-04-18 03:30:02,431 - gru_sac_predictor.src.backtester - INFO - Transaction Cost: 0.0500% 2025-04-18 03:30:02,431 - gru_sac_predictor.src.backtester - INFO - Edge Threshold: 0.550 2025-04-18 03:30:02,435 - root - INFO - Saved run configuration to /home/yasha/develop/gru_sac_predictor/results/20250418_033002/run_config.yaml 2025-04-18 03:30:02,435 - root - INFO - === Starting Pipeline Execution === 2025-04-18 03:30:02,435 - root - INFO - --- Stage: Loading and Preprocessing Data --- 2025-04-18 03:30:02,435 - gru_sac_predictor.src.data_loader - INFO - Loading data for SOL-USDT (bnbspot) from 2025-03-01 to 2025-03-10, interval 1min 2025-04-18 03:30:02,438 - gru_sac_predictor.src.data_loader - INFO - Scanning for DB files recursively in: /home/yasha/develop/data/crypto_market_data 2025-04-18 03:30:02,486 - gru_sac_predictor.src.data_loader - INFO - Found 316 DB files. Using newest: 20250416.mktdata.ohlcv.db 2025-04-18 03:30:02,592 - gru_sac_predictor.src.data_loader - INFO - Identified 8 potential DB files: ['20250228.mktdata.ohlcv.db', '20250301.mktdata.ohlcv.db', '20250302.mktdata.ohlcv.db', '20250303.mktdata.ohlcv.db', '20250304.mktdata.ohlcv.db', '20250305.mktdata.ohlcv.db', '20250306.mktdata.ohlcv.db', '20250307.mktdata.ohlcv.db'] 2025-04-18 03:30:02,659 - gru_sac_predictor.src.data_loader - INFO - Combined data shape before final filtering/resampling: (9827, 5) 2025-04-18 03:30:02,659 - gru_sac_predictor.src.data_loader - INFO - Shape after final date filtering: (9827, 5) 2025-04-18 03:30:02,660 - gru_sac_predictor.src.data_loader - INFO - Successfully loaded and processed data for SOL-USDT. Final shape: (9827, 5) 2025-04-18 03:30:02,661 - root - INFO - Raw data loaded successfully: 9827 rows from 2025-03-01 00:00:00+00:00 to 2025-03-07 23:59:00+00:00 2025-04-18 03:30:02,662 - root - INFO - --- Stage: Engineering Features --- 2025-04-18 03:30:02,662 - gru_sac_predictor.src.feature_engineer - INFO - --- Adding Base Features --- 2025-04-18 03:30:02,662 - gru_sac_predictor.src.feature_engineer - INFO - Adding cyclical hour features (sin/cos)... 2025-04-18 03:30:02,664 - gru_sac_predictor.src.feature_engineer - INFO - Adding imbalance features... 2025-04-18 03:30:02,673 - gru_sac_predictor.src.feature_engineer - INFO - Successfully added imbalance features. 2025-04-18 03:30:02,673 - gru_sac_predictor.src.feature_engineer - INFO - Adding TA features... 2025-04-18 03:30:02,767 - gru_sac_predictor.src.feature_engineer - INFO - Successfully added TA features. 2025-04-18 03:30:02,767 - gru_sac_predictor.src.feature_engineer - INFO - Base feature engineering complete. DataFrame shape: (9827, 20) 2025-04-18 03:30:02,769 - root - INFO - Feature engineering complete. Shape: (9827, 20) 2025-04-18 03:30:02,769 - root - INFO - --- Stage: Defining Labels and Aligning --- 2025-04-18 03:30:02,772 - root - INFO - Dropped 5 rows due to NaN targets (horizon=5). 2025-04-18 03:30:02,773 - root - INFO - Labels (horizon=5) defined and aligned. Features shape: (9822, 20), Targets shape: (9822, 2) 2025-04-18 03:30:02,773 - root - INFO - --- Stage: Splitting Data --- 2025-04-18 03:30:02,774 - __main__ - INFO - Using split ratios: Train=0.60, Val=0.20, Test=0.20 2025-04-18 03:30:02,774 - root - INFO - Data split complete: 2025-04-18 03:30:02,774 - root - INFO - Train: X=(5893, 20), y=(5893, 2) (2025-03-01 00:00:00+00:00 to 2025-03-05 06:01:00+00:00) 2025-04-18 03:30:02,774 - root - INFO - Val: X=(1964, 20), y=(1964, 2) (2025-03-05 06:02:00+00:00 to 2025-03-06 14:55:00+00:00) 2025-04-18 03:30:02,774 - root - INFO - Test: X=(1965, 20), y=(1965, 2) (2025-03-06 14:56:00+00:00 to 2025-03-07 23:53:00+00:00) 2025-04-18 03:30:02,775 - root - INFO - --- Stage: Selecting and Pruning Features --- 2025-04-18 03:30:02,775 - gru_sac_predictor.src.feature_engineer - INFO - --- Selecting Features (LogReg L1 + VIF) --- 2025-04-18 03:30:02,775 - gru_sac_predictor.src.feature_engineer - INFO - Starting selection from 20 raw features. 2025-04-18 03:30:02,775 - gru_sac_predictor.src.feature_engineer - INFO - Performing Logistic Regression (L1, C=0.1) selection... 2025-04-18 03:30:04,604 - gru_sac_predictor.src.feature_engineer - INFO - Features selected by LogReg L1: ['open', 'high', 'low', 'close', 'volume', 'hour_sin', 'hour_cos', 'chaikin_AD_10', 'svi_10', 'gap_imbalance', 'return_1m', 'return_15m', 'return_60m', 'ATR_14', 'volatility_14d', 'EMA_10', 'EMA_50', 'MACD', 'MACD_signal', 'RSI_14'] 2025-04-18 03:30:04,604 - gru_sac_predictor.src.feature_engineer - INFO - Candidate whitelist after LogReg (20 features): ['ATR_14', 'EMA_10', 'EMA_50', 'MACD', 'MACD_signal', 'RSI_14', 'chaikin_AD_10', 'close', 'gap_imbalance', 'high', 'hour_cos', 'hour_sin', 'low', 'open', 'return_15m', 'return_1m', 'return_60m', 'svi_10', 'volatility_14d', 'volume'] 2025-04-18 03:30:04,605 - gru_sac_predictor.src.feature_engineer - INFO - Performing VIF filtering (threshold=10.0) on candidate features... 2025-04-18 03:30:04,723 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'low' due to high VIF (13101.36 > 10.0)... 2025-04-18 03:30:04,835 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'high' due to high VIF (12437.61 > 10.0)... 2025-04-18 03:30:04,936 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'EMA_10' due to high VIF (8173.76 > 10.0)... 2025-04-18 03:30:05,028 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'open' due to high VIF (2292.25 > 10.0)... 2025-04-18 03:30:05,109 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'close' due to high VIF (482.83 > 10.0)... 2025-04-18 03:30:05,187 - gru_sac_predictor.src.feature_engineer - INFO - Removing feature 'MACD' due to high VIF (71.12 > 10.0)... 2025-04-18 03:30:05,252 - gru_sac_predictor.src.feature_engineer - INFO - VIF filtering complete. Max VIF = 3.97 <= 10.0. 2025-04-18 03:30:05,254 - gru_sac_predictor.src.feature_engineer - INFO - Final whitelist after VIF filtering (14 features): ['ATR_14', 'EMA_50', 'MACD_signal', 'RSI_14', 'chaikin_AD_10', 'gap_imbalance', 'hour_cos', 'hour_sin', 'return_15m', 'return_1m', 'return_60m', 'svi_10', 'volatility_14d', 'volume'] 2025-04-18 03:30:05,255 - root - INFO - Saved final feature whitelist (14 features) to /home/yasha/develop/gru_sac_predictor/models/20250418_033002/final_whitelist_20250418_033002.json 2025-04-18 03:30:05,256 - root - INFO - Pruning feature sets using final whitelist: ['ATR_14', 'EMA_50', 'MACD_signal', 'RSI_14', 'chaikin_AD_10', 'gap_imbalance', 'hour_cos', 'hour_sin', 'return_15m', 'return_1m', 'return_60m', 'svi_10', 'volatility_14d', 'volume'] 2025-04-18 03:30:05,260 - root - INFO - Feature shapes after pruning: Train=(5893, 14), Val=(1964, 14), Test=(1965, 14) 2025-04-18 03:30:05,260 - root - INFO - --- Stage: Training or Loading GRU Model --- 2025-04-18 03:30:05,261 - root - INFO - Attempting to train a new GRU model for run 20250418_033002... 2025-04-18 03:30:05,261 - root - ERROR - Sequence data (train/val) not available for GRU training. Exiting.