ML-powered stock signal backtesting platform.
SignalBench/
├── backend/ # Backend service
│ ├── app/ # FastAPI application
│ │ ├── main.py # Main application entry point
│ │ ├── ml/ # ML models and data fetching
│ │ │ └── data.py
│ │ ├── models.py # Database models
│ │ └── config.py # Configuration
│ ├── requirements.txt # Python dependencies
│ └── Dockerfile # Backend container
├── frontend/ # Frontend application
├── scripts/ # Utility scripts
├── docker-compose.yml # Full stack orchestration
└── README.md
- Install dependencies:
cd backend
pip install -r requirements.txt- Run the backend:
cd backend
YF_USE_CURL_CFFI=1 uvicorn app.main:app --reload --port 8000- Build and run all services:
docker-compose up --build- Access the application:
- Backend API: http://localhost:8000
- Frontend: http://localhost:5173
- PostgreSQL: localhost:5432
- Redis: localhost:6379
Connect to PostgreSQL:
docker-compose exec postgres psql -U app -d signalbenchView tables:
\dtOnce running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
YF_USE_CURL_CFFI=1- Required for yfinance to work properlyDATABASE_URL- PostgreSQL connection stringREDIS_URL- Redis connection string