Backtests are evidence, not trade instructions. They replay stored signals against price history and simulation rules; they do not tell you to buy or sell.
Read-only preview: required tickers, missing file keys, tradable vs skipped signal counts, suggested shell commands.
JSON: GET /api/backtests/replay-plan
(loading…)
Read-only snapshot of trading DB + price cache (no writes to data/trading.db).
Query parameters: strategy, start, end, optional price_provider, price_dir.
Example prefetch (manual, uses yfinance if installed — not used in CI tests): see runbook.
data/backtest.db)Optional RSI filters (no lookahead; see runbook):
./venv/bin/python scripts/run_backtest.py --mode signal_replay --rsi-filter skip_above_80 --start 2025-01-01 --end 2025-03-01 --price-provider csv --price-dir tests/fixtures/prices
./venv/bin/python scripts/run_backtest.py --mode signal_replay --rsi-filter size_half_above_80 --rsi-period 14 --start 2025-01-01 --end 2025-03-01 --price-provider csv --price-dir tests/fixtures/prices
AT22 dashboard API defaults to port 8891 in typical AT22 setups; do not assume 8890 unless you started the server there.
POST /api/backtests/run JSON: start, end, optional strategy, price_provider (csv|empty|yfinance).
Operator pipeline (optional yfinance for missing files only): --ensure-prices yfinance on scripts/run_backtest.py, or POST /api/backtests/run-with-price-check (localhost / AT22_ALLOW_PREFETCH=1).