feat: add option contracts to overview, fix default dates, add roadmap items

- Move option contracts from daily results table to overview cards (constant throughout backtest)
- Fix default dates to March 2026 (2026-03-02 to 2026-03-25)
- Add BT-004 backlog item: candlestick chart with portfolio value line on secondary axis
- Add BT-005 backlog item: defer entry spot derivation to backtest run (not on every date change)
This commit is contained in:
Bu5hm4nn
2026-04-05 09:24:25 +02:00
parent 6b8336ab7e
commit 4af7a09c6e
4 changed files with 59 additions and 18 deletions

View File

@@ -0,0 +1,19 @@
id: BT-004
title: Backtest Visualization Chart
status: backlog
priority: P1
effort: M
depends_on:
- BT-001
tags: [backtesting, visualization, charts]
summary: Add interactive candlestick chart showing price OHLC with portfolio value line overlay.
acceptance_criteria:
- Candlestick chart displays OHLC data (open, high, low, close) for each day.
- Portfolio value (underlying + option) shown as line on secondary Y-axis.
- Chart updates when backtest results change.
- Chart is responsive and readable on mobile/tablet viewports.
- Chart library matches existing app styling (dark mode support).
notes: |
Consider using a lightweight charting library that integrates well with NiceGUI.
Portfolio value line should be clearly distinguishable from candlesticks.
May want to add toggle for showing/hiding different series.

View File

@@ -0,0 +1,22 @@
id: BT-005
title: Defer Entry Spot Derivation to Backtest Run
status: backlog
priority: P1
effort: S
depends_on: []
tags: [backtesting, ux, performance]
summary: Only derive entry spot from historical data when user clicks Run, not on every form change.
acceptance_criteria:
- Entry spot is NOT fetched when user changes start/end dates.
- Entry spot is NOT fetched when user changes other form fields.
- Entry spot IS derived when user clicks the Run button.
- Form remains responsive during date/field changes (no API calls blocking).
- Clear loading indicator shows when entry spot is being fetched during run.
- Previous entry spot value is retained until new one is derived.
notes:
Current behavior calls derive_entry_spot on every date change which causes
API errors if user is still configuring other fields.
The refresh_workspace_seeded_units function should not be called on date changes.
Entry spot derivation should happen inside start_backtest or as a separate
explicit "fetch spot" button if user wants to preview.