Changelog
v0.1.2 — 2026-03-09
Features
Add exit rules (stop-loss, take-profit, trailing stop) to backtest engine (
4ad641f)ExitReasonenum: SIGNAL, STOP_LOSS, TAKE_PROFIT, TRAILING_STOP, END_OF_DATAExitRulesfrozen dataclass with percentage-based global rulesPer-trade metadata overrides for absolute price levels
Exit checks run each bar before
strategy.compute()using high/low pricesPessimistic priority: stop-loss > trailing stop > take-profit
Fill at trigger price level, not bar close
Fully backward-compatible (all defaults disabled)
Add risk-based position sizing utility
size_by_risk()(4ad641f)Add
get_parameter_schema()to all strategies missing it (a8748bb)MeanReversionStrategy, BreakoutConsolidationStrategy, PullbackTrendStrategy, ReversalSupportStrategy, PairsMeanReversionStrategy
Add breakout, pullback, and reversal strategies with indicators (
aa72385)breakout_consolidation— breakout from low-volatility consolidationpullback_trend— trend continuation on pullback to short-term MAreversal_support— counter-trend reversal at support with RSI confirmation20+ pure-NumPy technical indicators in
quaver.strategies.indicators
Documentation
Create 6 feature showcase Jupyter notebooks (
4ad641f)01_indicators_showcase— all 20+ indicators with visualizations02_trading_costs— commission and slippage impact comparison03_exit_rules— stop-loss, take-profit, trailing stop demos04_position_sizing— fixed vs risk-based sizing05_all_strategies— all 7 strategy engines + pairs trading06_backtest_metrics— all 19 BacktestResult metrics
Integrate strategy guides into Sphinx documentation (
0de129d)
Bug Fixes
Fix close-and-reverse in backtest engines and numpy scalar leak (
b8b7bc3)Fix version 0.1.1 in pyproject.toml (
54493c7)
Chore
Add Makefile and fix lint/format issues to pass all checks (
ce50e6b)Update IntelliJ project config for Python 3.12 SDK and Black (
57f34db)
v0.1.0 — 2026-03-08
Initial release of pyquaver (import quaver).
Features
Implement quaver library with 4 strategy engines, backtest engine, and test suite (
ae334e4)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 tradingSingle-asset and multi-asset walk-forward backtest engines
Portfolio tracker with long/short support
BacktestResultwith equity curve, Sharpe, drawdown, profit factor
PyPI release setup: LICENSE, README,
project.urls, optional dependency groups (289077b)Add example Jupyter notebook with yfinance-backed end-to-end backtests
Documentation
Set up Sphinx project with autodoc, rST docstrings, and Read the Docs theme (
130650b)Getting started guide with PyPI install instructions
CI/CD
GitHub Actions workflows for CI (lint + test), Sphinx docs deploy to GitHub Pages, and PyPI publishing via trusted publisher (
b3ac757)Dev builds auto-published to TestPyPI on push to
develop
Bug Fixes
Rename PyPI distribution to
pyquaverto avoid name conflict (8cc98de)Resolve all ruff lint errors across codebase (
14b5eef)Resolve all mypy strict mode errors with full type annotations (
23570b5)
Style
Apply
ruff formatto entire codebase (1180af6)