SIGN IN SIGN UP

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