Files
XauBot/docs/FIX_LOSS_EXIT_GRACE_PERIOD.md
T

62 lines
1.8 KiB
Markdown
Raw Normal View History

# FIX: Loss Exit Grace Period (v0.1.2)
## Problem
Trade #161699163 exit terlalu cepat (18 detik) meskipun exit decision ternyata correct.
User concern: Sistem tidak memberikan kesempatan recovery untuk micro swings.
## Root Cause
1. **No grace period for loss trades** - langsung fuzzy check setelah entry
2. **Profit retention bug** - loss setelah profit kecil dianggap "collapsed" (trigger 95% exit)
## Proposed Fix
### FIX 1: Grace Period untuk Loss Trades
```python
# Line ~1397 smart_risk_manager.py
# BEFORE:
if exit_confidence > 0.75:
return True, ExitReason.POSITION_LIMIT, ...
# AFTER:
# Grace period: 60-120s tergantung regime
grace_period_sec = {
"ranging": 120,
"volatile": 90,
"trending": 60
}.get(regime, 90)
time_since_entry = time.time() - guard.entry_time
if time_since_entry < grace_period_sec:
# Suppress fuzzy exit during grace period
logger.info(f"[GRACE PERIOD] Loss fuzzy={exit_confidence:.2%} suppressed (t={time_since_entry:.0f}s < {grace_period_sec}s)")
else:
if exit_confidence > 0.75:
return True, ExitReason.POSITION_LIMIT, ...
```
### FIX 2: Profit Retention Fix untuk Small Loss After Small Profit
```python
# fuzzy_exit_logic.py - evaluate() method
# BEFORE:
profit_retention_val = current_profit / peak_profit
# AFTER:
if current_profit < 0 and 0 < peak_profit < 3.0:
# Small loss after small profit = micro swing, bukan collapse
profit_retention_val = 0.50 # Medium retention (bukan collapsed)
else:
profit_retention_val = current_profit / peak_profit
```
## Expected Impact
- Avg trade duration: 18s → 60-120s (lebih reasonable)
- False early exits: -30% (grace period filtering)
- Recovery opportunities: Lebih banyak micro swings yang bisa recovery
## Testing
- Backtest with grace period enabled
- Monitor next 10 trades: avg duration harus >60s
## Version
- Bump to v0.1.2 (PATCH - bug fix)