AlphaForgeX is a sophisticated quantitative trading system that automates the entire workflow from data collection to portfolio management. It combines machine learning, feature engineering, and walk-forward backtesting to generate trading signals and portfolio weights.
- Automated Data Pipeline: Auto-download and cache stock data for 50+ companies
- Feature Engineering: 14 scale-invariant technical signals (momentum, volatility, trend)
- ML-Driven Signals: Cross-sectional ranking system (LONG/HOLD/SHORT)
- Walk-Forward Backtesting: Expanding window validation with transaction costs
- Portfolio Optimization: Inverse-volatility weighting with confidence scoring
- Interactive Dashboard: Bloomberg-style UI with comprehensive analytics
- Real-Time Analysis: Live signal generation and performance tracking
- Signal Diagnostics: Quality analysis and predictive power assessment
- Python 3.8+
- pip (Python package manager)
- Git (for version control)
- Windows/macOS/Linux
Clone the repository:
git clone https://github.com/aadityat23/ALPHAFORGEX.git
cd ALPHAFORGEXInstall dependencies:
pip install -r requirements.txtDefault mode (analyzes 50 stocks):
python main.pyCustom universe:
python main.py --universe SP50Custom tickers:
python main.py --tickers AAPL,MSFT,GOOGLstreamlit run dashboard/app.pyThe dashboard opens at http://localhost:8501 with:
- Overview: Portfolio summary and key metrics
- Performance: Returns, Sharpe ratio, drawdown analysis
- Risk Engine: Volatility, correlation, VaR metrics
- Alpha Signals: Real-time trading signals
- Screener: Stock filtering and ranking
- Forecasting: Price prediction and probability analysis
- Reports: Detailed performance and trade analysis
- Balance Sheet: Financial metrics and fundamentals
1. Load Data
↓
2. Engineer Features (14 signals)
↓
3. Create Targets (Cross-sectional ranking)
↓
4. Walk-Forward Backtest (Expanding window)
↓
5. Signal Diagnostics (Quality analysis)
↓
6. Train Final Model (All data)
↓
7. Generate Live Signals
↓
8. Portfolio Optimization (Inverse-vol weights)
↓
9. Performance Report (Sharpe, drawdown, win rate)
AlphaForgeX/
├── main.py # Main entry point
├── requirements.txt # Python dependencies
├── README.md # This file
├── pipeline/ # Core pipeline modules
│ ├── __init__.py
│ ├── data_loader.py # Data loading & caching
│ ├── feature_engine.py # Feature engineering (14 signals)
│ ├── target_engine.py # Target/label creation
│ ├── model_engine.py # ML model training & prediction
│ ├── backtest_engine.py # Walk-forward backtesting
│ ├── portfolio_engine.py # Portfolio optimization
│ ├── diagnostics.py # Signal quality analysis
│ └── universe.py # Stock universe definitions
├── dashboard/ # Streamlit interactive UI
│ └── app.py # Dashboard application
├── data/ # Data directory
│ ├── features/ # Pre-computed features (per-ticker CSVs)
│ ├── AAPL.csv, AMZN.csv, ... # Raw price data
│ └── returns.csv # Returns data
├── backtesting/ # Backtesting utilities
│ └── backtest.py # Backtest execution
├── data_pipeline/ # Data fetching
│ └── fetch_data.py # Data acquisition script
├── feature_engine/ # Feature computation
│ └── features.py # Feature definitions
├── models/ # Model training
│ └── train_model.py # Model training script
├── portfolio_engine/ # Portfolio management
│ └── optimizer.py # Portfolio optimizer
├── output/ # Output results
│ ├── backtest_trades.csv # Backtest trades
│ ├── current_signals.csv # Live signals
│ ├── performance_metrics.csv # Metrics
│ └── portfolio_weights.csv # Portfolio weights
└── utils/ # Utilities
- Auto-Download: Fetches data from yfinance
- Caching: Local CSV storage for fast access
- Preprocessing: Alignment and normalization
14 scale-invariant signals including:
- Momentum indicators
- Volatility metrics
- Trend-following signals
- Mean reversion indicators
- Algorithm: Random Forest / Linear Regression
- Training: Walk-forward expanding window
- Output: Probability scores for each signal
- Expanding Window: Realistic forward-testing
- Transaction Costs: Slippage and commission modeling
- Performance Metrics: Sharpe ratio, max drawdown, win rate
- Weighting: Inverse-volatility × confidence scores
- Diversification: Cross-sectional position sizing
- Risk Management: Volatility targeting
After running python main.py, check the output/ folder:
- backtest_trades.csv: All trades from walk-forward backtest
- current_signals.csv: Latest trading signals for all stocks
- performance_metrics.csv: Strategy performance summary
- portfolio_weights.csv: Recommended portfolio weights
Edit main.py to customize:
FEATURE_DIR = "data/features/" # Feature data location
FORWARD_DAYS = 5 # Prediction horizon (days)
LONG_PCT = 0.25 # Top % → LONG (25% = ~12 stocks)
SHORT_PCT = 0.25 # Bottom % → SHORT- pandas: Data manipulation
- numpy: Numerical computing
- yfinance: Stock data fetching
- scikit-learn: Machine learning
- matplotlib: Plotting
- streamlit: Interactive dashboard
- Development: Modify features in
pipeline/feature_engine.py - Testing: Run
python main.pyto test pipeline - Analysis: Launch dashboard to visualize results
- Refinement: Adjust model parameters and re-run
- Deployment: Use generated signals for trading
Issue: Data download fails
- Solution: Check internet connection, ensure yfinance is installed
Issue: Dashboard won't start
- Solution: Run
pip install streamlitand ensure port 8501 is available
Issue: Features not computing
- Solution: Verify
data/features/directory exists and contains CSV files
Issue: Model training takes too long
- Solution: Reduce stock universe or adjust backtest window in main.py
╔══════════════════════════════════════════════════════════════════╗
║ AlphaForgeX Pipeline Complete ║
├──────────────────────────────────────────────────────────────────┤
║ Stocks Analyzed: 50
║ Features Engineered: 14
║ Walk-Forward Periods: 12
║ Model Accuracy: 58.3%
║ Sharpe Ratio: 1.45
║ Max Drawdown: -12.3%
║ Win Rate: 55.2%
║ Recommended Actions: LONG: 12, HOLD: 26, SHORT: 12
╚══════════════════════════════════════════════════════════════════╝
To use live trading signals:
- Run
python main.pyregularly (daily/weekly) - Check
output/current_signals.csvfor recommendations - Use
output/portfolio_weights.csvfor position sizing - Execute trades through your broker
- Quantitative Trading: Understand ML in finance
- Feature Engineering: Domain-specific signal creation
- Walk-Forward Analysis: Realistic backtesting methodology
- Portfolio Optimization: Risk-adjusted weighting
This project is provided as-is for educational and research purposes.
Created as an advanced quantitative trading system.
Contributions welcome! Areas for enhancement:
- Additional feature indicators
- Alternative ML algorithms
- Advanced portfolio constraints
- Real-time execution integration
- Risk factor analysis
Disclaimer: This system is for educational purposes. Past performance does not guarantee future results. Use at your own risk and always perform thorough backtesting before live trading.