Update output path to output_data/
This commit is contained in:
parent
60c0970c2e
commit
e8ccaa7413
|
|
@ -3,7 +3,7 @@ __pycache__/
|
|||
.DS_Store
|
||||
*.csv
|
||||
# src/
|
||||
eval_results/
|
||||
output_data/
|
||||
eval_data/
|
||||
*.egg-info/
|
||||
.env
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,164 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "AVAH",
|
||||
"company_name": "Aveanna Healthcare Holdings Inc.",
|
||||
"analysis_date": "2025-08-06",
|
||||
"final_recommendation": "HOLD",
|
||||
"confidence_level": "MEDIUM"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 5.81,
|
||||
"price_change": 1.93,
|
||||
"price_change_percent": 49.49,
|
||||
"market_cap": "814.80 million",
|
||||
"enterprise_value": "2.24 billion",
|
||||
"shares_outstanding": "206.28 million",
|
||||
"trading_range": {
|
||||
"high": 6.19,
|
||||
"low": 4.4,
|
||||
"open": 5.35
|
||||
},
|
||||
"volume": 14408713,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": 0.54,
|
||||
"fair_value_ps_ratio": 0.8,
|
||||
"forward_pe": 145.24,
|
||||
"forward_ps": 0.5,
|
||||
"forward_pcf": 49.02,
|
||||
"forward_pocf": 23.39
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": 2.74,
|
||||
"institutional_percent": 20.26
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "HOLD",
|
||||
"price_target": 5.0,
|
||||
"forecast_price": 5.25
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 4.61,
|
||||
"sma_200": 4.88,
|
||||
"ema_10": 4.25,
|
||||
"macd": -0.0427,
|
||||
"macd_signal": -0.1917,
|
||||
"rsi": 77.09,
|
||||
"atr": 0.334,
|
||||
"trend_directions": {
|
||||
"sma_50": "BEARISH",
|
||||
"sma_200": "BEARISH",
|
||||
"ema_10": "BEARISH",
|
||||
"macd": "BEARISH",
|
||||
"rsi_condition": "OVERBOUGHT"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "2%",
|
||||
"entry_strategy": "Staggered entry before earnings",
|
||||
"tranche_1_percent": "1%",
|
||||
"tranche_2_percent": "1%"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": 3.5,
|
||||
"stop_loss_percent": 15,
|
||||
"breakeven_strategy": "Adjust stop to breakeven after 20% gain"
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": 5.0,
|
||||
"action": "Sell 50%",
|
||||
"rationale": "Lock in gains if stock rallies"
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Earnings call on August 7",
|
||||
"Debt reduction announcements",
|
||||
"Margin expansion signals"
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"14% revenue growth in Q1",
|
||||
"Strong demand in home healthcare",
|
||||
"Improving interest coverage ratio",
|
||||
"Potential for rebound due to oversold conditions"
|
||||
],
|
||||
"bear_key_points": [
|
||||
"High P/E ratio of 145.24",
|
||||
"Negative book value",
|
||||
"Debt-to-EBITDA ratio near 23x",
|
||||
"Volatility and market skepticism"
|
||||
],
|
||||
"neutral_perspective": "A balanced approach is needed, considering both growth potential and risks.",
|
||||
"final_decision_rationale": "While growth prospects are strong, the risks associated with debt and valuation warrant a cautious hold."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "AVAH has seen significant fluctuations in price, with key indicators suggesting a bearish trend. The stock closed at $3.96 on July 25, indicating a decrease from earlier highs.",
|
||||
"key_takeaways": [
|
||||
"Current price trends indicate bearish sentiment.",
|
||||
"Key indicators suggest potential for a reversal."
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "Aveanna's upcoming earnings report is anticipated to be a pivotal moment for the stock. Recent revenue growth and analyst price targets suggest optimism.",
|
||||
"recent_developments": [
|
||||
"Earnings release scheduled for August 7.",
|
||||
"Analyst price target set at $5.00."
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Aveanna Healthcare has shown a mixed financial picture with significant revenue growth but concerning debt levels.",
|
||||
"financial_highlights": [
|
||||
"Current price at $5.81 with a 49.49% increase.",
|
||||
"High debt-to-EBITDA ratio raises concerns."
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Recent macroeconomic trends indicate a mixed environment for trading, with potential impacts on healthcare spending.",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-07",
|
||||
"event": "Earnings release",
|
||||
"impact": "Potential volatility based on results."
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "The investment strategy emphasizes a cautious approach with a focus on risk management and monitoring key performance indicators."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "The bullish case emphasizes strong revenue growth and market demand.",
|
||||
"bear_analysis": "The bearish case highlights valuation concerns and high debt levels.",
|
||||
"neutral_analysis": "A balanced view suggests waiting for clearer signals before investing.",
|
||||
"risk_discussion": "Risks associated with debt and market volatility are significant."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,166 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "AVAH",
|
||||
"company_name": "Aveanna Healthcare Holdings Inc.",
|
||||
"analysis_date": "2025-08-06",
|
||||
"final_recommendation": "HOLD",
|
||||
"confidence_level": "MEDIUM"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 5.81,
|
||||
"price_change": 1.93,
|
||||
"price_change_percent": 49.49,
|
||||
"market_cap": "814.80 million",
|
||||
"enterprise_value": "2.24 billion",
|
||||
"shares_outstanding": "206.28 million",
|
||||
"trading_range": {
|
||||
"high": 6.19,
|
||||
"low": 4.4,
|
||||
"open": 5.35
|
||||
},
|
||||
"volume": 14408713,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": 0.54,
|
||||
"fair_value_ps_ratio": 0.8,
|
||||
"forward_pe": 145.24,
|
||||
"forward_ps": 0.5,
|
||||
"forward_pcf": 49.02,
|
||||
"forward_pocf": 23.39
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": 2.74,
|
||||
"institutional_percent": 20.26
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "HOLD",
|
||||
"price_target": 5.25,
|
||||
"forecast_price": 5.0
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 4.61,
|
||||
"sma_200": 4.88,
|
||||
"ema_10": 3.91,
|
||||
"macd": -0.208,
|
||||
"macd_signal": -0.229,
|
||||
"rsi": 38.39,
|
||||
"atr": 0.182,
|
||||
"trend_directions": {
|
||||
"sma_50": "BEARISH",
|
||||
"sma_200": "BEARISH",
|
||||
"ema_10": "BEARISH",
|
||||
"macd": "BEARISH",
|
||||
"rsi_condition": "OVERSOLD"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "3-5%",
|
||||
"entry_strategy": "Staggered entry around $3.75-$3.80, hold cash until after earnings.",
|
||||
"tranche_1_percent": "50%",
|
||||
"tranche_2_percent": "50%"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": 3.0,
|
||||
"stop_loss_percent": 20,
|
||||
"breakeven_strategy": "Adjust stop to breakeven after first tranche is filled."
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": 5.0,
|
||||
"action": "Sell 25-50%",
|
||||
"rationale": "Reassess margin trends."
|
||||
},
|
||||
{
|
||||
"target_price": 7.5,
|
||||
"action": "Hold for longer-term gains.",
|
||||
"rationale": "Reflects a move to 0.8x P/S based on projected FY24 revenues."
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Earnings call on August 7, focus on government reimbursement rate details.",
|
||||
"Patient census and margin trends.",
|
||||
"Competitive landscape and near-term cost pressures."
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"Strong revenue growth of 16.8% in Q1.",
|
||||
"Favorable demographic trends for home healthcare.",
|
||||
"Potential for recovery indicated by oversold RSI."
|
||||
],
|
||||
"bear_key_points": [
|
||||
"High debt levels and Altman-Z score indicating bankruptcy risk.",
|
||||
"Negative technical indicators and low social media engagement."
|
||||
],
|
||||
"neutral_perspective": "A balanced approach is needed, recognizing both growth potential and financial risks.",
|
||||
"final_decision_rationale": "While growth potential exists, financial instability and bearish technicals warrant a cautious hold."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "AVAH has seen significant fluctuations in price, with a recent low of $3.74 and peaks above $5. The stock is currently in a bearish trend with key indicators suggesting caution.",
|
||||
"key_takeaways": [
|
||||
"Current price is $5.81 with a 49.49% increase.",
|
||||
"Technical indicators show bearish momentum."
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "Aveanna's recent earnings announcement and market reactions indicate mixed sentiment. The upcoming earnings call is crucial for future stock performance.",
|
||||
"recent_developments": [
|
||||
"Analyst price target set at $5.00.",
|
||||
"Recent revenue growth of 14% in Q1."
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Aveanna Healthcare shows potential for growth but faces significant financial risks. The Altman-Z score indicates a need for caution.",
|
||||
"financial_highlights": [
|
||||
"P/S ratio of 0.54 suggests potential undervaluation.",
|
||||
"High debt-to-equity ratio raises concerns."
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Recent macroeconomic trends, including tariff increases and inflation concerns, could impact Aveanna's operational costs and market performance.",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-01",
|
||||
"event": "U.S. tariffs imposed on imports.",
|
||||
"impact": "Potential increase in operational costs."
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "The investment strategy for AVAH includes a cautious approach with a focus on monitoring key financial metrics and market conditions."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "The bull case emphasizes growth potential driven by demographic trends and recent revenue increases.",
|
||||
"bear_analysis": "The bear case highlights financial instability and risks associated with high debt levels.",
|
||||
"neutral_analysis": "A balanced perspective suggests a cautious approach while monitoring for signs of recovery.",
|
||||
"risk_discussion": "The discussion emphasizes the importance of risk management in volatile markets."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,176 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "AVAH",
|
||||
"company_name": "Aveanna Healthcare Holdings Inc.",
|
||||
"analysis_date": "2025-08-06",
|
||||
"final_recommendation": "BUY",
|
||||
"confidence_level": "MEDIUM"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 5.81,
|
||||
"price_change": 1.93,
|
||||
"price_change_percent": 0.49,
|
||||
"market_cap": "814.80 million",
|
||||
"enterprise_value": "2.24 billion",
|
||||
"shares_outstanding": "206.28 million",
|
||||
"trading_range": {
|
||||
"high": 6.19,
|
||||
"low": 4.4,
|
||||
"open": 5.35
|
||||
},
|
||||
"volume": 14408713,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": 0.4,
|
||||
"fair_value_ps_ratio": 0.8,
|
||||
"forward_pe": 23.62,
|
||||
"forward_ps": 0.37,
|
||||
"forward_pcf": 28.69,
|
||||
"forward_pocf": 22.82
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": 2.74,
|
||||
"institutional_percent": 20.26
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "Hold",
|
||||
"price_target": 5.25,
|
||||
"forecast_price": 5.0
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 4.61,
|
||||
"sma_200": 4.88,
|
||||
"ema_10": 3.91,
|
||||
"macd": -0.208,
|
||||
"macd_signal": -0.229,
|
||||
"rsi": 38.39,
|
||||
"atr": 0.182,
|
||||
"trend_directions": {
|
||||
"sma_50": "BEARISH",
|
||||
"sma_200": "BEARISH",
|
||||
"ema_10": "BEARISH",
|
||||
"macd": "BEARISH",
|
||||
"rsi_condition": "OVERSOLD"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "3-5%",
|
||||
"entry_strategy": "Staggered entry",
|
||||
"tranche_1_percent": "50%",
|
||||
"tranche_2_percent": "50%"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": 3.0,
|
||||
"stop_loss_percent": 20,
|
||||
"breakeven_strategy": "Adjust stop to breakeven after tranche 2"
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": 5.0,
|
||||
"action": "Sell 25-50%",
|
||||
"rationale": "Reassess margin trends"
|
||||
},
|
||||
{
|
||||
"target_price": 7.5,
|
||||
"action": "Hold for longer-term",
|
||||
"rationale": "Reflects a move to 0.8x P/S based on projected FY24 revenues"
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Earnings call on August 7",
|
||||
"Government reimbursement rate changes",
|
||||
"Market reactions to tariff impacts"
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"Healthcare tailwinds from aging population",
|
||||
"Undervalued fundamentals with a low P/S ratio",
|
||||
"Oversold technicals indicating potential rebound",
|
||||
"Upcoming earnings call as a catalyst"
|
||||
],
|
||||
"bear_key_points": [
|
||||
"Fierce competition in the home healthcare market",
|
||||
"Macroeconomic headwinds from rising tariffs",
|
||||
"Weak insider ownership suggesting lack of confidence",
|
||||
"Current bearish technical indicators"
|
||||
],
|
||||
"neutral_perspective": "A balanced view acknowledges both growth potential and risks.",
|
||||
"final_decision_rationale": "The combination of undervaluation, demographic trends, and an imminent catalyst outweighs the risks."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "Analysis of AVAH (Avalon Holdings) Stock - August 2025...",
|
||||
"key_takeaways": [
|
||||
"Bearish trend indicated by SMA and MACD",
|
||||
"Potential support around $3.80",
|
||||
"Cautious trading recommended"
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "This report presents an analysis of Aveanna Healthcare Holdings Inc. (NASDAQ: AVAH)...",
|
||||
"recent_developments": [
|
||||
"Earnings release scheduled for August 7, 2025",
|
||||
"Stock surged by 45% over five days"
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Comprehensive Report on Aveanna Healthcare Holdings Inc. (AVAH)...",
|
||||
"financial_highlights": [
|
||||
"Current Price: $5.81",
|
||||
"Market Capitalization: $814.80 million",
|
||||
"Forward P/E Ratio: 23.62"
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Current Analysis of Macroeconomic Developments and Market Conditions as of August 6, 2025...",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-06",
|
||||
"event": "25% tariff on Indian imports",
|
||||
"impact": "Increased costs for U.S. businesses"
|
||||
},
|
||||
{
|
||||
"date": "2025-08-01",
|
||||
"event": "50% tariff on Brazilian goods",
|
||||
"impact": "Heightened trade tensions"
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "Here\u2019s how I see it after weighing both sides..."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "Bull Analyst: Absolutely! Let\u2019s dive into a compelling argument for investing in Aveanna Healthcare Holdings Inc. (AVAH)...",
|
||||
"bear_analysis": "Bear Analyst: Absolutely, let\u2019s dive into this debate on Aveanna Healthcare Holdings Inc. (AVAH)...",
|
||||
"neutral_analysis": "Neutral Analyst: It's great to see both the Risky Analyst and Safe Analyst presenting strong viewpoints...",
|
||||
"risk_discussion": "Risky Analyst: Let\u2019s dive into the conservative and neutral stances on Aveanna Healthcare (AVAH)..."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,174 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "AVAH",
|
||||
"company_name": "Aveanna Healthcare Holdings Inc.",
|
||||
"analysis_date": "2025-08-06",
|
||||
"final_recommendation": "BUY",
|
||||
"confidence_level": "MEDIUM"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 5.81,
|
||||
"price_change": 1.93,
|
||||
"price_change_percent": 49.49,
|
||||
"market_cap": "814.80 million",
|
||||
"enterprise_value": "2.24 billion",
|
||||
"shares_outstanding": "206.28 million",
|
||||
"trading_range": {
|
||||
"high": 6.19,
|
||||
"low": 4.4,
|
||||
"open": 5.35
|
||||
},
|
||||
"volume": 14408713,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": 0.4,
|
||||
"fair_value_ps_ratio": 0.8,
|
||||
"forward_pe": 23.62,
|
||||
"forward_ps": 0.37,
|
||||
"forward_pcf": 28.69,
|
||||
"forward_pocf": 22.82
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": 2.74,
|
||||
"institutional_percent": 20.26
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "Hold",
|
||||
"price_target": 5.25,
|
||||
"forecast_price": 5.0
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 4.61,
|
||||
"sma_200": 4.88,
|
||||
"ema_10": 3.91,
|
||||
"macd": -0.208,
|
||||
"macd_signal": -0.229,
|
||||
"rsi": 38.39,
|
||||
"atr": 0.182,
|
||||
"trend_directions": {
|
||||
"sma_50": "BEARISH",
|
||||
"sma_200": "BEARISH",
|
||||
"ema_10": "BEARISH",
|
||||
"macd": "BEARISH",
|
||||
"rsi_condition": "OVERSOLD"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "3-5%",
|
||||
"entry_strategy": "Staggered entry",
|
||||
"tranche_1_percent": "50%",
|
||||
"tranche_2_percent": "50%"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": 3.0,
|
||||
"stop_loss_percent": 20,
|
||||
"breakeven_strategy": "Adjust stop to breakeven after first tranche"
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": 5.0,
|
||||
"action": "Sell 25-50%",
|
||||
"rationale": "Reassess margin trends"
|
||||
},
|
||||
{
|
||||
"target_price": 7.5,
|
||||
"action": "Hold",
|
||||
"rationale": "Reflects a move to 0.8x P/S based on projected FY24 revenues"
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Listen to August 7 earnings call",
|
||||
"Monitor government reimbursement rate changes",
|
||||
"Watch for macroeconomic impacts from tariffs"
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"Strong revenue growth of 16.8% year-over-year",
|
||||
"Healthcare demand is increasing due to aging population",
|
||||
"AVAH is well-positioned in the home healthcare market"
|
||||
],
|
||||
"bear_key_points": [
|
||||
"High P/FCF ratio indicates potential overvaluation",
|
||||
"Current stock price is volatile and may correct",
|
||||
"Competition in the healthcare sector is fierce"
|
||||
],
|
||||
"neutral_perspective": "A balanced approach is needed, recognizing both growth potential and risks.",
|
||||
"final_decision_rationale": "The combination of strong fundamentals and a structured entry strategy supports a buy recommendation."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "AVAH stock has undergone fluctuations reflecting underlying trends in its price and trading volume. Key technical indicators suggest a bearish trend.",
|
||||
"key_takeaways": [
|
||||
"50-Day SMA indicates resistance",
|
||||
"200-Day SMA reflects long-term bearish sentiment",
|
||||
"RSI under 40 suggests oversold conditions"
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "Recent news indicates a positive sentiment surrounding AVAH due to strong earnings and strategic expansions.",
|
||||
"recent_developments": [
|
||||
"Scheduled earnings release on August 7, 2025",
|
||||
"Stock surged by 45% over five days"
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Aveanna Healthcare has shown strong financial metrics, including a significant increase in revenue and a favorable market position.",
|
||||
"financial_highlights": [
|
||||
"Current stock price: $5.81",
|
||||
"Market capitalization: $814.80 million",
|
||||
"P/S ratio indicates potential undervaluation"
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Recent macroeconomic trends, including U.S. trade policies, have influenced market conditions affecting AVAH.",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-06",
|
||||
"event": "25% tariff on Indian imports",
|
||||
"impact": "Increased costs for U.S. businesses"
|
||||
},
|
||||
{
|
||||
"date": "2025-08-01",
|
||||
"event": "50% tariff on Brazilian goods",
|
||||
"impact": "Heightened trade tensions"
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "The investment plan outlines a staggered entry strategy with clear risk management and profit targets."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "The bullish case emphasizes AVAH's growth potential and market positioning.",
|
||||
"bear_analysis": "The bearish case highlights risks associated with valuation and market volatility.",
|
||||
"neutral_analysis": "A balanced view suggests a cautious approach while recognizing growth opportunities.",
|
||||
"risk_discussion": "The discussion emphasizes the importance of risk management in volatile markets."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,162 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "PLTR",
|
||||
"company_name": "Palantir Technologies Inc.",
|
||||
"analysis_date": "2025-08-01",
|
||||
"final_recommendation": "BUY",
|
||||
"confidence_level": "HIGH"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 160.66,
|
||||
"price_change": 6.5,
|
||||
"price_change_percent": 4.21,
|
||||
"market_cap": "Approximately $360 billion",
|
||||
"enterprise_value": "N/A",
|
||||
"shares_outstanding": "N/A",
|
||||
"trading_range": {
|
||||
"high": 170.73,
|
||||
"low": 155.84,
|
||||
"open": 158.68
|
||||
},
|
||||
"volume": 82993558,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": 70,
|
||||
"fair_value_ps_ratio": "N/A",
|
||||
"forward_pe": "N/A",
|
||||
"forward_ps": "N/A",
|
||||
"forward_pcf": "N/A",
|
||||
"forward_pocf": "N/A"
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": "N/A",
|
||||
"institutional_percent": "N/A"
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "N/A",
|
||||
"price_target": 190,
|
||||
"forecast_price": "N/A"
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 139.85,
|
||||
"sma_200": 96.6,
|
||||
"ema_10": 155.04,
|
||||
"macd": 5.46,
|
||||
"macd_signal": 5.6,
|
||||
"rsi": 58.63,
|
||||
"atr": 5.41,
|
||||
"trend_directions": {
|
||||
"sma_50": "BULLISH",
|
||||
"sma_200": "BULLISH",
|
||||
"ema_10": "BULLISH",
|
||||
"macd": "BULLISH",
|
||||
"rsi_condition": "NEUTRAL"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "3%",
|
||||
"entry_strategy": "Initiate a position at current levels (~$160)",
|
||||
"tranche_1_percent": "2.5%",
|
||||
"tranche_2_percent": "2%"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": 12,
|
||||
"stop_loss_percent": 12,
|
||||
"breakeven_strategy": "N/A"
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": 190,
|
||||
"action": "Sell",
|
||||
"rationale": "Reflecting a 20% upside"
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Monitor competitive moves by Microsoft",
|
||||
"Reassess after Q3 earnings",
|
||||
"Weekly technical checks (50-day SMA, MACD, RSI)"
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"48% year-over-year revenue growth in Q2 to $1 billion",
|
||||
"Rule of 40 at 81%, indicating profitability",
|
||||
"A $10 billion U.S. Army contract plus Accenture partnership",
|
||||
"Bullish technical indicators and rising retail sentiment"
|
||||
],
|
||||
"bear_key_points": [
|
||||
"70x revenue multiple is steep",
|
||||
"Competition from Microsoft and others could impact market share",
|
||||
"Macro risks could affect government spending on analytics"
|
||||
],
|
||||
"neutral_perspective": "A balanced view acknowledges growth potential while implementing risk management strategies.",
|
||||
"final_decision_rationale": "The combination of strong growth, profitability, and solid contracts suggests a robust outlook for PLTR."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "PLTR appears to be in a strong upward trend supported by both short and medium-term indicators.",
|
||||
"key_takeaways": [
|
||||
"Closing price at $160.66 with bullish momentum.",
|
||||
"Positive MACD and RSI indicating potential buying opportunities."
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "The sentiment surrounding PLTR is predominantly positive, with increasing mentions and an optimistic outlook.",
|
||||
"recent_developments": [
|
||||
"70 mentions on Reddit with a sentiment score of 58%."
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Palantir Technologies Inc. is in a strong financial position, evidenced by significant revenue and income growth.",
|
||||
"financial_highlights": [
|
||||
"Q2 2025 Revenue: $1 billion, 48% YoY growth",
|
||||
"Net Income for Q2 2025: $327 million, 144% YoY growth"
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Global economic recovery and growth are influencing market conditions positively.",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-01",
|
||||
"event": "Global M&A activity peaked at $2.6 trillion.",
|
||||
"impact": "Indicates heightened corporate confidence."
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "The investment strategy involves disciplined position sizing and risk management to capitalize on PLTR's growth potential."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "Bullish arguments emphasize strong growth metrics and unique market positioning.",
|
||||
"bear_analysis": "Bearish concerns focus on high valuation and competitive threats.",
|
||||
"neutral_analysis": "A balanced view suggests cautious optimism with risk management.",
|
||||
"risk_discussion": "Risks include high valuation and macroeconomic uncertainties."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -1,161 +0,0 @@
|
|||
{
|
||||
"metadata": {
|
||||
"company_ticker": "RDDT",
|
||||
"company_name": "Reddit Inc.",
|
||||
"analysis_date": "2025-08-01",
|
||||
"final_recommendation": "SELL",
|
||||
"confidence_level": "MEDIUM"
|
||||
},
|
||||
"financial_data": {
|
||||
"current_price": 201.76,
|
||||
"price_change": 13.12,
|
||||
"price_change_percent": 0.07,
|
||||
"market_cap": "string",
|
||||
"enterprise_value": "string",
|
||||
"shares_outstanding": "string",
|
||||
"trading_range": {
|
||||
"high": 203.63,
|
||||
"low": 189.18,
|
||||
"open": 192.0
|
||||
},
|
||||
"volume": 15113312,
|
||||
"valuation_ratios": {
|
||||
"current_ps_ratio": "string",
|
||||
"fair_value_ps_ratio": "string",
|
||||
"forward_pe": "string",
|
||||
"forward_ps": "string",
|
||||
"forward_pcf": "string",
|
||||
"forward_pocf": "string"
|
||||
},
|
||||
"ownership": {
|
||||
"insider_percent": "string",
|
||||
"institutional_percent": "string"
|
||||
},
|
||||
"analyst_data": {
|
||||
"consensus_rating": "string",
|
||||
"price_target": 165,
|
||||
"forecast_price": "string"
|
||||
}
|
||||
},
|
||||
"technical_indicators": {
|
||||
"sma_50": 134.78,
|
||||
"sma_200": 138.39,
|
||||
"ema_10": 156.99,
|
||||
"macd": 7.23,
|
||||
"macd_signal": "string",
|
||||
"rsi": 79.31,
|
||||
"atr": 10.13,
|
||||
"trend_directions": {
|
||||
"sma_50": "BULLISH",
|
||||
"sma_200": "BULLISH",
|
||||
"ema_10": "BULLISH",
|
||||
"macd": "BULLISH",
|
||||
"rsi_condition": "OVERBOUGHT"
|
||||
}
|
||||
},
|
||||
"investment_strategy": {
|
||||
"position_sizing": {
|
||||
"total_allocation_percent": "string",
|
||||
"entry_strategy": "string",
|
||||
"tranche_1_percent": "string",
|
||||
"tranche_2_percent": "string"
|
||||
},
|
||||
"risk_management": {
|
||||
"initial_stop_loss": "string",
|
||||
"stop_loss_percent": "string",
|
||||
"breakeven_strategy": "string"
|
||||
},
|
||||
"profit_targets": [
|
||||
{
|
||||
"target_price": "string",
|
||||
"action": "string",
|
||||
"rationale": "string"
|
||||
}
|
||||
],
|
||||
"monitoring_points": [
|
||||
"Monitor legal developments",
|
||||
"Watch RSI and price behavior around moving averages"
|
||||
]
|
||||
},
|
||||
"debate_summary": {
|
||||
"bull_key_points": [
|
||||
"78% year-over-year revenue growth",
|
||||
"Strong engagement from user base",
|
||||
"Positive technical indicators"
|
||||
],
|
||||
"bear_key_points": [
|
||||
"Securities fraud lawsuit poses significant risk",
|
||||
"Reliance on user-generated content can lead to moderation issues",
|
||||
"Overbought conditions may lead to price corrections"
|
||||
],
|
||||
"neutral_perspective": "A balanced approach is needed considering both growth potential and legal risks.",
|
||||
"final_decision_rationale": "The risks associated with the lawsuit outweigh the potential upside."
|
||||
},
|
||||
"text_content": {
|
||||
"market_report": {
|
||||
"title": "Technical Analysis Report",
|
||||
"content": "RDDT Stock Analysis Report (as of August 1, 2025) ...",
|
||||
"key_takeaways": [
|
||||
"Bullish trend supported by strong momentum",
|
||||
"Caution advised due to overbought RSI"
|
||||
]
|
||||
},
|
||||
"sentiment_report": {
|
||||
"title": "Company Sentiment Analysis",
|
||||
"content": "Comprehensive Analysis on Reddit (RDDT) - August 2025 ...",
|
||||
"recent_developments": [
|
||||
"78% YoY revenue increase",
|
||||
"Class-action lawsuit filed"
|
||||
]
|
||||
},
|
||||
"fundamentals_report": {
|
||||
"title": "Fundamental Analysis",
|
||||
"content": "Here's a comprehensive report on Reddit Inc. (RDDT) ...",
|
||||
"financial_highlights": [
|
||||
"Current Stock Price: $201.76",
|
||||
"Intraday Volume: 15,113,312 shares"
|
||||
]
|
||||
},
|
||||
"news_report": {
|
||||
"title": "Macroeconomic Context",
|
||||
"content": "Comprehensive Report on Current Global Economic State (August 1, 2025) ...",
|
||||
"key_developments": [
|
||||
{
|
||||
"date": "2025-08-01",
|
||||
"event": "U.S. Tariff Expansions",
|
||||
"impact": "Notable decline in global stock markets"
|
||||
}
|
||||
]
|
||||
},
|
||||
"investment_plan_full": {
|
||||
"title": "Complete Investment Strategy",
|
||||
"content": "Let me pull out the heart of each argument and then tell you where I come down ..."
|
||||
},
|
||||
"debate_transcripts": {
|
||||
"bull_analysis": "Bull Analyst: Absolutely, let\u2019s dive into this bullish narrative ...",
|
||||
"bear_analysis": "Bear Analyst: Absolutely, let\u2019s delve into the bear case ...",
|
||||
"neutral_analysis": "Neutral Analyst: I appreciate the insights from both ...",
|
||||
"risk_discussion": "Risky Analyst: Absolutely, let\u2019s dive into this ..."
|
||||
}
|
||||
},
|
||||
"widgets_config": {
|
||||
"charts_needed": [
|
||||
{
|
||||
"type": "price_chart",
|
||||
"data_source": "financial_data.current_price",
|
||||
"timeframe": "30_days"
|
||||
},
|
||||
{
|
||||
"type": "technical_indicators",
|
||||
"data_source": "technical_indicators"
|
||||
}
|
||||
],
|
||||
"text_widgets": [
|
||||
{
|
||||
"type": "expandable_report",
|
||||
"title": "Technical Analysis",
|
||||
"content_source": "text_content.market_report"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
@ -12,8 +12,8 @@ class TransformationConfig:
|
|||
"""Configuration for the data transformation agent"""
|
||||
openai_api_key: str = os.environ.get("OPENAI_API_KEY")
|
||||
model: str = "gpt-4o-mini"
|
||||
eval_results_path: str = "scripts/eval_results/AVAH/TradingAgentsStrategy_logs"
|
||||
output_path: str = "scripts/eval_results/AVAH/TradingAgentsStrategy_transformed_logs"
|
||||
eval_results_path: str = "../output_data/AVAH/TradingAgentsStrategy_logs"
|
||||
output_path: str = "../output_data/AVAH/TradingAgentsStrategy_transformed_logs"
|
||||
backend_url: str = "https://api.openai.com/v1"
|
||||
|
||||
class DataTransformationAgent:
|
||||
|
|
@ -522,10 +522,10 @@ def main():
|
|||
|
||||
parser = argparse.ArgumentParser(description="Transform TradingAgents output to widget-friendly format")
|
||||
parser.add_argument("--api-key", help="OpenAI API key")
|
||||
parser.add_argument("--input-file", default="scripts/eval_results/AVAH/TradingAgentsStrategy_logs/full_states_log_2025-07-26.json", help="Process a single input file")
|
||||
parser.add_argument("--output-file", default="scripts/eval_results/AVAH/TradingAgentsStrategy_transformed_logs/full_states_log_2025-07-26.json", help="Output file path (for single file processing)")
|
||||
parser.add_argument("--eval-results-path", default="scripts/eval_results", help="Path to eval_results directory")
|
||||
parser.add_argument("--output-path", default="scripts/eval_results/AVAH/TradingAgentsStrategy_transformed_logs/", help="Output directory path")
|
||||
parser.add_argument("--input-file", default=" ../output_data/AVAH/TradingAgentsStrategy_logs/full_states_log_2025-07-26.json", help="Process a single input file")
|
||||
parser.add_argument("--output-file", default="../output_data/AVAH/TradingAgentsStrategy_transformed_logs/full_states_log_2025-07-26.json", help="Output file path (for single file processing)")
|
||||
parser.add_argument("--eval-results-path", default="../output_data/AVAH/TradingAgentsStrategy_logs", help="Path to eval_results directory")
|
||||
parser.add_argument("--output-path", default="../output_data/AVAH/TradingAgentsStrategy_transformed_logs/", help="Output directory path")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@ class TradingAgentsGraph:
|
|||
|
||||
# Transform output JSON into widget-friendly format
|
||||
data_transformation_agent = DataTransformationAgent(TransformationConfig(
|
||||
eval_results_path=f"scripts/eval_results/{company_name}/TradingAgentsStrategy_transformed_logs/full_states_log_{trade_date}.json"))
|
||||
eval_results_path=f"../output_data/{company_name}/TradingAgentsStrategy_transformed_logs/full_states_log_{trade_date}.json"))
|
||||
|
||||
transformed_output = data_transformation_agent.transform_single_file(self._get_state(trade_date))
|
||||
|
||||
|
|
@ -231,11 +231,11 @@ class TradingAgentsGraph:
|
|||
}
|
||||
|
||||
# Save to file
|
||||
directory = Path(f"eval_results/{self.ticker}/TradingAgentsStrategy_logs/")
|
||||
directory = Path(f"../output_data/{self.ticker}/TradingAgentsStrategy_logs/")
|
||||
directory.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
with open(
|
||||
f"eval_results/{self.ticker}/TradingAgentsStrategy_logs/full_states_log_{trade_date}.json",
|
||||
f"../output_data/{self.ticker}/TradingAgentsStrategy_logs/full_states_log_{trade_date}.json",
|
||||
"w",
|
||||
) as f:
|
||||
json.dump(self.log_states_dict, f, indent=4)
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ from tradingagents.default_config import DEFAULT_CONFIG
|
|||
app = FastAPI(title="TradingAgents API", version="1.0.0")
|
||||
|
||||
# Centralized results directory to avoid repetition
|
||||
RESULTS_BASE = "/home/brabus61/Desktop/Github Repos/TradingAgents/scripts/eval_results"
|
||||
RESULTS_BASE = os.path.join(os.path.dirname(__file__), "output_data")
|
||||
|
||||
# Configure CORS
|
||||
app.add_middleware(
|
||||
|
|
@ -141,7 +141,7 @@ async def get_analysis_status(job_id: str):
|
|||
async def get_companies():
|
||||
"""Get list of companies with analysis results"""
|
||||
results_dir = RESULTS_BASE
|
||||
|
||||
print(results_dir)
|
||||
if not os.path.exists(results_dir):
|
||||
return {"companies": []}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ function App() {
|
|||
const [resultDetail, setResultDetail] = useState(null);
|
||||
|
||||
// New state for transformed data
|
||||
const [transformedDataFiles, setTransformedDataFiles] = useState([]);
|
||||
const [transformedDataSummary, setTransformedDataSummary] = useState(null);
|
||||
const [selectedTransformedData, setSelectedTransformedData] = useState(null);
|
||||
const [isLoadingTransformedData, setIsLoadingTransformedData] = useState(false);
|
||||
|
|
@ -200,11 +199,7 @@ function App() {
|
|||
|
||||
const loadTransformedDataSummary = async () => {
|
||||
try {
|
||||
const [files, summary] = await Promise.all([
|
||||
transformedDataService.getAvailableFiles(),
|
||||
transformedDataService.getDataSummary()
|
||||
]);
|
||||
setTransformedDataFiles(files);
|
||||
const summary = await transformedDataService.getDataSummary();
|
||||
setTransformedDataSummary(summary);
|
||||
} catch (error) {
|
||||
console.error('Error loading transformed data summary:', error);
|
||||
|
|
@ -289,11 +284,7 @@ function App() {
|
|||
setTransformedCompanyFiles([]);
|
||||
try {
|
||||
transformedDataService.clearCache();
|
||||
const [files, summary] = await Promise.all([
|
||||
transformedDataService.getAvailableFiles(),
|
||||
transformedDataService.getDataSummary(),
|
||||
]);
|
||||
setTransformedDataFiles(files);
|
||||
const summary = await transformedDataService.getDataSummary();
|
||||
setTransformedDataSummary(summary);
|
||||
} catch (e) {
|
||||
console.error('Failed to load transformed data on open:', e);
|
||||
|
|
@ -304,7 +295,7 @@ function App() {
|
|||
const runAnalysis = async () => {
|
||||
setIsRunningAnalysis(true);
|
||||
try {
|
||||
const response = await axios.post('/analysis/start', analysisForm);
|
||||
await axios.post('/analysis/start', analysisForm);
|
||||
alert('Analysis completed successfully!');
|
||||
setShowAnalysisModal(false);
|
||||
setAnalysisForm({ symbol: '', date: '' });
|
||||
|
|
@ -498,11 +489,7 @@ function App() {
|
|||
onClick={async () => {
|
||||
try {
|
||||
transformedDataService.clearCache();
|
||||
const [files, summary] = await Promise.all([
|
||||
transformedDataService.getAvailableFiles(),
|
||||
transformedDataService.getDataSummary(),
|
||||
]);
|
||||
setTransformedDataFiles(files);
|
||||
const summary = await transformedDataService.getDataSummary();
|
||||
setTransformedDataSummary(summary);
|
||||
setTransformedDataError(null);
|
||||
} catch (e) {
|
||||
|
|
@ -801,6 +788,12 @@ function App() {
|
|||
>
|
||||
View Details
|
||||
</button>
|
||||
<button
|
||||
onClick={() => openWidgetsView(result)}
|
||||
className="inline-flex items-center px-3 py-1 border border-transparent text-sm leading-4 font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500"
|
||||
>
|
||||
View Dashboard
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
|
|
|||
|
|
@ -380,12 +380,12 @@ const TransformedDataAdapter: React.FC<TransformedDataAdapterProps> = ({ analysi
|
|||
|
||||
// Minimalist dashboard that shows ALL main sections of transformed JSON
|
||||
const MinimalTransformedDashboard: React.FC<{ data: TransformedAnalysisData }> = ({ data }) => {
|
||||
const md = data?.metadata as any || {};
|
||||
const fd = data?.financial_data as any || {};
|
||||
const ti = data?.technical_indicators as any || {};
|
||||
const istrat = data?.investment_strategy as any || {};
|
||||
const ds = data?.debate_summary as any || {};
|
||||
const txt = data?.text_content as any || {};
|
||||
const md = (data?.metadata as any) || {};
|
||||
const fd = (data?.financial_data as any) || {};
|
||||
const ti = (data?.technical_indicators as any) || {};
|
||||
const istrat = (data?.investment_strategy as any) || {};
|
||||
const ds = React.useMemo(() => ((data?.debate_summary as any) || {}), [data]);
|
||||
const txt = React.useMemo(() => ((data?.text_content as any) || {}), [data]);
|
||||
|
||||
const trends = ti?.trend_directions || {};
|
||||
const fmt = (v: any, d = 0) => {
|
||||
|
|
@ -428,12 +428,6 @@ const TransformedDataAdapter: React.FC<TransformedDataAdapterProps> = ({ analysi
|
|||
);
|
||||
};
|
||||
|
||||
const row = (label: string, value: any, fmtDigits?: number) => (
|
||||
<div className="flex items-center justify-between py-1">
|
||||
<span className="text-sm text-gray-500">{label}</span>
|
||||
<span className="text-sm font-medium">{fmtDigits === undefined ? (value ?? '-') : fmt(value, fmtDigits)}</span>
|
||||
</div>
|
||||
);
|
||||
const chip = (label: string, val?: string) => (
|
||||
<span className="px-2 py-1 rounded bg-gray-100 text-gray-700 text-xs font-medium">{label}: {val ?? '-'}</span>
|
||||
);
|
||||
|
|
|
|||
Loading…
Reference in New Issue