Research, execution, and operations share one system
QuantDinger covers more than an AI prompt wrapped around a broker API. It has market-data providers, Python indicators, Strategy API V2, server-side backtests, paper and live runtimes, web and mobile clients, an agent gateway, and an MCP server. PostgreSQL holds durable state. Separate workers own trading, schedules, and finite Celery jobs, while two Redis instances keep disposable cache traffic apart from durable job queues.
The measured checkout shows the scale behind that list: 753 files and about 163,132 source lines, with the Python service under backend_api_python/. One backend image runs different commands for migrations, HTTP, trading, scheduling, Celery work, and Celery beat. This separation reduces the chance that a web process restart also owns a live strategy loop, but it gives operators several processes to deploy, observe, back up, and reconcile.
Paper trading is the sensible first destination
The README warns that QuantDinger can submit real orders and tells users to begin with paper trading. Broker credentials and MFA secrets use a stable encryption key. Agent tokens are hashed, scoped, rate-limited, and logged. An agent remains paper-only unless its token allows trading, paper_only is disabled, live agent trading is enabled on the server, and operator limits plus allowlists are configured. Those barriers are useful because a conversational client is a poor place for accidental authority.
Our run installed 159 Python packages in 69 seconds and used 557 MB before databases, client images, or monitoring. The platform supports several crypto exchanges plus IBKR and Alpaca workflows, each with its own symbols, lot rules, permissions, and credential lifecycle. Start with one provider, one paper account, and one strategy. A green dashboard across every connector would still say nothing about the quality of the trading idea.
What happened when we ran it
Our unprivileged Python 3.12 Debian sandbox installed successfully in 69 seconds and built in 17 seconds. Pytest finished in 52 seconds, reporting 1,415 passed, 0 failed, and 5 skipped of 1,415. Pip-audit found 0 known vulnerabilities. The container had 3 CPUs, 8 GB of RAM, no secrets, and commit 366ea33. No supplied install, build, test, or audit step failed.
The repository had 5 CI workflow files, a Dockerfile, and a tests directory. This is the strongest measured suite in this seven-project group, but it did not place a broker order or prove market-data accuracy against an exchange. The 52-second result covers the tests available at the measured commit. It cannot validate future venue changes, jurisdictional rules, strategy profitability, slippage, or whether a deployment's secrets and network boundaries are correct.
Current backtest reports affect decision trust
Issue 218 says one market-data formatter rounds every OHLC price to 4 decimals even when some Binance perpetuals use 5 or 6 decimal ticks. The report says backtests, indicators, AI features, and charts consume those persisted values. Issue 219 describes a fixed crypto lot size of 1e-8, with residual amounts that can block re-entry and make trade counts depend on initial capital. Both reports identify concrete calculation paths rather than vague dissatisfaction.
Passing 1,415 tests does not cancel those reports; it tells a maintainer where to add regression cases once behavior is confirmed. Before evaluating any strategy, compare stored candles with venue data and test symbols across tick sizes. Compare simulated quantities with current contract filters, minimum notional, and rounding rules. A backtest that processes every bar without error can still model prices or orders differently from the venue it claims to represent.
Fast analysis needs risk checks outside the model
Issue 217 reports 427 SELL decisions among 518 completed fast analyses during the described rising market window. Issue 216 says generated take-profit and stop-loss levels can imply reward smaller than risk, while the calculated ratio is neither enforced nor flagged. These issue findings do not establish how every provider, prompt, or market behaves. They do show why an AI explanation should be treated as research output rather than an executable instruction.
The 17-second build verifies code assembly, not signal quality. Put deterministic validation between generated analysis and any strategy intent: direction limits, maximum loss, order size, allowed instruments, freshness, and a paper-only default. QuantDinger supplies several authorization controls, but an operator must decide the numerical policy. The project itself says it is not an investment-advice service, and a self-hosted model does not inherit accountability for a bad trade.
Docker quick start still creates an operations platform
The prebuilt installer requires Docker with Compose v2, asks for initial administrator credentials, generates secrets, downloads images, and exposes web, mobile, and health endpoints on loopback. Source deployment requires two environment files. Production values include separate application and credential-encryption keys, admin credentials, PostgreSQL password, two Redis passwords, and a Grafana password when that overlay is used.
Our 557 MB Python environment is only one layer. Production also needs durable PostgreSQL backups, the job Redis volume, migrations before service startup, worker health checks, and TLS at the public edge. Prometheus, Grafana, and Alertmanager are optional, which keeps the base smaller. The hardened override runs without root privileges, drops capabilities, sets a read-only root filesystem, and makes application settings host-managed rather than writable through the UI.
MCP access is scoped, not credential sharing
The MCP server lets Cursor, Claude Code, and Codex use approved agent tools through /api/agent/v1. Clients receive scoped agent tokens instead of administrator JWTs or broker credentials. This is the right boundary for research, status checks, and paper workflows. It also means MCP setup adds another credential, rate policy, audit trail, and list of permitted tools that must be reviewed like any other remote-control surface.
Release v5.0.18 was published on August 18, 2026, and GitHub records the last push on August 24. The repository had 47 open issues excluding pull requests and 11,111 stars when fetched. Active development and a 1,415-case passing suite justify a paper deployment. Open calculation reports keep live trading behind a higher bar: reproduce the backtest, reconcile venue precision, restrict keys, and require explicit human authorization for capital.

