Trade Analysis:
- Add editable raw trade log with # index and Group column
- Group column merges multiple entries into one position on Update
- Reset button clears edited version back to original upload
- View selector: Original / Edited / Both — appears after first Update
- Both mode: stats show with coloured delta arrows vs edited version
- Both mode: equity, drawdown and daily P&L charts overlay both versions
- Both mode: strategy comparison table shows inline delta values
- Position Summary expander above monthly table — all positions listed
(grouped with entry count, individual as single rows) sorted by open time
- Download exports edited version when available, original otherwise
- Trade # multiselect filter to show specific trades
- All charts and tables (DOW, hour, monthly) respect view selection
- Fix: Group column positioned second after # index
- Fix: DataFrame truth value error in download button
- Fix: Both mode now uses edited df for DOW/hour/monthly charts
mt5_parser:
- Add trading_days and trades_per_day to calc_stats
- Add ISO datetime format fallback for CSV imports
- Fix missing comment column KeyError in _enrich
- Fix NaT in date filter when open_time has null values
mt5_parser:
- Remove deprecated infer_datetime_format (removed in pandas 2.0)
- Add ISO datetime format fallback for CSV imports (YYYY-MM-DD)
- Fix missing comment column in _enrich causing KeyError on plain CSVs
Trade Analysis:
- Add daily P&L bar chart below equity curve
- Add drawdown panel below daily P&L
- Fix NaT in date filter when open_time has null values
Batch Backtest:
- Fix read_utf16/write_utf16 to detect and preserve original encoding
- Fix _clear_use_default_flags to clear bit 2 on all parameters
- Fix snapshot approach for report finding — before/after file scan
- Fix cleanup to remove all new htm files after each run
- Fix report selection to prefer named file over newest fallback
- Apply all encoding and flag fixes to CLI script mt5_batch_backtest.py
- incorrectly managed in/out trades skipping trades when multiple open entries on the same strategy.
- fixed card color backgrounds in light theme
- fixed strategy filters in portfolio builder
- Add monthly performance table (year x month grid) with $ / % toggle
and Initial Balance input alongside the toggle
- Add equity curve overlay toggles: Account total, By Strategy,
By Symbol, By Day of Week — checkboxes above each chart
- Fix all chart backgrounds to transparent for light/dark compatibility
- Fix chart grid and font colours to work on both themes
- Monthly table and equity overlays added to Overall, By Strategy
and By Symbol modes
Trade Analysis:
- Add toggleable equity curve overlays: Account total, By Strategy,
By Symbol, By Day of Week — checkboxes above each chart
- Fix all chart backgrounds to transparent (inherit page theme)
- Fix grid and font colours to work on both dark and light backgrounds
Settings page:
- Full theme control: Dark / Light / Custom radio with Apply button
- Custom mode: colour pickers for accent, page bg, sidebar bg, text,
font selector and base dark/light toggle
- Preview swatches before applying
- Discard / Reset to Dark button
- Text size: Normal / Large (+2px) / Extra Large (+4px) via CSS injection
- inject_theme_css() helper for app.py to apply font size on all pages
- Theme written to .streamlit/config.toml on apply
Batch Backtest:
- Fix run_batch signature missing report_names parameter (recurring)
- Add inline config editor to Active Config expander — edit and save
all settings directly from the UI without re-running CLI script
Set Comparator:
- Fix UTF-8/UTF-16 encoding detection using BOM check
- Fix parse to skip optimisation metadata lines (ParamName,F etc.)
- Fix export to preserve all original lines including metadata
- Add UBS format detection — warning shown for non-Ultimate Breakout files
- Fix view_set_comparator to unpack 4-value return from parse_set_file