What this is
A student-first backtesting tool that handles reproducibility, standardized evaluation, and publish-ready reporting so teams can focus on research.
See changes from last plan.
For Students
| Benefit |
Description |
| Easy Setup |
Works on any laptop, no complex infrastructure |
| Data Access |
Built-in sources (ccxt, Yahoo Finance, CSV) |
| Reproducibility |
Every run is versioned and traceable |
| Reports |
Auto-generated HTML/PDF for sharing |
| Validation |
Permutation testing to check significance |
Core Components
| Component |
Description |
| Backend |
Forked vectorbt v1 for execution |
| Data Layer |
Extended sources inside vectorbt |
| CLI Tool |
bt run, bt list, bt diff commands |
| Artifacts |
Standardized parquet/csv/json outputs |
| Reports |
Offline HTML + PDF generation |
Execution Model
| Rule |
Description |
| Trading Logic |
vectorbt as-is, no modifications |
| Bar Model |
No intrabar dynamics or partial fills |
| Signal Timing |
Computed on close, shifted +1, executed at next open |
| Versioning |
Pin all dependencies, record data hash per run |
Deliverables
| Deliverable |
Description |
| Data Sources |
CCXT integration inside vectorbt fork |
| Backtest Runner |
Deterministic pipeline with signal alignment |
| Artifacts |
returns.parquet, equity.parquet, trades.csv, metrics.json |
| Registry |
Versioned run store with run_id = sha256(config) |
| Reports |
HTML (Plotly) + PDF with equity, drawdown, distributions |
| Permutation Testing |
Null distributions and p-values |
Common Questions
| Question |
Answer |
| Writing our own backend? |
No, using vectorbt’s tested execution |
| Why not use advanced platforms? |
We prioritize interpretability and ease of contribution |
| Why not L2/L3 data? |
Hard to access for students; OHLCV is sufficient for learning |