- TickData: parallel tick arrays (timestamps, ltp, bid, ask, buy_qty_delta,
sell_qty_delta, oi) with len/is_empty helpers; callers must pre-convert
Zerodha cumulative totals to per-tick deltas before passing
- ExitReason::TimeExit: max hold time exceeded variant for tick backtest
- compute_backtest_metrics: pub free fn wrapping PortfolioEngine::calculate_metrics
so non-OHLCV strategies can produce identical metrics without duplication
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add two new risk/reward metrics to BacktestMetrics:
- payoff_ratio: avg winning return / avg losing return (absolute)
- recovery_factor: net profit / max drawdown in absolute terms
Computed in both StreamingMetrics::finalize() and PortfolioEngine.
Exposed via PyO3 with #[pyo3(get)] on PyBacktestMetrics.
Updated README with API reference and changelog.
- Add Monte Carlo forward simulation using Geometric Brownian Motion
- Support correlated multi-asset simulation with Cholesky decomposition
- Implement parallel execution via Rayon for performance
- Expose simulate_portfolio_mc function in Python bindings
- Update version from 0.3.0 to 0.3.1 across all project files
* Fix CI workflow: use correct rust-toolchain action
* Fix CI: resolve Rust compilation and formatting issues
- Fix rust-toolchain action name in CI workflow
- Add missing Direction import in test modules
- Add missing entry_fees argument to open_position test calls
- Comment out nightly-only rustfmt options
- Auto-format code with cargo fmt