SkillAgentSearch skills...

QuantDinger

Open-source AI Trading OS, agent trading, and vibe trading, with Jev System One integration. Research, build Python strategies, backtest, and paper/live trade across crypto, stocks, and forex. Launch your own multi-tenant trading SaaS with built-in user management, billing, payments, and settlement.

Install / Use

claude mcp add OpenByteInc -- npx -y github:OpenByteInc/QuantDinger

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

97/100

Supported Platforms

Claude Code
Claude Desktop
<div align="center"> <a href="https://github.com/OpenByteInc/QuantDinger"> <img src="docs/screenshots/logo.jpg" alt="QuantDinger logo" width="180" height="180"> </a> <h1>QuantDinger</h1> <p><strong>Open-source AI Trading OS</strong></p> <p>Turn trading ideas into Python strategies, backtests, paper trading, live execution, and monitoring — all in one self-hosted stack.</p> <p><strong>QuantDinger is a product of Open Byte Inc.</strong></p> <p><em>AI research → Strategy code → Backtest → Paper/Live execution → Monitoring</em></p> <p> <a href="README.md"><strong>English</strong></a> · <a href="docs/README_CN.md"><strong>简体中文</strong></a> · <a href="docs/api/README.md"><strong>API</strong></a> · <a href="docs/agent/README.md"><strong>AI Agents & MCP</strong></a> </p> <p> <a href="https://ai.quantdinger.com"><strong>Live App</strong></a> · <a href="https://www.quantdinger.com"><strong>Website</strong></a> · <a href="https://www.youtube.com/watch?v=tNAZ9uMiUUw"><strong>Video Demo</strong></a> · <a href="mailto:support@quantdinger.com"><strong>Official Support Email</strong></a> </p> <p> <a href="https://t.me/quantdinger"><img src="https://img.shields.io/badge/Telegram-Join-26A5E4?style=flat-square&logo=telegram&logoColor=white" alt="Telegram"></a> <a href="https://discord.com/invite/tyx5B6TChr"><img src="https://img.shields.io/badge/Discord-Server-5865F2?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a> <a href="https://youtube.com/@quantdinger"><img src="https://img.shields.io/badge/YouTube-%40quantdinger-FF0000?style=flat-square&logo=youtube&logoColor=white" alt="YouTube"></a> <a href="https://x.com/QuantDinger_EN"><img src="docs/badges/x-quantdinger.svg" alt="X @QuantDinger_EN"></a> </p> <p> <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square" alt="Apache 2.0"></a> <img src="docs/badges/python-3.12.svg" alt="Python 3.12"> <img src="https://img.shields.io/badge/PostgreSQL-18-4169E1?style=flat-square&logo=postgresql&logoColor=white" alt="PostgreSQL 18"> <img src="https://img.shields.io/badge/Redis-8-DC382D?style=flat-square&logo=redis&logoColor=white" alt="Redis 8"> <img src="docs/badges/docker-compose.svg" alt="Docker Compose"> <a href="https://github.com/OpenByteInc/QuantDinger/releases/latest"><img src="docs/badges/latest-release.svg" alt="Latest release"></a> </p> <p><sub>SUPPORTED BY</sub></p> <p> <a href="https://www.atlascloud.ai/?utm_source=github&utm_medium=link&utm_campaign=quantdinger" title="Atlas Cloud — AI inference sponsor"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://www.atlascloud.ai/logo-white.svg"> <img src="https://www.atlascloud.ai/logo.svg" alt="Atlas Cloud" width="142"> </picture> </a> &nbsp;&nbsp;&nbsp;&nbsp; <a href="https://aws.amazon.com/" title="Amazon Web Services — cloud infrastructure sponsor"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://a0.awsstatic.com/libra-css/images/logos/aws_smile-header-desktop-en-white_59x35.png"> <img src="https://upload.wikimedia.org/wikipedia/commons/9/93/Amazon_Web_Services_Logo.svg" alt="Amazon Web Services" width="70"> </picture> </a> </p> </div>

QuantDinger can submit real orders when live trading is explicitly enabled. Start with paper trading, use restricted API keys, and review the risk and compliance requirements for your jurisdiction. This project does not provide investment advice.

What QuantDinger is

QuantDinger is an open-source AI Trading OS for independent traders, Python strategy authors, and small teams. Its local-first, self-hosted design keeps market data, strategy code, broker credentials, and deployment under the operator's control.

The project combines:

  • multi-provider AI market research and analysis;
  • Python indicators and Strategy API V2 development;
  • server-side backtesting and experiment workflows;
  • paper and live execution across crypto exchanges and traditional brokers;
  • web, mobile H5, human API, Agent Gateway, and MCP access;
  • PostgreSQL-backed state, durable workers, audit logs, and optional monitoring.

It is not a black-box signal service. Strategy code, risk settings, credentials, and deployment remain under the operator's control.

What changed in v5

The v5 backend is organized around explicit runtime and operational boundaries:

  • the HTTP API no longer owns long-running trading or scheduler loops;
  • trading, scheduling, Celery jobs, and migrations run as separate processes;
  • Celery handles finite, retryable work while long-lived strategy runtimes stay in the trading worker;
  • cache Redis and durable job Redis use separate instances and eviction policies;
  • high-risk API contracts are represented in OpenAPI and protected by tests;
  • JSON logs, request IDs, Prometheus metrics, dashboards, and alert rules are available through an optional observability overlay;
  • the production overlay runs backend processes as a non-root user with a read-only root filesystem, dropped capabilities, and resource limits;
  • CI checks syntax, lint, tests, release gates, Compose files, dependencies, source security, secrets, API compatibility, version drift, and text encoding.

The source version is declared in VERSION. Git release tags use the same semantic version with a leading v, for example v5.0.1.

Architecture

<p align="center"> <img src="docs/screenshots/architecture-v5.png" alt="QuantDinger v5 architecture covering clients, Agent Gateway, core platform, workers, infrastructure, observability, and the closed-loop trading workflow" width="100%"> </p> <p align="center"><sub>The editable source is available as <a href="docs/screenshots/architecture-v5.svg">architecture-v5.svg</a>.</sub></p>

The diagram above shows the complete product and process architecture. The runtime topology below focuses on container-to-container ownership and data flow.

flowchart TB
    C["Web / Mobile / API / MCP clients"]
    FE["Nginx frontend services"]
    API["Flask + Gunicorn API"]
    PG[("PostgreSQL")]
    CACHE[("Redis cache")]
    JOBS[("Redis jobs")]
    TW["Trading worker"]
    SW["Scheduler worker"]
    CW["Celery worker"]
    BEAT["Celery beat"]
    PROM["Prometheus"]
    GRAF["Grafana"]
    ALERT["Alertmanager"]

    C --> FE --> API
    API --> PG
    API --> CACHE
    API -->|"durable commands"| PG
    TW -->|"leases, orders, heartbeats"| PG
    SW -->|"schedules, monitoring, heartbeats"| PG
    API -->|"finite async jobs"| JOBS
    BEAT --> JOBS --> CW
    CW --> PG
    API -. metrics .-> PROM
    PG -. exporter .-> PROM
    CACHE -. exporter .-> PROM
    JOBS -. exporter .-> PROM
    PROM --> GRAF
    PROM --> ALERT

One backend image is reused by several containers with different commands:

| Process | Responsibility | | --- | --- | | migration | Applies the database schema and exits before application services start. | | backend | Handles HTTP, authentication, validation, and durable command submission. | | trading-worker | Owns strategy runtimes, pending orders, broker sessions, and reconciliation. | | scheduler-worker | Runs portfolio, deployment, payment, and signal schedules. | | celery-worker | Executes finite AI, backtest, experiment, report, and maintenance jobs. | | celery-beat | Dispatches periodic Celery tasks. |

See Backend process roles, architecture, and concurrency model for the ownership rules.

Quick start

Option A: prebuilt images

Prerequisites: Docker with Compose v2. Node.js and a local Python environment are not required.

Linux or macOS:

curl -fsSL https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/install.sh | bash

Windows PowerShell:

irm https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/install.ps1 | iex

The installer asks for the initial administrator credentials, generates the required secrets, downloads the GHCR Compose stack, and starts it.

Open:

Docker administrator and settings notes

Detailed guides: English | 中文

On a fresh database, the backend creates the initial administrator from ADMIN_USER, ADMIN_PASSWORD, and optional ADMIN_EMAIL. Passwords are stored as hashes, never as plaintext. An existing PostgreSQL volume is not overwritten: the backend only replaces the untouched legacy quantdinger / 123456 administrator when a non-default administrator is explicitly configured. It never overwrites an account whose password was already changed, and it refuses to promote an existing account that already uses the requested username.

Manual Docker deployments retain quantdinger / 123456 only for backward compatibility when the administrator variables are left at their defaults. This credential is not suitable for an internet-facing deployment; change it before first start or immediately after the first login. The one-command installer does not accept 123456 as the chosen password.

The Settings UI writes runtime configuration to /app/.env. In the GHCR stack this is the host backend.env; in a source deployment it is backend_api_python/.env. Current backend images automatically give runtime UID 10001 ownership and keep mode 600. Do not use chmod 755 or recursive 777: these files contain passwords and API keys, and 755 still does not grant write access to UID 10001 when root owns the file.

Verify write access with:

docker compose exec -u 10001:10001 -T backend \
  sh -c 'test -w /app/.env && echo writable=yes || echo writable=no'

The hardened production override intentionally mounts /app/.env read-only. When using docker-compose.production.yml, manage configuration on the host and recreate the services instead of saving it from the Settings UI. See the English guide or 中文指南 for legacy-image recovery and rootless/NFS notes.

Option B: source checkout

git clone https://github.com/OpenByteInc/QuantDinger.git
cd QuantDinger
cp backend_api_python/env.example backend_api_python/.env
cp .env.example .env

Before the first start, replace the example values in both environment files:

| File | Required production values | | --- | --- | | backend_api_python/.env | SECRET_KEY, CREDENTIAL_ENCRYPTION_KEY, ADMIN_USER, ADMIN_PASSWORD | | .env | POSTGRES_PASSWORD, REDIS_PASSWORD, CELERY_REDIS_PASSWORD, GRAFANA_ADMIN_PASSWORD |

Generate independent secrets with:

python -c "import secrets; print(secrets.token_hex(32))"

Start the core stack from local backend source:

docker compose up -d --build
docker compose ps

The base stack does not start Prometheus, Grafana, or Alertmanager. This keeps the default open-source installation smaller.

For detailed installation paths, Windows notes, China mirror settings, and PostgreSQL migration guidance, see Installation troubleshooting and the cloud deployment guide.

Production deployment

Validate secrets before starting a production stack:

python backend_api_python/scripts/check_production_config.py \
  --env-file .env \
  --env-file backend_api_python/.env

Start the hardened runtime with optional observability:

docker compose \
  -f docker-compose.yml \
  -f

Truncated for display — read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars11.9k
CategoryFinance
Updated13h ago
Forks2.5k

Languages

Python

Security Score

100/100

Audited on Sep 21, 2026

No findings