Skip to content

DimensionlessDevelopments/Dimensionless-Quant-Finance-App-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dimensionless-Quant-Finance-App

A full-stack, multi-asset algorithmic trading research platform with predictive modeling, backtesting, and portfolio optimization.

πŸ“ˆ Quantitative Trading Platform

🧠 Overview

A full-stack, multi-asset algorithmic trading research platform with predictive modeling, backtesting, and portfolio optimization.

Current Status: βœ… Backend-Frontend Integration Complete | ⏳ Live Trading is reserved

Live Product: (https://algo.dimensionlessdevelopments.com)

🎯 Key Achievements

βœ… Production Deployment - Live
βœ… Multi-Asset Support - Stocks, Crypto, Forex, Indices
βœ… Advanced ML Models - ARIMA + GARCH predictive analytics
βœ… Regime-Adaptive Strategy - Dynamic strategy switching based on market conditions
βœ… Comprehensive Testing - 25+ integration tests, 100% core functionality coverage
βœ… Type-Safe Architecture - Full TypeScript + Pydantic validation

πŸš€ Quick Start

Prerequisites

  • Python 3.14+ with venv activated
  • Node.js 16+ and npm
  • Internet connection (for market data)

1. Start Backend

# Activate virtual environment
.\venv\Scripts\Activate.ps1

# Install dependencies (first time only)
pip install -r requirements.txt

# Start backend server
python start_backend.py

Backend runs on: http://localhost:8000

2. Start Frontend

# In a new terminal
cd front

# Install dependencies (first time only)
npm install

# Start development server
npm run dev

Frontend runs on: http://localhost:5173

3. Access Dashboard

Open browser to: http://localhost:5173


🧱 Architecture

Data Flow:

Market Data (yfinance) 
    ↓
Feature Engineering (Bollinger, %B, Volatility)
    ↓
Predictive Models (ARIMA/GARCH)
    ↓
Signal Generation (Hybrid Regime Strategy)
    ↓
Backtesting (Positions, Returns, Metrics)
    ↓
API Layer (FastAPI REST endpoints)
    ↓
Frontend Dashboard 

βš™οΈ Core Functionality

βœ… Fully Implemented

1. Data Ingestion

  • Historical data via yfinance
  • Multi-asset support (SPY, QQQ, BTC-USD, forex)
  • OHLCV data processing

2. Feature Engineering

  • Bollinger Bands (MA Β± 2Οƒ)
  • Percent B indicator (%B)
  • Rolling volatility
  • Log returns

3. Predictive Modeling

  • ARIMA β†’ Return forecasts
  • GARCH β†’ Volatility forecasts
  • Risk-adjusted score: predicted_return / predicted_volatility

4. Hybrid Signal Engine

  • Low Volatility Regime: Mean reversion using Bollinger Bands
  • High Volatility Regime: ARIMA/GARCH predictive signals
  • Adaptive strategy based on market conditions

5. Backtesting Engine

  • Realistic position sizing
  • Avoids look-ahead bias
  • Strategy vs. market comparison
  • Cumulative return tracking

6. Performance Analytics

  • Metrics: Total Return, CAGR, Sharpe Ratio, Max Drawdown, Win Rate, Profit Factor
  • Visualizations: Equity curve, drawdown chart
  • Regime Analysis: Volatility classification and history

7. Optimization Suite

  • Threshold optimization
  • Walk-forward analysis (train β†’ test β†’ roll)
  • Multi-parameter grid search

8. Portfolio Engine

  • Multi-asset combination
  • Equal-weight allocation
  • Time-series alignment
  • Missing data handling

9. API Layer (Backend)

  • FastAPI with auto-generated docs
  • 3 REST endpoints:
    • GET /api/dashboard?symbol={symbol} - Full dashboard data
    • GET /api/signals?symbol={symbol} - Recent signals
    • POST /api/backtest - Custom date range backtest
    • POST /api/optimize - Multi-parameter threshold optimization
    • POST /api/portfolio - Multi-asset portfolio analysis
    • POST /api/backtest-risk - Risk management with stop-loss/take-profit
  • Type-safe Pydantic models with validation
  • Production CORS with environment-based configuration
  • Health monitoring endpoint for uptime checks

10. Frontend Dashboard

  • React + TypeScript with Vite
  • Components:
    • Bollinger Band chart
    • Metrics panel (Sharpe, returns, drawdown)
    • Signal history
    • Equity curve
    • Volatility regime indicator
  • Real-time data from backend API
  • Error handling and retry logic

πŸ“‘ API Endpoints

GET /api/dashboard?symbol={symbol}

Returns comprehensive dashboard data:

{
  "symbol": "SPY",
  "lastUpdate": "2024-04-06T10:30:00",
  "bollinger": [...],
  "signals": [...],
  "metrics": {
    "totalReturn": 23.47,
    "sharpeRatio": 1.84,
    "maxDrawdown": -8.23,
    ...
  },
  "equity": [...],
  "regime": {...}
}

GET /api/signals?symbol={symbol}

Returns recent trading signals.

POST /api/backtest

Run backtest with custom date range:

{
  "symbol": "SPY",
  "start": "2020-01-01",
  "end": "2024-01-01"
}

API Docs: http://localhost:8000/docs


πŸ“‚ Project Structure

quant/
β”œβ”€β”€ backend/                 # Python backend
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ api/            # FastAPI routes
β”‚   β”‚   β”œβ”€β”€ backtest/       # Backtesting engine
β”‚   β”‚   β”œβ”€β”€ data/           # Data loading
β”‚   β”‚   β”œβ”€β”€ models/         # ARIMA/GARCH/Indicators
β”‚   β”‚   β”œβ”€β”€ optimization/   # Parameter optimization
β”‚   β”‚   β”œβ”€β”€ performance/    # Analytics
β”‚   β”‚   β”œβ”€β”€ portfolio/      # Multi-asset
β”‚   β”‚   └── strategy/       # Signal generation
β”‚   β”œβ”€β”€ test_.py           # Integration tests
β”‚   └── ...
β”œβ”€β”€ front/                   # React frontend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/     # UI components
β”‚   β”‚   β”œβ”€β”€ pages/          # Dashboard page
β”‚   β”‚   └── lib/            # API client
β”‚   └── ...
β”œβ”€β”€ scripts/                 # Development utilities
β”œβ”€β”€ start_backend.py        # Backend startup script
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ INTEGRATION_GUIDE.md    # Setup guide
└── README.md               # This file

πŸ§ͺ Testing

Run Backend Tests

python backend/test_portfolio.py
python backend/test_optimization.py
python backend/test_walkforward.py

Test API Endpoints

# Health check
curl http://localhost:8000/health

# Get dashboard
curl "http://localhost:8000/api/dashboard?symbol=SPY"

Test Frontend

  1. Start both backend and frontend
  2. Open http://localhost:5173
  3. Verify data loads (not mock data)
  4. Check browser console for errors

πŸ“š Documentation


πŸ”„ Workflow

  1. Data Pipeline

    • Fetch historical data
    • Calculate features
    • Run models
  2. Signal Generation

    • Analyze volatility regime
    • Generate hybrid signals
    • Apply entry/exit rules
  3. Backtesting

    • Simulate positions
    • Calculate returns
    • Compute metrics
  4. Visualization

    • Display in dashboard
    • Interactive charts
    • Performance analysis

🎯 Key Design Principles

  • Modular Architecture - Separable, testable components
  • Type Safety - Pydantic (backend) + TypeScript (frontend)
  • Separation of Concerns - Data/Models/Strategy/UI layers
  • Regime Awareness - Adaptive strategy based on market conditions
  • Research-First - Emphasis on backtesting before live trading

πŸ“ˆ Performance Notes

  • First request takes 5-10 seconds (ARIMA/GARCH fitting)
  • Default analysis: 2 years of daily data
  • Supports: Stocks (SPY), Crypto (BTC-USD), Forex (EURUSD=X)
  • Consider caching for production use

πŸ› οΈ Tech Stack

Backend:

  • FastAPI (REST API)
  • Pandas/NumPy (Data processing)
  • yfinance (Market data)
  • statsmodels (ARIMA)
  • arch (GARCH)
  • Pydantic (Data validation)

πŸ› Troubleshooting

Backend Won't Start

  • Ensure venv is activated
  • Install dependencies: pip install -r requirements.txt
  • Check port 8000 is available

Frontend Can't Connect

  • Verify backend is running: curl http://localhost:8000/health
  • Check CORS settings in backend/app/main.py
  • Clear browser cache

Slow Performance

  • First request is slow (model fitting)
  • Consider implementing caching
  • Reduce date range for testing

See INTEGRATION_GUIDE.md for more troubleshooting.


πŸ“ License

MIT License - See LICENSE file for details


🀝 Contributing

  1. Fork the repository
  2. Create feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open Pull Request

πŸ“ž Support

  • Check documentation in /docs folder
  • Review API docs at http://localhost:8000/docs
  • See troubleshooting in INTEGRATION_GUIDE.md

✨ Status Summary

What Works: βœ… Full-stack integration
βœ… Multi-asset backtesting
βœ… ARIMA/GARCH modeling
βœ… Hybrid regime strategy
βœ… Performance analytics
βœ… Interactive dashboard
βœ… REST API

What's Next: ⏳ Live trading infrastructure


Built with ❀️ for quantitative trading research

Dimensionless-quant


Contact

Made by Dimensionless Developments Head to our website https://www.dimensionlessdevelopments.com ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ Email: contact@dimensionlessdevelopments.com

About

A full-stack, multi-asset algorithmic trading research platform with predictive modeling, backtesting, and portfolio optimization.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages