A local quant-research operating system for the full experimentation lifecycle. Record every backtest, sweep, and paper trade — then compare, analyze, reproduce, and explore from Python or the terminal. Your data stays on your machine.
$ quant-vault init Initialized ledger at ./.quantvault/ledger.db $ quant-vault create "baseline" --strategy mean_reversion --param lookback=20 --tag pilot { "id": "a1b2c3d4e5f6", "status": "created", ... } $ quant-vault analyze a1b2 --file run.json $ quant-vault montecarlo a1b2 --file run.json --sims 500 $ quant-vault dashboard QuantVault dashboard at http://127.0.0.1:8787/
Python 3.10+. No cloud account. Optional Parquet support via an extra.
pip install QuantVault # from source pip install -e ".[dev]" # optional parquet export pip install "QuantVault[export]"
QuantVault does not replace your backtest engine. You run research as usual — then register results in the ledger.
quant-vault init creates ./.quantvault/ledger.db.
quant-vault montecarlo <id> --file run.json.
quant-vault show a1b2 works if only one id starts with a1b2.
Same core as the CLI. Open a ledger, create runs, attach analysis and reproducibility metadata.
from quantvault import Ledger
with Ledger.open() as ledger:
exp = ledger.create(
"baseline",
strategy="mean_reversion",
params={"lookback": 20, "threshold": 1.5},
tags=["pilot"],
)
# ... run your backtest using exp.params ...
ledger.analyze(
exp.id,
equity=equity_curve,
trades=[{"pnl": 12.5, "notional": 10_000}],
benchmark_returns=bench,
cost_bps=5,
slippage_bps=2,
)
ledger.run_monte_carlo(exp.id, returns, n_sims=500, seed=7)
ledger.attach_repro(exp.id, seed=7, packages=["numpy"])
print(ledger.compare(exp.id, other_id))
print(ledger.list(strategy="mean_reversion", tag="pilot"))
Professional command surface. Global flag: --root PATH to choose the ledger directory.
| Command | What it does |
|---|---|
| quant-vault init | Create local ledger |
| quant-vault create NAME [--strategy S] [--param k=v] [--tag T] [--parent ID] [--profile P] [--metric k=v] [--notes TEXT] [--status S] | Register an experiment |
| quant-vault list [--strategy S] [--status S] [--tag T] [-q QUERY] [--json] | Search / filter |
| quant-vault show ID | Print one experiment |
| quant-vault set ID [--name N] [--strategy S] [--status S] [--param k=v] [--metric k=v] | Update fields |
| quant-vault tag ID TAG [TAG...] | Add tags |
| quant-vault note ID TEXT | Append annotation |
| quant-vault compare LEFT RIGHT | Diff params / metrics / tags |
| quant-vault lineage ID [--json] | Ancestors + children |
| quant-vault journal [TEXT] [--experiment ID] [--json] | Research journal |
| quant-vault checkpoint [NAME ID...] [--note TEXT] [--json] | Freeze a set of runs |
| quant-vault profile [NAME] [--set] [--param k=v] [--description TEXT] | Strategy profiles |
| Command | What it does |
|---|---|
| quant-vault analyze ID [--file run.json] [--cost-bps N] [--slippage-bps N] | Performance report (or show stored) |
| quant-vault srsi ID [--file run.json] [--window N] | Sharpe Ratio Stability Index |
| quant-vault montecarlo ID --file run.json [--sims N] [--seed N] | Monte Carlo fan + distribution |
| quant-vault robustness ID [ID...] [--metric sharpe] | Neighborhood stability |
| quant-vault sweep [NAME] [--strategy S] [--param k=v] [--grid '{...}'] [--parent ID] | Parameter sweep → child experiments |
| quant-vault batch [--name N] [--file specs.json] | Create / list batches |
| Command | What it does |
|---|---|
| quant-vault dataset --register NAME --path FILE [--version V] [--parent ID] | Fingerprint & register dataset |
| quant-vault dataset [--name N] [--lineage ID] [--json] | List / lineage |
| quant-vault artifact EXP [--file PATH] [--name NAME] [--json] | Store / list artifacts |
| quant-vault repro --attach ID [--config cfg.json] [--dataset ID] [--seed N] [--package PKG] | Attach repro record |
| quant-vault repro --show ID | Show repro record |
| quant-vault reproduce ID | Bundle needed to re-run |
| Command | What it does |
|---|---|
| quant-vault report [ID] [--format json|html|csv|parquet] [--out PATH] | Research report |
| quant-vault export [ID] [--format json|csv|html|parquet] [--out DIR] | Export experiment(s) |
| quant-vault import FILE.json | Import experiment pack |
| quant-vault backup [--out backup.zip] | Zip DB + artifacts |
| quant-vault restore ARCHIVE.zip | Restore into ledger root |
| quant-vault record STRATEGY [--param k=v] | Record a research run |
| quant-vault validate ID | Quality / integrity / bias / repro checks |
| quant-vault risk ID | Risk snapshot |
| quant-vault sensitivity NAME --grid JSON | Sensitivity batch |
| quant-vault portfolio --name N --file legs.json | Multi-strategy portfolio |
| quant-vault live --name N --backtest ID | Paper/live vs backtest |
| quant-vault config [--set k=v] | Local configuration |
| quant-vault plugins | Plugins / custom metrics / adapters |
| quant-vault dashboard [--host 127.0.0.1] [--port 8787] | Local visualization UI |
{
"equity": [100, 101.2, 100.8, 102.5],
"returns": [0.012, -0.004, 0.017],
"trades": [{"pnl": 15.0, "notional": 10000}],
"benchmark_returns": [0.001, 0.0, 0.002]
}
Built as a thin local layer around your existing research workflow.
Registry, search, tags, notes, compare / what-changed, lineage, checkpoints, journal, strategy profiles.
Equity, drawdown, Sharpe/Sortino/Calmar, trades, costs & slippage, benchmark, SRSI, Monte Carlo, walk-forward, sweeps, robustness.
Dataset fingerprinting, versions, data lineage, config snapshots, env/package tracking, seeds, artifact storage.
Local Bloomberg-style dashboard and HTML reports. Charts only — no strategy “verdictsâ€.
JSON, CSV, HTML, Parquet (optional), import packs, full DB+artifact zip backup/restore.
Warnings, integrity, data quality, lookahead / survivorship / leakage heuristics, reproducibility validation.
Multi-strategy portfolios, allocation, correlation, portfolio risk and drawdown.
Track paper and live fills locally and compare against the original backtest.
Custom metrics, custom metadata, plugin hooks, framework adapters.
Nothing is uploaded. Ledgers, exports, and secrets are gitignored. Repro metadata avoids home-directory paths.
Read-only visualization on the same ledger. Monitor blotter, strategy books, and full experiment pages with equity, drawdown, Monte Carlo fan charts, distributions, walk-forward, trades, costs, and repro panels.
quant-vault dashboard # http://127.0.0.1:8787/ # /experiment/<id> # /strategy/<name> # synthetic end-to-end demo python examples/demo_everything.py
The dashboard is not the product core. Python API + CLI own the workflow. The UI only renders what you already stored — metrics and charts for you to interpret.
One local core. Three interfaces. Every substantive feature is available from Python and the CLI.
QUANTVAULT
│
┌─────┴─────┐
│ Local Core │ experiments · analytics · validation
│ │ reproducibility · storage · research
└─────┬─────┘
┌───────────┼───────────┐
▼ ▼ ▼
Python API CLI Local Dashboard
└───────────┼───────────┘
▼
Local Storage
SQLite · files · artifacts
This documentation site and the public GitHub repo contain the package only — never your strategies, fills, or market data.