backtest-kit MinIO S3 Docker replaces the defaultDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/theonetrade/backtest-kit-minio-s3-docker/llms.txt
Use this file to discover all available pages before exploring further.
./dump/ file-based persistence in backtest-kit with MinIO (S3) as the source of truth and Redis as a time-ordered index. It ships 16 custom persist adapters that implement the full IPersist*Instance contract — strategy code, runners, and the CLI entry point stay completely unchanged.
Quickstart
Start MinIO and Redis, build your strategy bundle, and run your first backtest in minutes.
Architecture Overview
Understand how MinIO, Redis, and the 16 persist adapters work together.
Persist Adapters
Browse all 16 adapters — from Candle OHLCV storage to Session and Memory.
Configuration
Configure MinIO endpoints, Redis credentials, and Docker environment variables.
Why MinIO + Redis?
The default file adapter writes JSON blobs to./dump/ on the local disk — simple for local runs, but it offers no durability guarantees, no remote access, and no efficient newest-first listing. A full relational database works great at scale but requires schema management and migrations.
This project sits deliberately between the two:
Default ./dump/ | MinIO + Redis (this project) | Mongo / Postgres | |
|---|---|---|---|
| Infrastructure | none | 2 containers | database + cache |
| Source of truth | JSON on local disk | JSON objects in S3 bucket | rows / documents |
| Durability | single host, manual backup | S3 semantics: versioning, replication, lifecycle | DB tooling: dumps, replicas |
| Newest-first reads | full directory scan | Redis minute-index, O(limit) | ORDER BY … LIMIT, O(log n) |
| Sweet spot | local runs, CI | fat JSON snapshots, S3-native infra | hundreds of millions of candles |
Pick this variant when you want S3-grade durability and zero schema management. If your candle set grows into the hundreds of millions, consider the
@backtest-kit/pg or @backtest-kit/mongo packages instead.Key Features
16 Persist Adapters
Every backtest-kit
IPersist*Instance interface is implemented on top of MinIO + Redis — no custom glue code needed.Single Bucket, Key Prefixes
All adapters share one
backtest-kit MinIO bucket. Each entity gets its own key prefix (candle-items/, signal-items/, …).Redis Time Index
Log, Notification, and Storage use a per-minute Redis SET index for O(limit) newest-first reads without scanning the whole bucket.
Docker Compose
Spin up MinIO and Redis with a single command. A full-stack compose file bundles the strategy runner container too.
Three Trading Modes
Run backtests against historical OHLCV data, paper-trade against live feeds, or switch to fully live mode — same codebase.
Cold-Index Fallback
If Redis is flushed, listings fall back to bucket LIST (inverted-timestamp keys are already newest-first) and re-warm the index automatically.
Getting Started
See the Quickstart for a complete walkthrough, including full Docker deployment.