fix: BacktestReport multi-study support and yearly returns bugs (#597)
- BacktestReport: support multi-study bundles without raising OperationalException. _engine_views() now expands per (study, engine) and always passes study= to get_runs()/get_summary(). Added an optional study= kwarg to scope the report to a single study (accepts a name or Study instance). - BacktestReport: surface the window_filter_function progressive pruning marker (metadata['filtered_out']/'filtered_out_at_date_range') in the Window Coverage panel instead of showing an unexplained partial-coverage percentage. - Fix #597: yearly returns in the HTML dashboard were ~100x too small because _build_run_data() embedded raw decimal ratios for the YR series while the JS chart expects percent units (matching the existing dd/twr_dd/monthly-heatmap convention). - Fix #597: get_yearly_returns() silently dropped the backtest's first calendar year because shift(1) has no prior year-end to compare against. Anchor the first year's return to the initial snapshot instead, but only when more than one snapshot exists through that year (keeps single-snapshot inputs returning []). - __init__: export ScheduledDeposit, SyncResult, PortfolioOutOfSyncError.
M
marcvanduyn committed
c528558133b584ba462ff5f8d562fa00dd72f56d
Parent: b14ad17