# Changelog All notable changes to this project are documented in this file. ## Unreleased No unreleased changes yet. ## 2026-07-30 v1.0.4 - Updated notebook and Panel analysis for the SP Quant result database schema, including explicit `trading_instructions` columns for action, assets, scaled disequilibrium, and beta. - Changed selected-pair market charts to read from the `market` table and kept legacy packed instruction JSON support for older result databases. - Added `scaled_disequilibrium` and `beta` to selected-pair theoretical execution displays. - Improved VS Code notebook usability with the `jupyter_bokeh` dependency, direct Plotly figure rendering, and a dropdown Analyze control for individual pair selection. - Made the Panel app use the dark theme by default and reduced the sidebar width from 430 px to 215 px with responsive sidebar controls. - Expanded tests and notebook verification coverage for the new database schema and Panel layout defaults. ## 2026-07-29 v1.0.3 - Removed invalid fixed sizing mode from Panel Tabulator grids to avoid Bokeh layout warnings while preserving compact table layout. - Changed the Panel Calculate action to refresh the result-file list before loading data and removed the standalone Panel Refresh button. ## 2026-07-29 v1.0.2 - Added a Panel application for single-day SPBT result analysis with result-file selection, minimum TARGET-change input, pair TheoRet table, pair selector, selected-pair execution table, and market/trade chart. - Added a launcher script for the Panel application. - Changed notebook and Panel pair analysis to use per-row Analyze actions from the Pair TheoRet grid, deferring selected-pair calculations until clicked. - Adjusted Panel sizing so key controls use compact widths and Pair TheoRet uses content width with vertical scrolling instead of full-width paginated layout. - Added a FastListTemplate shell to the Panel application for sidebar controls and configurable app color accents. - Made Plotly chart panes use all available horizontal space. ## 2026-07-28 v1.0.1 - Added the `spbt_day` notebook for interactive single-day backtest result analysis, including SQLite result file selection from the local data directory. - Added selector-pair loading and dense ranking by `mr_score.final`, preserving rows with invalid score JSON for inspection. - Added theoretical return calculation for ranked pairs from `trading_instructions`, including reusable helper functions and tests. - Added a Plotly histogram for visual analysis of total theoretical return by pair. - Moved notebook support code into reusable `scripts/spbt_day.py` helpers. - Adjusted notebook table outputs to show all relevant rows and reduce redundant intermediate displays. - Added an alphabetically sorted pair selector for individual pair analysis. - Added selected-pair theoretical execution tables and aligned TheoRet calculations with target-delta trade generation. - Added per-asset `strength` values to selected-pair theoretical execution tables. - Corrected theoretical execution size to use `10000 * strength / reference_price`. - Removed `:USD` quote suffixes from displayed pair names in notebook tables, chart hovers, and the pair selector dropdown while preserving full internal pair keys for calculations. - Added `num_trades` to pair TheoRet summaries, counting asset-level theoretical trades from effective `TARGET` and `CLOSE` instructions. - Added sortable interactive grids for the pair TheoRet and selected-pair theoretical execution tables. - Styled interactive dataframe grids with black text on white backgrounds for readability across notebook themes. - Added a selected-pair Plotly chart that overlays theoretical BUY/SELL executions on relative 1-minute market close data for both instruments. - Anchored the selected-pair market chart at trading-day midnight and normalized relative prices to each instrument's close at that timestamp. - Added a `min_pctg_change` threshold for ranked pair TheoRet calculations to skip small target-strength changes after a position is acquired. - Added a notebook input field for the minimum TARGET strength-change threshold. ## 2026-07-25 v0.0.9 - Added contributing guidance and Python dependency declarations. - Added placeholder files for active project directories. - Updated ignore rules for local data, generated results, caches, and local environments. - Documented unreleased changelog handling and release push behavior. ## 2026-07-25 v0.0.1 - Established the initial repository structure and project guidance.