Main trade execution endpoint (TradingView signals) was creating synthetic
IDs (trade-${Date.now()}) instead of using real database IDs returned by
createTrade().
This caused identical failure pattern as smart-entry-timer:
- SL verification couldn't find trades in database
- Active recovery attempts failed (no record found)
- Emergency shutdown failed (no record found for update)
- Position left unprotected after system gave up
Fix in app/api/trading/execute/route.ts:
- Line 1044: Capture createTrade() return value as savedTrade
- Line 1127+: Update activeTrade.id = savedTrade.id (real Prisma ID)
- Added logging for database ID verification
- Added fallback handling for database save failures
Impact: All database operations (SL verification, recovery, emergency close)
now work correctly for TradingView signal trades.
Related: Bug #88 Phase 1 (smart-entry-timer fix, commit 674743c)