Files
trading_bot_v4/lib/trading
mindesbunister 528a0f4f43 fix: Use Drift's actual entry price for breakeven SL
Problem: After TP1, SL moved to 'breakeven' but used database entry price,
which can differ from Drift's actual fill price by /bin/bash.10-0.15.

Example:
- DB stored: $139.18291 entry
- Drift actual: $139.07 entry
- SL set to: $139.18 (DB value)

Solution: Query position.entryPrice from Drift SDK when setting breakeven SL.
Drift SDK calculates entry from on-chain data (quoteAssetAmount / baseAssetAmount)
which is more accurate than database stored value.

Code change (lib/trading/position-manager.ts line ~511):
- Before: trade.stopLossPrice = trade.entryPrice
- After: trade.stopLossPrice = position.entryPrice || trade.entryPrice

Impact: TRUE breakeven protection - no slippage losses from price discrepancies.

Related: Common Pitfall #33 (orphaned position restoration with wrong entry price)
2025-11-16 01:44:57 +01:00
..