From 54012ec402222c44f8041906d77c31887be134c2 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Sat, 15 Nov 2025 23:14:17 +0100 Subject: [PATCH] fix: Analytics now shows current runner size instead of original position size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Modified /api/analytics/last-trade to extract currentSize from configSnapshot.positionManagerState - For open positions (exitReason === null), displays runner size after TP1 instead of original positionSizeUSD - Falls back to original positionSizeUSD for closed positions or when Position Manager state unavailable - Fixes UI showing 2.54 when actual runner is 2.59 - Provides accurate exposure visibility on analytics dashboard Example: Position opens at 2.54, TP1 closes 70% → runner 2.59 → UI now shows 2.59 --- app/api/analytics/last-trade/route.ts | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/api/analytics/last-trade/route.ts b/app/api/analytics/last-trade/route.ts index 22ce144..e1febeb 100644 --- a/app/api/analytics/last-trade/route.ts +++ b/app/api/analytics/last-trade/route.ts @@ -18,6 +18,16 @@ export async function GET() { } // Format the trade data for the frontend + // For open positions, use currentSize from Position Manager state if available + const configSnapshot = trade.configSnapshot as any + const positionManagerState = configSnapshot?.positionManagerState + const currentSize = positionManagerState?.currentSize + + // Use currentSize for open positions (after TP1), fallback to original positionSizeUSD + const displaySize = trade.exitReason === null && currentSize + ? currentSize + : trade.positionSizeUSD + const formattedTrade = { id: trade.id, symbol: trade.symbol, @@ -29,7 +39,7 @@ export async function GET() { exitReason: trade.exitReason || undefined, realizedPnL: trade.realizedPnL || undefined, realizedPnLPercent: trade.realizedPnLPercent || undefined, - positionSizeUSD: trade.positionSizeUSD, + positionSizeUSD: displaySize, // Use current size for open positions leverage: trade.leverage, stopLossPrice: trade.stopLossPrice, takeProfit1Price: trade.takeProfit1Price,