Getting Started
Installation
Install from PyPI:
pip install pyquaver
Or with uv:
uv add pyquaver
Optional extras
# Interactive notebooks with yfinance data and matplotlib
pip install pyquaver[notebooks]
# Development tools (pytest, ruff, mypy)
pip install pyquaver[dev]
# Sphinx documentation build
pip install pyquaver[docs]
Install from source
git clone https://github.com/maczg/quaver.git
cd quaver
pip install -e ".[dev,docs]"
Quick Example
Run a single-asset mean-reversion backtest:
import pandas as pd
from quaver.backtest import run_backtest
# Load your OHLCV data (columns: ts, open, high, low, close, volume)
candles = pd.read_csv("data.csv")
result = run_backtest(
engine_name="mean_reversion",
parameters={
"fast_period": 20,
"slow_period": 50,
"threshold": 0.02,
},
candles=candles,
instrument_id="AAPL",
initial_capital=10_000.0,
)
print(result.summary())
Run a multi-asset pairs backtest:
from quaver.backtest import run_multi_asset_backtest
results = run_multi_asset_backtest(
engine_name="pairs_mean_reversion",
parameters={
"instrument_a": "AAPL",
"instrument_b": "MSFT",
"spread_window": 60,
"entry_z": 2.0,
"exit_z": 0.5,
},
candles_map={
"AAPL": candles_aapl,
"MSFT": candles_msft,
},
initial_capital=10_000.0,
)
for iid, r in results.items():
print(f"{iid}: {r.summary()}")
Available Strategies
mean_reversion— Dual moving-average mean reversionregime_mean_reversion— Regime-based probabilistic mean reversionvsa_stopping_volume— VSA stopping-volume reversal patternpairs_mean_reversion— Statistical arbitrage pairs trading