You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swarms/examples/advanced_market_analysis/market_system.py

72 lines
2.4 KiB

from swarms.structs.agent import Agent
from swarms.prompts.finance_agent_sys_prompt import FINANCIAL_AGENT_SYS_PROMPT
# Technical Analysis Specialist
technical_analyst = Agent(
agent_name="Technical-Analysis-Expert",
agent_description="Advanced technical analysis specialist focusing on complex market patterns",
system_prompt="""You are an expert Technical Analyst specializing in:
1. Advanced Pattern Recognition (Elliot Wave, Wyckoff Method)
2. Multi-timeframe Analysis
3. Volume Profile Analysis
4. Market Structure Analysis
5. Intermarket Analysis""",
max_loops=3,
model_name="gpt-4"
)
# Fundamental Analysis Expert
fundamental_analyst = Agent(
agent_name="Fundamental-Analysis-Expert",
agent_description="Deep fundamental analysis specialist",
system_prompt="""You are a Fundamental Analysis expert focusing on:
1. Advanced Financial Statement Analysis
2. Economic Indicator Impact Assessment
3. Industry Competitive Analysis
4. Global Macro Trends
5. Corporate Governance Evaluation""",
max_loops=3,
model_name="gpt-4"
)
# Risk Management Specialist
risk_analyst = Agent(
agent_name="Risk-Management-Expert",
agent_description="Complex risk analysis and management specialist",
system_prompt="""You are a Risk Management expert specializing in:
1. Portfolio Risk Assessment
2. Value at Risk (VaR) Analysis
3. Stress Testing Scenarios
4. Correlation Analysis
5. Risk-Adjusted Performance Metrics""",
max_loops=3,
model_name="gpt-4"
)
class MarketAnalysisSystem:
def __init__(self):
self.agents = [technical_analyst, fundamental_analyst, risk_analyst]
def comprehensive_analysis(self, asset_data):
analysis_results = []
for agent in self.agents:
analysis = agent.run(f"Analyze this asset data: {asset_data}")
analysis_results.append({
"analyst": agent.agent_name,
"analysis": analysis
})
# Synthesize results through risk analyst for final recommendation
final_analysis = risk_analyst.run(
f"Synthesize these analyses and provide a final recommendation: {analysis_results}"
)
return {
"detailed_analysis": analysis_results,
"final_recommendation": final_analysis
}
# Usage
analysis_system = MarketAnalysisSystem()