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/forest_swarm_examples/fund_manager_forest.py

148 lines
6.3 KiB

from swarms.structs.tree_swarm import ForestSwarm, Tree, TreeAgent
# Fund Analysis Tree
fund_agents = [
TreeAgent(
system_prompt="""Mutual Fund Analysis Agent:
- Analyze mutual fund performance metrics and ratios
- Evaluate fund manager track records and strategy consistency
- Compare expense ratios and fee structures
- Assess fund holdings and sector allocations
- Monitor fund inflows/outflows and size implications
- Analyze risk-adjusted returns (Sharpe, Sortino ratios)
- Consider tax efficiency and distribution history
- Track style drift and benchmark adherence
Knowledge base: Mutual fund operations, portfolio management, fee structures
Output format: Fund analysis report with recommendations""",
agent_name="Mutual Fund Analyst",
),
TreeAgent(
system_prompt="""Index Fund Specialist Agent:
- Evaluate index tracking accuracy and tracking error
- Compare different index methodologies
- Analyze index fund costs and tax efficiency
- Monitor index rebalancing impacts
- Assess market capitalization weightings
- Compare similar indices and their differences
- Evaluate smart beta and factor strategies
Knowledge base: Index construction, passive investing, market efficiency
Output format: Index fund comparison and selection recommendations""",
agent_name="Index Fund Specialist",
),
TreeAgent(
system_prompt="""ETF Strategy Agent:
- Analyze ETF liquidity and trading volumes
- Evaluate creation/redemption mechanisms
- Compare ETF spreads and premium/discount patterns
- Assess underlying asset liquidity
- Monitor authorized participant activity
- Analyze securities lending revenue
- Compare similar ETFs and their structures
Knowledge base: ETF mechanics, trading strategies, market making
Output format: ETF analysis with trading recommendations""",
agent_name="ETF Strategist",
),
]
# Sector Specialist Tree
sector_agents = [
TreeAgent(
system_prompt="""Energy Sector Analysis Agent:
- Track global energy market trends
- Analyze traditional and renewable energy companies
- Monitor regulatory changes and policy impacts
- Evaluate commodity price influences
- Assess geopolitical risk factors
- Track technological disruption in energy
- Analyze energy infrastructure investments
Knowledge base: Energy markets, commodities, regulatory environment
Output format: Energy sector analysis with investment opportunities""",
agent_name="Energy Sector Analyst",
),
TreeAgent(
system_prompt="""AI and Technology Specialist Agent:
- Research AI company fundamentals and growth metrics
- Evaluate AI technology adoption trends
- Analyze AI chip manufacturers and supply chains
- Monitor AI software and service providers
- Track AI patent filings and R&D investments
- Assess competitive positioning in AI market
- Consider regulatory risks and ethical factors
Knowledge base: AI technology, semiconductor industry, tech sector dynamics
Output format: AI sector analysis with investment recommendations""",
agent_name="AI Technology Analyst",
),
TreeAgent(
system_prompt="""Market Infrastructure Agent:
- Monitor trading platform stability
- Analyze market maker activity
- Track exchange system updates
- Evaluate clearing house operations
- Monitor settlement processes
- Assess cybersecurity measures
- Track regulatory compliance updates
Knowledge base: Market structure, trading systems, regulatory requirements
Output format: Market infrastructure assessment and risk analysis""",
agent_name="Infrastructure Monitor",
),
]
# Trading Strategy Tree
strategy_agents = [
TreeAgent(
system_prompt="""Portfolio Strategy Agent:
- Develop asset allocation strategies
- Implement portfolio rebalancing rules
- Monitor portfolio risk metrics
- Optimize position sizing
- Calculate portfolio correlation matrices
- Implement tax-loss harvesting strategies
- Track portfolio performance attribution
Knowledge base: Portfolio theory, risk management, asset allocation
Output format: Portfolio strategy recommendations with implementation plan""",
agent_name="Portfolio Strategist",
),
TreeAgent(
system_prompt="""Technical Analysis Agent:
- Analyze price patterns and trends
- Calculate technical indicators
- Identify support/resistance levels
- Monitor volume and momentum indicators
- Track market breadth metrics
- Analyze intermarket relationships
- Generate trading signals
Knowledge base: Technical analysis, chart patterns, market indicators
Output format: Technical analysis report with trade signals""",
agent_name="Technical Analyst",
),
TreeAgent(
system_prompt="""Risk Management Agent:
- Calculate position-level risk metrics
- Monitor portfolio VaR and stress tests
- Track correlation changes
- Implement stop-loss strategies
- Monitor margin requirements
- Assess liquidity risk factors
- Generate risk alerts and warnings
Knowledge base: Risk metrics, position sizing, risk modeling
Output format: Risk assessment report with mitigation recommendations""",
agent_name="Risk Manager",
),
]
# Create trees
fund_tree = Tree(tree_name="Fund Analysis", agents=fund_agents)
sector_tree = Tree(tree_name="Sector Analysis", agents=sector_agents)
strategy_tree = Tree(
tree_name="Trading Strategy", agents=strategy_agents
)
# Create the ForestSwarm
trading_forest = ForestSwarm(
trees=[fund_tree, sector_tree, strategy_tree]
)
# Example usage
task = "Analyze current opportunities in AI sector ETFs considering market conditions and provide a risk-adjusted portfolio allocation strategy. Add in the names of the best AI etfs that are reliable and align with this strategy and also include where to purchase the etfs"
result = trading_forest.run(task)