When WF filter blocks a ticker, automatically start a virtual (shadow) position with the same trailing/time stop logic. After WF_SHADOW_WINS consecutive shadow wins, reset WF history to re-enable real trading. - trader.py: add _shadow_positions, _shadow_cons_wins state; _shadow_enter(), get_shadow_positions(), update_shadow_peak(), close_shadow() functions; trigger shadow entry on WF block in buy() - monitor.py: add _check_shadow_position() with ATR trailing + time stop; check shadow positions every 10s in run_monitor() - Env: WF_SHADOW_WINS=2 (2 consecutive wins to rehabilitate) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
24 KiB
24 KiB