Daily bars chunk loop: on failure, retry symbol-by-symbol to isolate
and skip the bad ticker rather than crashing the entire detection.
Intraday bars chunk loop: catch and log failures, continue with rest.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Breakout check interval: change from every-1-min to every sim_bar_minutes,
matching the backtest bar aggregation frequency; align timeout base to
market open (consistent with orb_simulator.py)
- Rejected/cancelled orders: add order_rejected flag so cancelled orders no
longer fall through to position creation (phantom positions)
- Stop/EOD exit fill price: poll broker fill price after close_position()
instead of recording at current_stop, capturing gap-through losses
- Stop/EOD close_position: pass qty=int(pos.shares) so multi-session
same-ticker scenarios only close the current session's share count
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>