QuantDinger
AI-driven, local-first quantitative trading platform for research, backtesting and live execution. Python-native, privacy-first, open source.
Install / Use
/learn @brokermr810/QuantDingerREADME
<a href="https://ai.quantdinger.com"><strong>🌐 Live Demo</strong></a> · <a href="https://youtu.be/HPTVpqL7knM"><strong>📺 Video</strong></a> · <a href="https://www.quantdinger.com"><strong>💬 Community</strong></a> · <a href="#-quick-start-2-minutes"><strong>🚀 Quick Start</strong></a>
</p> <p> <strong>7 AI Agents · Python Strategies · 10+ Exchanges · Prediction Markets · Your Server, Your Keys</strong> </p> <p> <i>Describe your trading idea in natural language → AI writes the Python strategy → Backtest → Live trade.<br/> Zero coding required. Self-hosted — your API keys and strategies never leave your machine.</i> </p> <p> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square&logo=apache" alt="License"></a> <img src="https://img.shields.io/badge/Version-2.2.3-orange?style=flat-square" alt="Version"> <img src="https://img.shields.io/badge/Python-3.10+-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python"> <img src="https://img.shields.io/badge/Docker-One%20Click-2496ED?style=flat-square&logo=docker&logoColor=white" alt="Docker"> <img src="https://img.shields.io/badge/Vibe%20Coding-Ready-FF6B6B?style=flat-square&logo=sparkles&logoColor=white" alt="Vibe Coding"> <img src="https://img.shields.io/github/stars/brokermr810/QuantDinger?style=flat-square&logo=github" alt="Stars"> </p> <p> <a href="https://t.me/quantdinger"><img src="https://img.shields.io/badge/Telegram-Group-26A5E4?style=for-the-badge&logo=telegram" alt="Telegram"></a> <a href="https://discord.com/invite/tyx5B6TChr"><img src="https://img.shields.io/badge/Discord-Server-5865F2?style=for-the-badge&logo=discord" alt="Discord"></a> <a href="https://x.com/quantdinger_en"><img src="https://img.shields.io/badge/X-Follow-000000?style=for-the-badge&logo=x" alt="X"></a> </p><sub>🇺🇸 <a href="README.md">English</a> · 🇨🇳 <a href="docs/README_CN.md">简体中文</a> · 🇹🇼 繁體中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇩🇪 Deutsch · 🇫🇷 Français · 🇹🇭 ไทย · 🇻🇳 Tiếng Việt · 🇸🇦 العربية</sub>
</div>📑 Table of Contents
- 🚀 Quick Start (2 Minutes)
- 🎯 Why QuantDinger?
- 📸 Visual Tour
- ✨ Key Features
- 🔌 Supported Exchanges & Brokers
- 🏗️ Architecture & Configuration
- 📚 Documentation Index
- 💼 License & Commercial
- 🤝 Community & Support
🚀 Quick Start (2 Minutes)
Only need: Docker installed. Nothing else.
# 1. Clone
git clone https://github.com/brokermr810/QuantDinger.git
cd QuantDinger
# 2. Copy backend config
cp backend_api_python/env.example backend_api_python/.env
# 3. Generate and write a secure SECRET_KEY
./scripts/generate-secret-key.sh
# 4. Launch!
docker-compose up -d --build
Linux/macOS:
- Copy backend config:
cp backend_api_python/env.example backend_api_python/.env- Need more knobs? Scroll to the lower "Advanced / rarely changed" section inside:
backend_api_python/env.example- Optional: if Docker Hub is slow/unreachable in your network, copy root Docker config:
cp .env.example .env- Generate and write
SECRET_KEY:./scripts/generate-secret-key.sh- Launch:
docker-compose up -d --build
Windows PowerShell:
- Copy backend config:
Copy-Item backend_api_python\env.example -Destination backend_api_python\.env- Need more knobs? Scroll to the lower "Advanced / rarely changed" section inside:
backend_api_python\env.example- Optional: if Docker Hub is slow/unreachable in your network, copy root Docker config:
Copy-Item .env.example -Destination .env- Generate and write
SECRET_KEY:$key = py -c "import secrets; print(secrets.token_hex(32))"(Get-Content backend_api_python\.env) -replace '^SECRET_KEY=.*$', "SECRET_KEY=$key" | Set-Content backend_api_python\.env -Encoding UTF8- Launch:
docker-compose up -d --build
⚠️ Security Note: The container will NOT start if
SECRET_KEYis using the default value. This prevents insecure deployments.
🎉 Done! Open http://localhost:8888 | Login: quantdinger / 123456
# Required — Change for production!
ADMIN_USER=quantdinger
ADMIN_PASSWORD=your_secure_password
SECRET_KEY=your_random_secret_key # ⚠️ MUST change! Generate with: python3 -c "import secrets; print(secrets.token_hex(32))"
# Optional — Enable AI features (pick one)
OPENROUTER_API_KEY=your_key # Recommended: 100+ models
OPENAI_API_KEY=your_key # GPT-4o
DEEPSEEK_API_KEY=your_key # Cost-effective
GOOGLE_GEMINI_API_KEY=your_key # Gemini
</details>
<details>
<summary><b>🔐 Generate SECRET_KEY (Required for Docker)</b></summary>
Before starting Docker, you MUST set a secure SECRET_KEY:
# Option 1: Use helper script (Linux/Mac)
./scripts/generate-secret-key.sh
# Option 2: Use helper script (Windows PowerShell)
.\scripts\generate-secret-key.ps1
# Option 3: Manual generation
python3 -c "import secrets; print(secrets.token_hex(32))"
# Then edit backend_api_python/.env and replace SECRET_KEY value
⚠️ The container will NOT start if SECRET_KEY is using the default value!
</details> <details> <summary><b>🔧 Common Docker Commands</b></summary>docker-compose ps # View service status
docker-compose logs -f backend # View backend logs (real-time)
docker-compose restart backend # Restart backend only
docker-compose up -d --build # Rebuild & restart all
docker-compose down # Stop all services
Update to latest version:
git pull && docker-compose up -d --build
Backup & Restore database:
docker exec quantdinger-db pg_dump -U quantdinger quantdinger > backup.sql
cat backup.sql | docker exec -i quantdinger-db psql -U quantdinger quantdinger
Custom port — create .env in project root:
FRONTEND_PORT=3000 # Default: 8888
BACKEND_PORT=127.0.0.1:5001 # Default: 5000
Alternative image sources — Default uses Docker Hub. If pulling base images fails in your region/network, copy .env.example to .env and change one line:
IMAGE_PREFIX=docker.m.daocloud.io/library/
Other common choices:
IMAGE_PREFIX=
IMAGE_PREFIX=docker.xuanyuan.me/library/
Docker troubleshooting
1. Image source switching is controlled by the project-root `.env`, not `backend_api_python/.env`.
2. The open-source repo ships prebuilt frontend files in `frontend/dist`, so frontend deployment does not require Node.js.
3. On Windows, if backend logs show:
exec /usr/local/bin/docker-entrypoint.sh: no such file or directory
it is usually caused by shell/line-ending compatibility in the image layer. Rebuild the backend image with:
docker-compose build --no-cache backend
4. If frontend logs show:
host not found in upstream "backend"
it usually means the backend container failed first. Fix backend, then restart frontend:
docker-compose restart frontend
5. If frontend build fails with:
COPY frontend/dist ... not found
check `.dockerignore` and make sure `frontend/dist` is NOT excluded from the Docker build context.
6. If saving settings from the admin panel fails with:
Read-only file system: '/app/.env'
make sure `backend_api_python/.env` is mounted read-write in `docker-compose.yml`.
7. For Docker deployments, a local proxy must use `host.docker.internal`, not `127.0.0.1`.
Example:
PROXY_URL=socks5h://host.docker.internal:10808
8. If exchange logs say a symbol is "not found" after proxy/network fixes, it may be a market-symbol mapping issue
on that exchange (for example, renamed tokens), not a general network failure.
</details>
🎯 Why QuantDinger?
Vibe Coding for Trading — Describe your trading idea in plain English (or any language). AI writes the Python strategy, backtests it, and deploys it to live markets. No manual coding. No SaaS lock-in. Everything runs on your own server.
| | |
|---|---|
| 🎵 Vibe Coding | Describe ideas in natural language → AI generates production-ready Python strategies |
| 🔒 100% Self-Hosted | API keys & strategies never leave your server — privacy by design |
| 🤖 7 AI Agents | Multi-agent research team: parallel analysis → debate → trade decision |
| 🐍 Python-Native | Full ecosystem (Pandas, NumPy, TA-Lib, scikit-learn) — no proprietary language limits |
| 📊 Professional Charts | K-line charts with Python indicators, real-time visualization |
| 🌍 Crypto + Stocks + Forex | 10+ exchanges, IBKR, MT5 — all in one platform |
| 📊 Prediction Markets | On-demand AI analysis for Polymarket — probability divergence, opportunity scoring |
| 💰 Monetization-Ready | Membership, credits, USDT on-chain payment — built-in |
| ⚡ 2-Minute Deploy | docker-compose up -d — production-ready, zero build |
