Three critical fixes to Position Manager runner protection system: 1. **TP2 pre-check before external closure (MAIN FIX):** - Added check for TP2 price trigger BEFORE external closure detection - Activates trailing stop even if position fully closes before monitoring detects it - Sets tp2Hit and trailingStopActive flags when price reaches TP2 - Initializes peakPrice for trailing calculations - Lines 776-799: New TP2 pre-check logic 2. **Runner closure diagnostics:** - Added detailed logging when runner closes externally after TP1 - Shows if price reached TP2 (trailing should be active) - Identifies if runner hit SL before reaching TP2 - Helps diagnose why trailing stop didn't activate - Lines 803-821: Enhanced external closure logging 3. **Trailing stop exit reason detection:** - Checks if trailing stop was active when position closed - Compares current price to peak price for pullback detection - Correctly labels runner exits as trailing stop (SL) vs TP2 - Prevents misclassification of profitable runner exits - Lines 858-877: Trailing stop state-aware exit reason logic **Problem Solved:** - Previous: TP1 moved runner SL to breakeven/ADX-based level, but never activated trailing - Result: Runner exposed to full reversal (e.g., 24 profit → -.55 loss possible) - Root cause: Position closed before monitoring detected TP2 price trigger - Impact: User forced to manually close at 43.50 instead of system managing **How It Works Now:** 1. TP1 closes 60% at 36.26 → Runner SL moves to 34.48 (ADX 26.9 = -0.55%) 2. Price rises to 37.30 (TP2 trigger) → System detects and activates trailing 3. As price rises to 43.50 → Trailing stop moves SL up dynamically 4. If pullback occurs → Trailing stop triggers, locks in most profit 5. No manual intervention needed → Fully autonomous runner management **Next Trade Will:** - Continue monitoring after TP1 instead of stopping - Activate trailing stop when price reaches TP2 - Trail SL upward as price rises (ADX-based multiplier) - Close runner automatically via trailing stop if pullback occurs - Allow user to sleep while bot protects runner profit Files: lib/trading/position-manager.ts (3 strategic fixes) Impact: Runner system now fully autonomous with trailing stop protection
70 KiB
70 KiB