Repository navigation
FINSABER has been upgraded to FINSABER-2.
This release moves the active main branch to the FINSABER-2 framework and publishes the reusable backtesting package workflow around explicit data, execution, and cost assumptions.
Highlights
- Package-oriented backtesting framework available from PyPI as
finsaber==2.0.1. - New parquet dataset support through
FinsaberParquetDatasetand the public dataset at FINSABER-V2-Data. - Explicit execution timing, including
next_openandsame_close, to make look-ahead assumptions visible. - Split-adjusted OHLC handling for realistic price simulation across stock splits.
- Slippage, liquidity caps, commissions, and LLM cost accounting integrated into the backtesting cost model.
- Structured result artifacts, including run config, manifest, summary CSVs, metrics, equity curves, trades, orders, rejected orders, and LLM costs.
- Professional documentation site at waylonli.github.io/FINSABER.
Install
pip install finsaber==2.0.1For local development:
git clone https://github.com/waylonli/FINSABER
cd FINSABER
conda create -n trading python=3.10 -y
conda activate trading
pip install -e ".[dev,research]"Branch Notes
- Use
mainfor FINSABER-2 package development and new backtesting workflows. - Use
reproduceif you want to reproduce the original FINSABER-1 experimental results with the v1.0 framework and legacy aggregated dataset.
Documentation
Read the documentation for beginner-friendly usage guides, framework architecture, execution settings, data loader contracts, strategy examples, and result artifact explanations: