QuantsLab ๐
October 15, 2025 ยท View on GitHub
Python framework for quantitative trading research with Hummingbot. Built for data collection, backtesting, strategy development, and automated deployment.
Quick Start
Installation
git clone https://github.com/hummingbot/quants-lab.git
cd quants-lab
make install
The installer sets up:
- Conda environment (Python 3.12)
- All dependencies
- MongoDB database
- Configuration files
Deploy a Recurring Task
# 1. Activate environment
conda activate quants-lab
# 2. Start database
make run-db
# 3. Run tasks (Docker - recommended for production)
make run-tasks config=tf_pipeline.yml
# 4. View logs and monitor
make logs-tasks
make ps-tasks
# 5. Stop when done
make stop-tasks
Local development mode:
make run-tasks config=tf_pipeline.yml source=1
Key Commands
Type make or make help to see all commands.
Installation:
make install- Full installationmake build- Build Docker imagemake uninstall- Remove environment
Database:
make run-db- Start MongoDBmake stop-db- Stop MongoDB- Mongo Express UI: http://localhost:28081 (admin/changeme)
Tasks:
make run-tasks config=FILE.yml- Run continuously (Docker)make run-tasks config=FILE.yml source=1- Run locallymake trigger-task task=NAME config=FILE.yml- Run oncemake logs-tasks- View logsmake stop-tasks- Stop all tasksmake ps-tasks- List running tasks
Configuration:
make list-tasks config=FILE.yml- List available tasksmake validate-config config=FILE.yml- Validate config
Architecture
quants-lab/
โโโ core/ # Reusable framework
โ โโโ backtesting/ # Backtesting engine + optimizer
โ โโโ data_sources/ # Market data integrations (CLOB, AMM, APIs)
โ โโโ features/ # Feature engineering & signals
โ โโโ tasks/ # Task orchestration system
โโโ app/ # Application layer
โ โโโ tasks/ # Task implementations
โ โโโ data/ # Application data
โโโ controllers/ # Trading strategies
โโโ config/ # Task configurations (YAML)
โโโ research_notebooks/ # Jupyter notebooks
โโโ cli.py # Command-line interface
Configuration Files
Task configurations are YAML files in config/:
tasks:
data_collection:
enabled: true
task_class: app.tasks.notebook.notebook_task.NotebookTask
schedule:
type: interval
hours: 6
config:
notebooks:
- data_collection/download_candles_all_pairs.ipynb
- feature_engineering/trend_follower_grid.ipynb
output_dir: app/outputs/cohort-12
Development
# Activate environment
conda activate quants-lab
# Run Jupyter for research
jupyter lab
# List available tasks
make list-tasks config=tf_pipeline.yml
# Format code
black --line-length 130 .
isort --profile black --line-length 130 .
Database Access
- MongoDB:
mongodb://admin:admin@localhost:27017/quants_lab - Mongo Express UI: http://localhost:28081 (admin/changeme)
- Config: All settings in
.envfile
Data Sources
- CLOB: Order books, trades, candles, funding rates
- AMM: DEX liquidity and pool data
- GeckoTerminal: Multi-network OHLCV data
- CoinGecko: Market data and stats
Troubleshooting
Database connection issues:
make run-db
docker ps # Verify containers running
Task failures:
make logs-tasks # View logs
make validate-config config=YOUR_CONFIG.yml
Port conflicts:
Edit docker-compose-db.yml if port 27017 or 28081 are in use.
Support
- ๐ Documentation: See
CLAUDE.mdfor dev guidelines - ๐ Issues: GitHub issues
- ๐ก Contributing: Fork and submit PRs
Happy Trading! ๐๐