const { PrismaClient } = require('@prisma/client'); const prisma = new PrismaClient(); async function showDetailedLearningData() { try { console.log('šŸ” Detailed AI Learning Data Analysis...\n'); const learningData = await prisma.ai_learning_data.findMany({ orderBy: { createdAt: 'desc' }, take: 3 }); console.log(`šŸ“Š Analyzing ${learningData.length} most recent learning records:\n`); learningData.forEach((record, i) => { console.log(`\n🧠 LEARNING RECORD #${i + 1}`); console.log('═'.repeat(50)); console.log(`šŸ“… Date: ${record.createdAt}`); console.log(`šŸ‘¤ User: ${record.userId}`); console.log(`ā° Timeframe: ${record.timeframe}`); console.log(`šŸŽÆ Recommendation: ${record.recommendation || 'PENDING'}`); console.log(`šŸ“Š Confidence: ${record.confidence || 'CALCULATING'}%`); console.log(`šŸŽÆ Accuracy Score: ${record.accuracyScore || 'NOT YET MEASURED'}`); if (record.analysisData) { try { const analysis = JSON.parse(record.analysisData); console.log('\nšŸ“ˆ TECHNICAL ANALYSIS:'); console.log(`šŸ“ Reasoning: ${analysis.reasoning || 'Multi-timeframe analysis'}`); if (analysis.multiTimeframeResults) { console.log('\nā±ļø MULTI-TIMEFRAME BREAKDOWN:'); analysis.multiTimeframeResults.forEach((tf, idx) => { console.log(` ${idx + 1}. ${tf.timeframe}: ${tf.analysis?.recommendation || 'ANALYZING'} (${tf.analysis?.confidence || 0}% confidence)`); }); } if (analysis.confidence) { console.log(`\nšŸŽÆ Final Combined Confidence: ${analysis.confidence}%`); } if (analysis.marketSentiment) { console.log(`šŸ“Š Market Sentiment: ${analysis.marketSentiment}`); } } catch (e) { console.log('šŸ“ Analysis: [Complex multi-timeframe data - parsing limited]'); } } if (record.marketConditions) { try { const conditions = JSON.parse(record.marketConditions); console.log('\nšŸŒ MARKET CONDITIONS:'); console.log(`šŸ“Š Symbol: ${conditions.symbol || 'UNKNOWN'}`); console.log(`ā° Timestamp: ${conditions.timestamp}`); console.log(`šŸ”— Session: ${conditions.session}`); } catch (e) { console.log('šŸŒ Market Conditions: [Data available]'); } } console.log('\n' + '─'.repeat(50)); }); // Show learning progression const totalAnalyses = await prisma.aILearningData.count(); const accurateAnalyses = await prisma.aILearningData.count({ where: { accuracyScore: { gt: 0.6 } } }); console.log(`\nšŸ“Š LEARNING PROGRESSION SUMMARY:`); console.log('═'.repeat(50)); console.log(`šŸ“ˆ Total Analyses: ${totalAnalyses}`); console.log(`āœ… Accurate Predictions: ${accurateAnalyses}`); console.log(`šŸŽÆ Accuracy Rate: ${totalAnalyses > 0 ? ((accurateAnalyses / totalAnalyses) * 100).toFixed(1) : 0}%`); // Determine learning phase let phase = 'INITIAL'; let phaseDescription = 'Learning market basics'; if (totalAnalyses >= 100) { phase = 'EXPERT'; phaseDescription = 'Advanced pattern recognition and risk management'; } else if (totalAnalyses >= 50) { phase = 'ADVANCED'; phaseDescription = 'Developing sophisticated trading strategies'; } else if (totalAnalyses >= 20) { phase = 'PATTERN_RECOGNITION'; phaseDescription = 'Learning to identify market patterns'; } console.log(`🧠 Current Learning Phase: ${phase}`); console.log(`šŸ“ Phase Description: ${phaseDescription}`); // Show recent automation activity const recentSessions = await prisma.automationSession.findMany({ orderBy: { createdAt: 'desc' }, take: 1 }); if (recentSessions.length > 0) { const session = recentSessions[0]; console.log(`\nšŸ¤– CURRENT AUTOMATION STATUS:`); console.log('═'.repeat(50)); console.log(`šŸ“Š Status: ${session.status}`); console.log(`āš™ļø Mode: ${session.mode}`); console.log(`šŸ“… Started: ${session.createdAt}`); console.log(`šŸ“ˆ Trades Count: ${session.tradesCount || 0}`); } await prisma.$disconnect(); } catch (error) { console.error('āŒ Error:', error); } } showDetailedLearningData();