Changelog
v0.1.3 — 2026-04-30
Features
Add Time-Series Momentum (TSMOM) strategy engine (
1d5c374)time_series_momentum— trend-following by sign of trailing return, following Moskowitz, Ooi & Pedersen (2012)Optional
skip_periodimplements the classic 12-1 momentum convention (Asness, Moskowitz & Pedersen, 2013) to neutralise short-horizon reversal contaminationConfidence scales linearly with the magnitude of the trailing return, saturating at a 10 % move
Structurally complementary to the mean-reversion engines: profits in persistent directional regimes where mean-reversion bleeds
Tests
Add behavioural test suite covering all 7 strategy engines (
3705270)Property-based pattern fixtures (linear trend, divergence, regime mix, VSA stopping volume, breakout, pullback, reversal at support)
Verifies signal direction, confidence range, and metadata invariants on canonical inputs
Documentation
Add narrative strategy guide for time-series momentum and wire it into the Sphinx API reference (
698d498)Fill remaining doc gaps (
541aa50)Add
size_by_riskautomodule to backtest API referenceAdd narrative guide for
pairs_mean_reversionNew dedicated indicators reference page (moved out of strategies API page, with a five-family overview)
Refresh
getting_startedAvailable Strategies list with the four engines added since v0.1.0Rename misspelled
reversial_support.md→reversal_support.md
Chore
Apply
ruff formatto TSMOM module and test conftest (d4bd31b)Gitignore
.claude/settings.local.jsonand sync project metadata (033a55c)
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)