| { | |
| "feature_count": 17, | |
| "feature_names": [ | |
| "ret_1", | |
| "ret_3", | |
| "ret_5", | |
| "ret_accel", | |
| "close_pos", | |
| "vol_20", | |
| "high_vol", | |
| "low_vol", | |
| "rsi_oversold", | |
| "rsi_neutral", | |
| "macd_positive", | |
| "london_open", | |
| "london_close", | |
| "nyse_open", | |
| "hour", | |
| "vwap_deviation", | |
| "atr_stops" | |
| ], | |
| "feature_descriptions": { | |
| "ret_1": "Lag-1 return, single bar momentum", | |
| "ret_3": "3-bar cumulative return, medium-term trend", | |
| "ret_5": "5-bar cumulative return, regime identification", | |
| "ret_accel": "Return acceleration, momentum change detection", | |
| "close_pos": "Close position within 20-bar range (0-1)", | |
| "vol_20": "20-bar volume mean, baseline", | |
| "high_vol": "Volume spike flag (binary)", | |
| "low_vol": "Volume drought flag (binary)", | |
| "rsi_oversold": "RSI < 30 flag (binary)", | |
| "rsi_neutral": "30 <= RSI <= 70 flag (binary)", | |
| "macd_positive": "MACD > 0 flag (binary)", | |
| "london_open": "London 8:00 UTC open flag (binary)", | |
| "london_close": "London 16:30 UTC close flag (binary)", | |
| "nyse_open": "NYSE 13:30 UTC open flag (binary)", | |
| "hour": "Hour of day UTC (0-23)", | |
| "vwap_deviation": "Percent deviation from VWAP", | |
| "atr_stops": "14-period ATR * 1.0x multiplier" | |
| }, | |
| "feature_types": { | |
| "continuous": ["ret_1", "ret_3", "ret_5", "ret_accel", "close_pos", "vol_20", "hour", "vwap_deviation", "atr_stops"], | |
| "binary": ["high_vol", "low_vol", "rsi_oversold", "rsi_neutral", "macd_positive", "london_open", "london_close", "nyse_open"] | |
| }, | |
| "feature_importance": { | |
| "ret_1": 0.0493, | |
| "ret_3": 0.0495, | |
| "ret_5": 0.0496, | |
| "ret_accel": 0.0499, | |
| "close_pos": 0.0482, | |
| "vol_20": 0.0508, | |
| "high_vol": 0.0474, | |
| "low_vol": 0.0480, | |
| "rsi_oversold": 0.0507, | |
| "rsi_neutral": 0.0514, | |
| "macd_positive": 0.0477, | |
| "london_open": 0.0508, | |
| "london_close": 0.0470, | |
| "nyse_open": 0.0502, | |
| "hour": 0.0491, | |
| "vwap_deviation": 0.04, | |
| "atr_stops": 0.04 | |
| }, | |
| "feature_order_critical": "YES - must match order in training", | |
| "normalization_required": "YES - use provided scaler.pkl", | |
| "missing_value_handling": "Forward fill or drop first 50 rows", | |
| "expected_value_ranges": { | |
| "ret_1": [-0.05, 0.05], | |
| "ret_3": [-0.10, 0.10], | |
| "ret_5": [-0.15, 0.15], | |
| "ret_accel": [-0.10, 0.10], | |
| "close_pos": [0.0, 1.0], | |
| "vol_20": [0, "variable"], | |
| "high_vol": [0, 1], | |
| "low_vol": [0, 1], | |
| "rsi_oversold": [0, 1], | |
| "rsi_neutral": [0, 1], | |
| "macd_positive": [0, 1], | |
| "london_open": [0, 1], | |
| "london_close": [0, 1], | |
| "nyse_open": [0, 1], | |
| "hour": [0, 23], | |
| "vwap_deviation": [-5, 5], | |
| "atr_stops": [0, "variable"] | |
| } | |
| } | |