diff --git a/components/AIAnalysisPanel.tsx b/components/AIAnalysisPanel.tsx index 5530b15..57bb636 100644 --- a/components/AIAnalysisPanel.tsx +++ b/components/AIAnalysisPanel.tsx @@ -424,10 +424,13 @@ export default function AIAnalysisPanel() {
Entry Point

- ${safeRender(result.analysis.entry.price || result.analysis.entry)} + 📍 ${safeRender(result.analysis.entry.price || result.analysis.entry)} + {result.analysis.entry.buffer && ( + {safeRender(result.analysis.entry.buffer)} + )}

{result.analysis.entry.rationale && ( -

{safeRender(result.analysis.entry.rationale)}

+

💡 {safeRender(result.analysis.entry.rationale)}

)}
)} @@ -436,22 +439,199 @@ export default function AIAnalysisPanel() {
Stop Loss

- ${safeRender(result.analysis.stopLoss.price || result.analysis.stopLoss)} + 🛑 ${safeRender(result.analysis.stopLoss.price || result.analysis.stopLoss)}

{result.analysis.stopLoss.rationale && ( -

{safeRender(result.analysis.stopLoss.rationale)}

+

💡 {safeRender(result.analysis.stopLoss.rationale)}

)}
)} {result.analysis.takeProfits && (
- Take Profit -

- {typeof result.analysis.takeProfits === 'object' - ? Object.values(result.analysis.takeProfits).map(tp => `$${safeRender(tp)}`).join(', ') - : `$${safeRender(result.analysis.takeProfits)}`} -

+ Take Profit Targets +
+ {result.analysis.takeProfits.tp1 && ( +
+
+ 🥉 + + TP1: ${typeof result.analysis.takeProfits.tp1.price !== 'undefined' + ? result.analysis.takeProfits.tp1.price + : safeRender(result.analysis.takeProfits.tp1)} + +
+ {result.analysis.takeProfits.tp1.description && ( +

+ 📋 {safeRender(result.analysis.takeProfits.tp1.description)} +

+ )} + {result.analysis.takeProfits.tp1.rsiExpectation && ( +

+ 📊 RSI: {safeRender(result.analysis.takeProfits.tp1.rsiExpectation)} +

+ )} + {result.analysis.takeProfits.tp1.obvExpectation && ( +

+ 📈 OBV: {safeRender(result.analysis.takeProfits.tp1.obvExpectation)} +

+ )} +
+ )} + + {result.analysis.takeProfits.tp2 && ( +
+
+ 🥈 + + TP2: ${typeof result.analysis.takeProfits.tp2.price !== 'undefined' + ? result.analysis.takeProfits.tp2.price + : safeRender(result.analysis.takeProfits.tp2)} + +
+ {result.analysis.takeProfits.tp2.description && ( +

+ 📋 {safeRender(result.analysis.takeProfits.tp2.description)} +

+ )} + {result.analysis.takeProfits.tp2.rsiExpectation && ( +

+ 📊 RSI: {safeRender(result.analysis.takeProfits.tp2.rsiExpectation)} +

+ )} + {result.analysis.takeProfits.tp2.obvExpectation && ( +

+ 📈 OBV: {safeRender(result.analysis.takeProfits.tp2.obvExpectation)} +

+ )} +
+ )} + + {/* Fallback for simple take profit format */} + {!result.analysis.takeProfits.tp1 && !result.analysis.takeProfits.tp2 && ( +

+ {typeof result.analysis.takeProfits === 'object' + ? Object.values(result.analysis.takeProfits).map(tp => `$${safeRender(tp)}`).join(', ') + : `$${safeRender(result.analysis.takeProfits)}`} +

+ )} +
+
+ )} + + + )} + + {/* Risk Management & Confirmation */} + {(result.analysis.riskToReward || result.analysis.confirmationTrigger) && ( +
+

Risk Management

+
+ {result.analysis.riskToReward && ( +
+ Risk/Reward Ratio +

⚖️ {safeRender(result.analysis.riskToReward)}

+
+ )} + + {result.analysis.confirmationTrigger && ( +
+ Confirmation Trigger +

🔔 {safeRender(result.analysis.confirmationTrigger)}

+
+ )} +
+
+ )} + + {/* Timeframe Risk Assessment */} + {result.analysis.timeframeRisk && ( +
+

⏰ Timeframe Risk Assessment

+
+ {result.analysis.timeframeRisk.assessment && ( +
+ Risk Level +

📊 {safeRender(result.analysis.timeframeRisk.assessment)}

+
+ )} + + {result.analysis.timeframeRisk.positionSize && ( +
+ Position Size +

💼 {safeRender(result.analysis.timeframeRisk.positionSize)}

+
+ )} + + {result.analysis.timeframeRisk.leverageRecommendation && ( +
+ Leverage +

🎚️ {safeRender(result.analysis.timeframeRisk.leverageRecommendation)}

+
+ )} +
+
+ )} + + {/* Technical Indicators */} + {result.analysis.indicatorAnalysis && ( +
+

📈 Technical Indicators

+
+ {result.analysis.indicatorAnalysis.rsi && ( +
+ 📊 RSI +

{safeRender(result.analysis.indicatorAnalysis.rsi)}

+
+ )} + + {result.analysis.indicatorAnalysis.vwap && ( +
+ 📈 VWAP +

{safeRender(result.analysis.indicatorAnalysis.vwap)}

+
+ )} + + {result.analysis.indicatorAnalysis.obv && ( +
+ 📊 OBV +

{safeRender(result.analysis.indicatorAnalysis.obv)}

+
+ )} + + {result.analysis.indicatorAnalysis.macd && ( +
+ 📉 MACD +

{safeRender(result.analysis.indicatorAnalysis.macd)}

+
+ )} +
+
+ )} + + {/* Alternatives */} + {result.analysis.alternatives && ( +
+

🔄 Alternative Strategies

+
+ {result.analysis.alternatives.tigherStopOption && ( +
+ 🎯 Tighter Stop Option +

{safeRender(result.analysis.alternatives.tigherStopOption)}

+
+ )} + + {result.analysis.alternatives.scaledEntry && ( +
+ 📊 Scaled Entry +

{safeRender(result.analysis.alternatives.scaledEntry)}

+
+ )} + + {result.analysis.alternatives.invalidationScenario && ( +
+ ❌ Invalidation Scenario +

{safeRender(result.analysis.alternatives.invalidationScenario)}

)}