Changelog ========= v0.1.2 — 2026-03-09 -------------------- Features ^^^^^^^^ - Add exit rules (stop-loss, take-profit, trailing stop) to backtest engine (``4ad641f``) - ``ExitReason`` enum: SIGNAL, STOP_LOSS, TAKE_PROFIT, TRAILING_STOP, END_OF_DATA - ``ExitRules`` frozen dataclass with percentage-based global rules - Per-trade metadata overrides for absolute price levels - Exit checks run each bar before ``strategy.compute()`` using high/low prices - Pessimistic 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 consolidation - ``pullback_trend`` — trend continuation on pullback to short-term MA - ``reversal_support`` — counter-trend reversal at support with RSI confirmation - 20+ pure-NumPy technical indicators in ``quaver.strategies.indicators`` Documentation ^^^^^^^^^^^^^ - Create 6 feature showcase Jupyter notebooks (``4ad641f``) - ``01_indicators_showcase`` — all 20+ indicators with visualizations - ``02_trading_costs`` — commission and slippage impact comparison - ``03_exit_rules`` — stop-loss, take-profit, trailing stop demos - ``04_position_sizing`` — fixed vs risk-based sizing - ``05_all_strategies`` — all 7 strategy engines + pairs trading - ``06_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 reversion - ``regime_mean_reversion`` — regime-based probabilistic mean reversion - ``vsa_stopping_volume`` — VSA stopping-volume reversal pattern - ``pairs_mean_reversion`` — statistical arbitrage pairs trading - Single-asset and multi-asset walk-forward backtest engines - Portfolio tracker with long/short support - ``BacktestResult`` with 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 ``pyquaver`` to 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 format`` to entire codebase (``1180af6``)