From 9478c6d524c77f6a294173c253491b5958695792 Mon Sep 17 00:00:00 2001 From: mindesbunister Date: Sat, 22 Nov 2025 16:10:19 +0100 Subject: [PATCH] critical: Enable quality-blocked signal tracking for missed opportunity analysis Problem Discovered (Nov 22, 2025): - User observed: Green dots (Money Line signals) blocked but "shot up" - would have been winners - Current system: Only tracks DATA_COLLECTION_ONLY signals (multi-timeframe) - Blindspot: QUALITY_SCORE_TOO_LOW signals (70-90 range) have NO price tracking - Impact: Can't validate if quality 91 threshold is filtering winners or losers Real Data from Signal 1 (Nov 21 16:50): - LONG quality 80, ADX 16.6 (blocked: weak trend) - Entry: $126.20 - Peak: $126.86 within 1 minute - **+0.52% profit** (TP1 target: +1.51%, would NOT have hit but still profit) - User was RIGHT: Signal moved favorably immediately Changes: - lib/analysis/blocked-signal-tracker.ts: Changed blockReason filter * BEFORE: Only 'DATA_COLLECTION_ONLY' * AFTER: Both 'DATA_COLLECTION_ONLY' AND 'QUALITY_SCORE_TOO_LOW' - Now tracking ALL blocked signals for data-driven threshold optimization Expected Data Collection: - Track quality 70-90 blocked signals over 2-4 weeks - Compare: Would-be winners vs actual blocks - Decision point: Does quality 91 filter too many profitable setups? - Options: Lower threshold (85?), adjust ADX/RSI weights, or keep 91 Next Steps: - Wait for 20-30 quality-blocked signals with price data - SQL analysis: Win rate of blocked signals vs executed trades - Data-driven decision: Keep 91, lower to 85, or adjust scoring Deployment: Container rebuilt and restarted, tracker confirmed running --- lib/analysis/blocked-signal-tracker.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/analysis/blocked-signal-tracker.ts b/lib/analysis/blocked-signal-tracker.ts index cc08a39..056f531 100644 --- a/lib/analysis/blocked-signal-tracker.ts +++ b/lib/analysis/blocked-signal-tracker.ts @@ -97,9 +97,12 @@ export class BlockedSignalTracker { } // Get all incomplete signals from last 24 hours + // Track BOTH quality-blocked AND data collection signals const signals = await this.prisma.blockedSignal.findMany({ where: { - blockReason: 'DATA_COLLECTION_ONLY', + blockReason: { + in: ['DATA_COLLECTION_ONLY', 'QUALITY_SCORE_TOO_LOW'] + }, analysisComplete: false, createdAt: { gte: new Date(Date.now() - 24 * 60 * 60 * 1000) // Last 24 hours