From 3c79ecbe550cf0f2881c3d14e1ea79eb6d7f136f Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Fri, 31 Oct 2025 11:34:46 +0100 Subject: [PATCH] Display signal quality score on analytics dashboard - Add signalQualityScore to LastTrade interface - Display quality score badge in last trade section (0-100) - Color-coded: green (80+), yellow (70-79), orange (60-69) - Shows 'Excellent', 'Good', or 'Marginal' label - Gracefully handles null values (old trades without scores) - Better layout when quality score is present --- app/analytics/page.tsx | 27 +++++++++++++++++++++++++-- app/api/analytics/last-trade/route.ts | 1 + 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/analytics/page.tsx b/app/analytics/page.tsx index 8e8bb28..3ca991d 100644 --- a/app/analytics/page.tsx +++ b/app/analytics/page.tsx @@ -43,6 +43,7 @@ interface LastTrade { takeProfit1Price: number takeProfit2Price: number isTestTrade: boolean + signalQualityScore?: number } interface NetPosition { @@ -280,7 +281,17 @@ export default function AnalyticsPage() { - {lastTrade.exitTime && lastTrade.exitPrice && ( + {lastTrade.signalQualityScore !== undefined ? ( +
+
Signal Quality
+
= 80 ? 'text-green-400' : lastTrade.signalQualityScore >= 70 ? 'text-yellow-400' : 'text-orange-400'}`}> + {lastTrade.signalQualityScore}/100 +
+
+ {lastTrade.signalQualityScore >= 80 ? 'Excellent' : lastTrade.signalQualityScore >= 70 ? 'Good' : 'Marginal'} +
+
+ ) : lastTrade.exitTime && lastTrade.exitPrice ? (
Exit
${lastTrade.exitPrice.toFixed(4)}
@@ -288,9 +299,21 @@ export default function AnalyticsPage() { {new Date(lastTrade.exitTime).toLocaleString()}
- )} + ) : null} + {lastTrade.exitTime && lastTrade.exitPrice && lastTrade.signalQualityScore !== undefined && ( +
+
+
Exit
+
${lastTrade.exitPrice.toFixed(4)}
+
+ {new Date(lastTrade.exitTime).toLocaleString()} +
+
+
+ )} +
Stop Loss
diff --git a/app/api/analytics/last-trade/route.ts b/app/api/analytics/last-trade/route.ts index b1f4789..22ce144 100644 --- a/app/api/analytics/last-trade/route.ts +++ b/app/api/analytics/last-trade/route.ts @@ -35,6 +35,7 @@ export async function GET() { takeProfit1Price: trade.takeProfit1Price, takeProfit2Price: trade.takeProfit2Price, isTestTrade: trade.isTestTrade || false, + signalQualityScore: trade.signalQualityScore || undefined, } return NextResponse.json({