A TypeScript implementation of the Solana price prediction model with enhanced stacking, walk-forward validation, and hybrid windows.
- ✅ Enhanced Stacking Method: Combines multiple base models with a neural network meta-learner
- ✅ Walk-Forward Validation: Tests models on multiple time periods without data leakage
- ✅ Automatic Feature Engineering: Creates technical indicators, lagged features, and financial metrics
- ✅ Hybrid Windows: Rolling window (short-term) + Expanding window (long-term patterns)
- ✅ TEMPO-Based Improvements (NEW):
- STL Decomposition: Separates time series into Trend, Seasonal, and Residual components
- Component-Specific Models: Separate models for each component with additive combination
- Soft Prompts: Learnable prompts for component-specific guidance
- Time Series Patching: Efficient patch-based processing
- ✅ Modular Architecture: Clean separation of concerns
meth/
├── src/
│ ├── data/
│ │ └── DataLoader.ts # Data loading and preprocessing
│ ├── features/
│ │ └── FeatureEngineer.ts # Automatic feature engineering
│ ├── models/
│ │ ├── BaseModel.ts # Base model interface and implementations
│ │ └── EnsembleStacker.ts # Enhanced stacking ensemble
│ ├── validation/
│ │ └── WalkForwardValidator.ts # Walk-forward validation
│ ├── training/
│ │ └── Trainer.ts # Main training module
│ ├── utils/
│ │ └── RollingWindow.ts # Rolling window utilities
│ └── scripts/
│ ├── train.ts # Training script
│ └── predict.ts # Prediction script
├── package.json
├── tsconfig.json
├── merged_dataset.csv # Required data file
└── README.md
npm install
npm run build-
Install dependencies:
npm install npm run build
-
Train the model:
# Standard training npm run train # Enhanced training (recommended) npm run train -- --enhanced # Return-based (best for volatile crypto) npm run train -- --enhanced --returns
-
View results:
- Check console output for metrics
- Open
validation_results.htmlfor visualizations
📖 See USER_GUIDE.md for complete step-by-step guide!
Standard Training (Original Method):
npm run train- Uses ensemble of Neural Network + Linear Regression
- Walk-forward validation
- Good baseline for comparison
Enhanced Training (TEMPO-based):
npm run train -- --enhanced- STL decomposition (Trend, Seasonal, Residual)
- Historical decomposition patterns as features
- More sophisticated feature engineering
Return-Based Training (Recommended for Crypto):
npm run train -- --enhanced --returns- Predicts returns (percentage change) instead of prices
- More stable for volatile assets
- Often more accurate:
predicted_price = current_price * (1 + predicted_return)
See TEMPO_IMPROVEMENTS.md for technical details.
npm run predict
# or
node dist/scripts/predict.jsThe stacking ensemble uses:
- Base Models: Multiple models trained on different windows (rolling + expanding)
- Meta-Learner: Neural network that learns to combine base model predictions
- Out-of-Fold Predictions: Prevents overfitting by using validation set predictions
- Tests models on multiple time periods
- No data leakage (future data never used for training)
- Provides realistic performance estimates
- Rolling Window: Last N days (captures short-term trends)
- Expanding Window: All historical data (captures long-term patterns)
- Both windows are used to train separate models, then combined via stacking
Creates:
- Technical indicators (RSI, MACD, Bollinger Bands)
- Volatility and Sharpe ratio
- Moving averages
- Lagged features
- Momentum indicators
- Cross-asset ratios
- Neural Network: Deep learning model with dropout and regularization
- Linear Regression: Simple but effective baseline model
Edit src/scripts/train.ts to adjust training parameters:
rollingWindow: Size of rolling window (default: 365 days)stepSize: Step size for walk-forward validation (default: 30 days)minTrainSize: Minimum training set size (default: 180 days)testSize: Percentage of data for testing (default: 0.2)
This is a TypeScript implementation that demonstrates the architecture. For production use, you may want to:
- Add model serialization/deserialization
- Implement more sophisticated base models
- Add hyperparameter tuning
- Implement real-time prediction API
- Add comprehensive error handling
MIT