Skip to content

aadityat23/ALPHAFORGEX

Repository files navigation

AlphaForgeX v3 — Automated Quant Intelligence Pipeline

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.

🎯 Features

  • 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

📋 Prerequisites

  • Python 3.8+
  • pip (Python package manager)
  • Git (for version control)
  • Windows/macOS/Linux

🚀 Quick Start

1. Installation

Clone the repository:

git clone https://github.com/aadityat23/ALPHAFORGEX.git
cd ALPHAFORGEX

Install dependencies:

pip install -r requirements.txt

2. Run the Main Pipeline

Default mode (analyzes 50 stocks):

python main.py

Custom universe:

python main.py --universe SP50

Custom tickers:

python main.py --tickers AAPL,MSFT,GOOGL

3. Launch Interactive Dashboard

streamlit run dashboard/app.py

The 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

📊 Pipeline Overview

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)

📁 Project Structure

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

🎨 Key Components

Data Pipeline

  • Auto-Download: Fetches data from yfinance
  • Caching: Local CSV storage for fast access
  • Preprocessing: Alignment and normalization

Feature Engineering

14 scale-invariant signals including:

  • Momentum indicators
  • Volatility metrics
  • Trend-following signals
  • Mean reversion indicators

ML Model

  • Algorithm: Random Forest / Linear Regression
  • Training: Walk-forward expanding window
  • Output: Probability scores for each signal

Backtesting

  • Expanding Window: Realistic forward-testing
  • Transaction Costs: Slippage and commission modeling
  • Performance Metrics: Sharpe ratio, max drawdown, win rate

Portfolio Optimization

  • Weighting: Inverse-volatility × confidence scores
  • Diversification: Cross-sectional position sizing
  • Risk Management: Volatility targeting

📈 Output Files

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

⚙️ Configuration

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

🔧 Dependencies

  • pandas: Data manipulation
  • numpy: Numerical computing
  • yfinance: Stock data fetching
  • scikit-learn: Machine learning
  • matplotlib: Plotting
  • streamlit: Interactive dashboard

📊 Typical Workflow

  1. Development: Modify features in pipeline/feature_engine.py
  2. Testing: Run python main.py to test pipeline
  3. Analysis: Launch dashboard to visualize results
  4. Refinement: Adjust model parameters and re-run
  5. Deployment: Use generated signals for trading

🐛 Troubleshooting

Issue: Data download fails

  • Solution: Check internet connection, ensure yfinance is installed

Issue: Dashboard won't start

  • Solution: Run pip install streamlit and 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

📝 Example Output

╔══════════════════════════════════════════════════════════════════╗
║                     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
╚══════════════════════════════════════════════════════════════════╝

🚀 Deployment

To use live trading signals:

  1. Run python main.py regularly (daily/weekly)
  2. Check output/current_signals.csv for recommendations
  3. Use output/portfolio_weights.csv for position sizing
  4. Execute trades through your broker

📚 Learning Resources

  • Quantitative Trading: Understand ML in finance
  • Feature Engineering: Domain-specific signal creation
  • Walk-Forward Analysis: Realistic backtesting methodology
  • Portfolio Optimization: Risk-adjusted weighting

📄 License

This project is provided as-is for educational and research purposes.

👤 Author

Created as an advanced quantitative trading system.

🤝 Contributing

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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages