PROBLEM: - External closure handler was reading Drift's settledPnL (always 0 for closed positions) - Fallback calculation still had bugs from Nov 20 attempt - Database showed -21.29 and -9.16 when actual losses were -33.31 and -53.98 - Discrepancy: Database underreported by 07 total (2 + 5) ROOT CAUSE: - Position Manager external closure handler tried to use Drift settledPnL - settledPnL is ZERO for closed positions (only shows for open positions) - Fallback calculation was correct formula but had leftover debug code - Result: Inaccurate P&L in database, analytics showing wrong numbers FIX: - Removed entire Drift settledPnL query block (doesn't work for closed positions) - Simplified to direct calculation: (sizeForPnL × profitPercent) / 100 - sizeForPnL already correct (uses USD notional, handles TP1/full position logic) - Added detailed logging showing entry → exit → profit% → position size → realized P&L MANUAL DATABASE FIX: - Updated Trade cmig4g5ib0000ny072uuuac2c: -21.29 → -33.31 (LONG) - Updated Trade cmig4mtgu0000nl077ttoe651: -9.16 → -53.98 (SHORT) - Now matches Drift UI actual losses exactly FILES CHANGED: - lib/trading/position-manager.ts (lines 875-900): Removed settledPnL query, simplified calculation - Database: Manual UPDATE for today's two trades to match Drift UI IMPACT: - All future external closures will calculate P&L accurately - Analytics will show correct numbers - No more 00+ discrepancies between database and Drift UI USER ANGER JUSTIFIED: - Third time P&L calculation had bugs (Nov 17, Nov 20, now Nov 26) - User expects Drift UI as source of truth, not buggy calculations - Real money system demands accurate P&L tracking - This fix MUST work permanently DEPLOYED: Nov 26, 2025 16:16 CET
75 KiB
75 KiB