2.7 KiB
2.7 KiB
Backtesting and Replay v1 (Frontend)
Scope
The dashboard provides a non-technical backtest runner and replay viewer for precomputed backtest results. Replay controls are UI-only and never re-execute strategy logic.
Feature Flags
- Build-time gate (optional):
VITE_BACKTEST_ENABLED=trueenables backtest UI code paths.- If omitted, UI defaults to enabled.
- Runtime gates (authoritative, from backend
/api/config):ENABLE_BACKTEST(master switch)BACKTEST_CUSTOMER_ENABLED(customer access switch)
Backtest UI entry points:
- Strategy Wizard final step (
Run Backtest) - My Strategies cards (backtest icon)
- Dedicated
Backtestingtab (profile selector + runner)
Backtesting tab modes:
Single Run: run one profile at a time and inspect full replay/dashboard output.Compare Strategies: select multiple profiles, run same replay window, and view ranked summary metrics with drill-down details.
Access behavior:
- Admin users can access when
ENABLE_BACKTEST=true. - Non-admin users can access only when both flags are true.
- In admin
Preview as Customermode, customer rules are applied.
User Flow
- Configure symbols, timeframe, UTC date range, and source:
- CSV
- JSON / Replay JSON
- Kraken historical source (read-only backend fetch)
- Submit to
POST /api/backtest/run. - View deterministic result payload: window metadata, assumptions, timeline, trades, and diagnostics.
Replay Controls (UI-Only)
PlayPauseStep- Speed:
1x,5x,20x,Instant
Replay syncing behavior:
- Cursor timestamp advances through precomputed timeline points.
- Equity and drawdown charts show a synced cursor marker.
- Trades table highlights and auto-scrolls active trade rows.
- Insight text updates per timestamp (for example: no trade due to failed rule).
Time-Window Semantics in UI
- Window is shown explicitly as
from -> to (UTC). - Copy communicates that simulation is historical and read-only.
- End-of-window policy from backend is visible:
OPEN_AT_END(default)FORCE_CLOSE
OPEN_AT_ENDpositions are displayed in a dedicated panel.
Safety Messaging
UI explicitly states:
- No real or paper orders are placed.
- Backtests are deterministic simulations and not live guarantees.
Localhost Enable/Test
- Start backend and frontend dev servers.
- Sign in as admin and open
Configtab. - In
Backtest Access Control:- Turn on
Enable Backtest Globally. - Optionally turn on
Enable Backtest For Customers. - Click
Save Backtest Flags.
- Turn on
- Open
Strategy WizardorMy Strategiesand run a backtest. - Optional validation:
- Turn customer flag off and use
Preview as Customer. - Confirm backtest entry points disappear and API run calls are blocked for non-admin views.
- Turn customer flag off and use