Overview
Quantstrip is a Windows-installed, browser-accessed trading-operations app: a background service running a Dash web server, backed by a single SQLite database that every page and every strategy script reads and writes through.
Install
Quantstrip ships as a Windows installer (Inno Setup) that requires admin rights. It installs
to C:\Program Files\Quantstrip\Quantstrip 0.94 by default, bundling its own
embedded Python distribution — you don't need Python installed separately.
The installer also registers and starts a Windows service, QuantstripService,
configured to auto-start and auto-recover on failure. Desktop and Start Menu shortcuts don't
launch an executable directly — they open http://127.0.0.1:8051 in your browser,
which is where the running service serves the dashboard.
Default content — example clients, SQL snippets, web assets — is seeded under
Data\ next to the app only if it doesn't already exist; existing files are not
overwritten on reinstall. The one exception is Data\clients\Examples, which is
overwritten on every install or upgrade. Do not store custom scripts in that folder.
Activate
Installation and activation are separate steps. Quantstrip enforces a license gate: on
startup, the service validates a license key against Data\license\license.txt.
If the key is missing, invalid, or expired, the service stops every client and the dashboard
shows a License Required screen instead of dashboard content.
A license key looks like QSTR-XXXX-YYYY-ZZZZ-AAAA. Enter it on the License
Required screen; once it validates, it's written to Data\license\license.txt and
the service starts your clients normally on subsequent restarts. The dashboard footer always
shows the current license status.
Basic concepts
Data\clients\ defining a Client class
(subclassing ClientBase from the quantstrip module) that the
service loads, runs, and tracks — heartbeat, job count, last error. The Client Monitor page
is a live view of exactly this in-memory state.
The database is the shared source of truth.
Nearly every page — Reporting, Trade Operations, the SQL tool — reads or writes through
the same DBHandler (db.py). Strategy scripts talk to it too, via
the same singleton, re-exported as db_handler from quantstrip.
Editing a client and running a client are deliberately separate.
The Python Editor never edits a live client file directly — it opens a working copy,
and an explicit "Deploy" step validates, backs up, and swaps it into the live client, then
restarts it.
Configuration lives in a JSON tree, not the database.
Data\config.json, browsed and edited through the Settings page — typed
values, optional environment-variable overrides, and an optional lock flag on sensitive
nodes.