Skip to content

Release v8.0.0#425

Merged
MDUYN merged 8 commits into
mainfrom
dev
Apr 15, 2026
Merged

Release v8.0.0#425
MDUYN merged 8 commits into
mainfrom
dev

Conversation

@MDUYN

@MDUYN MDUYN commented Apr 15, 2026

Copy link
Copy Markdown
Collaborator

Release v8.0.0

Highlights

  • SQLite Decimal Precision: Migrated from Float to SqliteDecimal TypeDecorator for accurate decimal storage
  • Portfolio Sync Bug Fixes: Fixed 5 bugs in portfolio synchronization
  • Backtest Report Enhancements: Added orders, trades, and positions tables with pagination, timeline scatter chart, and Performance/Trading tab UI
  • Slippage Tracking: Added slippage field to Order model and DB, computed and stored during backtests
  • Fee Columns: Added fee and fee rate columns to orders/trades tables in reports
  • Trading Cost & Allocation: Added ScalingRule, TradingCost, TradeAllocation refactoring

Changes

  • feat: add slippage field to Order model and DB
  • feat: add fees columns to trades and orders tables
  • feat: move trading data to separate tab with pagination
  • feat: add orders/trades/positions tables and timeline scatter to backtest report
  • fix: sqlite decimal precision + portfolio sync bug fixes
  • feat: add ScalingRule, TradingCost, TradeAllocation refactoring

MDUYN added 8 commits April 14, 2026 16:13
- Add ScalingRule model for scale-in/scale-out signal generation
- Add TradingCost model with market-level defaults and symbol-level overrides
- Rename OrderMetadata -> TradeAllocation with stored prices/fees/net_gain
- Add unified _allocate_sell_to_trade() method in TradeService
- Fix cancellation reversal fee mismatch and Path 2 fee inclusion bugs
- Add backtest HTML report templates
- Optimize test_event_vs_vector_backtest and test_readme_example tests
- Update README with RSIEMACrossoverStrategy, ScalingRule, and StopLossRule
- Update strategies documentation
- Replace Float columns with SqliteDecimal (TEXT-backed) across all models
  for correct precision with large exchange numbers
- Fix slippage: execute_order now copies actual execution price from exchange
- Fix BUY cancel/expire/reject/fail: restore EUR size (not asset units) to
  trading symbol position
- Fix check_pending_orders crash when exchange returns None for an order
- Fix missing buy order amount-change reconciliation during sync
- Deduplicate cancel/expire/reject/fail into shared helpers
- Add order_price to OrderExecutorTest stub, return_none_for_order to
  PortfolioProviderTest stub
- Add 21 tests: numeric precision, startup sync, and all 5 sync fixes
- Replace deprecated window_size with warmup_window in test_eventloop
…ecision

fix: sqlite decimal precision + portfolio sync bug fixes
…test report

- Add ORDERS and POSITIONS data to run_data in BacktestReport
- Add sortable tables for trades, orders, and positions per strategy
- Add Trade & Order Timeline scatter chart (Chart.js) with buy/sell markers
- Fix single-mode strategy pages (were dead code due to ID mismatch)
- Fix NAType serialization in best_year/worst_year metrics
- Unify strategy page rendering for both single and multi mode
- Add Performance/Trading tab bar on individual strategy pages
- Move trades, orders, positions tables and timeline scatter to Trading tab
- Add pagination with page size selector (10/25/50/100), prev/next, page numbers
- Sort state and page position preserved across re-renders
- Scatter chart renders on-demand when Trading tab is opened (Chart.js sizing)
- Trades table: add Fees column (total_fees)
- Orders table: add Fee and Fee Rate columns (order_fee, order_fee_rate)
- Add slippage column to domain Order model (init, to_dict, from_dict)
- Add slippage column to SQLOrder infrastructure model (SqliteDecimal)
- Compute and store slippage in backtest_trade_order_evaluator (BUY/SELL)
- Compute and store slippage in vector_backtest_service (all 4 Order sites)
- Serialize slippage to backtest report JSON
- Add Slippage column to orders table in dashboard JS
@MDUYN MDUYN merged commit 3c5910d into main Apr 15, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant