An advanced AI-powered trading framework that leverages multiple specialized agents to analyze markets and generate trading signals.
This system employs a multi-agent architecture where specialized AI agents collaborate to make informed trading decisions. Each agent represents a distinct investment philosophy or analytical approach, working together to achieve robust market analysis.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Portfolio Manager (Orchestrator) β
β β’ Aggregates all agent signals β
β β’ Makes final trading decisions β
β β’ Manages position sizing β
βββββββββββββββββββββ¬ββββββββββββββββββββββββββββββββββ
β
βββββββββββββ΄ββββββββββββ
β β
βββββββββΌβββββββββ ββββββββββΌββββββββββ
β Strategy Agentsβ β Analysis Agents β
β β β β
β β’ Value β β β’ Fundamentals β
β β’ Growth β β β’ Technicals β
β β’ Momentum β β β’ Sentiment β
β β’ Contrarian β β β’ Risk Manager β
ββββββββββββββββββ ββββββββββββββββββββ
Investment Philosophy Agents:
- Value Agent: Identifies undervalued assets with strong fundamentals
- Growth Agent: Focuses on high-potential disruptive companies
- Momentum Agent: Captures trending market movements
- Contrarian Agent: Finds opportunities in market inefficiencies
Analysis Agents:
- Fundamentals Agent: Analyzes financial statements and metrics
- Technicals Agent: Processes price action and technical indicators
- Sentiment Agent: Evaluates market sentiment from news and social data
- Risk Manager: Calculates risk metrics and sets position limits
Orchestration:
- Portfolio Manager: Synthesizes all signals and makes final decisions
- Diverse Perspectives: Each agent brings unique analytical strengths
- Consensus Mechanism: Weighted voting system for trade signals
- Conflict Resolution: Risk manager provides final safety checks
- Fundamental Analysis: P/E ratios, revenue growth, profit margins
- Technical Analysis: Moving averages, RSI, MACD, volume patterns
- Sentiment Analysis: News sentiment, social media trends
- Risk Assessment: Volatility metrics, drawdown analysis, correlation
- Signal Aggregation: Combines multiple data sources
- Position Sizing: Dynamic allocation based on conviction levels
- Risk Management: Stop-loss, take-profit, and position limits
- Portfolio Optimization: Diversification and rebalancing
- Modular Design: Easy to add new agents or strategies
- Pluggable Data Sources: Support for multiple market data APIs
- Backtesting Engine: Historical performance simulation
- Logging & Monitoring: Comprehensive trade and performance tracking
Each agent retrieves relevant market data from configured sources:
- Price data (OHLCV)
- Financial statements
- News articles
- Market sentiment indicators
Agents independently analyze the data using their specialized methodology:
# Example: Value Agent analyzing a stock
value_signal = value_agent.analyze(ticker="AAPL")
# Returns: {
# "action": "BUY",
# "conviction": 0.75,
# "reasoning": "Trading below intrinsic value with strong moat"
# }The Portfolio Manager collects all agent signals:
signals = {
"value_agent": {"action": "BUY", "conviction": 0.75},
"growth_agent": {"action": "HOLD", "conviction": 0.45},
"momentum_agent": {"action": "BUY", "conviction": 0.82},
"technical_agent": {"action": "BUY", "conviction": 0.68},
}Based on weighted consensus and risk constraints:
# Weighted decision
final_decision = portfolio_manager.decide(signals)
# Output: "BUY 50 shares AAPL" (if consensus > threshold)Multi-Agent-Trading-System/
β
βββ agents/
β βββ base_agent.py # Abstract base class for all agents
β βββ value_agent.py # Value investing strategy
β βββ growth_agent.py # Growth investing strategy
β βββ momentum_agent.py # Momentum trading strategy
β βββ fundamentals_agent.py # Financial analysis
β βββ technicals_agent.py # Technical analysis
β βββ sentiment_agent.py # Market sentiment analysis
β βββ risk_manager.py # Risk assessment
β βββ portfolio_manager.py # Orchestration & final decisions
β
βββ data/
β βββ data_fetcher.py # Market data retrieval
β βββ preprocessor.py # Data cleaning & transformation
β βββ cache.py # Data caching utilities
β
βββ backtesting/
β βββ engine.py # Backtesting framework
β βββ metrics.py # Performance calculations
β βββ visualizer.py # Results visualization
β
βββ utils/
β βββ config.py # Configuration management
β βββ logger.py # Logging utilities
β βββ helpers.py # Helper functions
β
βββ main.py # Entry point
βββ requirements.txt # Python dependencies
βββ .env.example # Environment variables template
βββ README.md # This file
- Python 3.11 or higher
- pip package manager
- Clone the repository
git clone https://github.com/YOUR_USERNAME/Multi-Agent-Trading-System.git
cd Multi-Agent-Trading-System- Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies
pip install -r requirements.txt- Configure environment
cp .env.example .env
# Edit .env with your API keys (if using real data sources)from agents import PortfolioManager
from agents import ValueAgent, GrowthAgent, TechnicalAgent
from data import DataFetcher
# Initialize agents
value = ValueAgent()
growth = GrowthAgent()
technical = TechnicalAgent()
# Create portfolio manager
portfolio = PortfolioManager(
agents=[value, growth, technical],
capital=100000,
risk_limit=0.02 # 2% max risk per trade
)
# Analyze a stock
ticker = "AAPL"
decision = portfolio.analyze_and_decide(ticker)
print(f"Decision: {decision['action']}")
print(f"Position Size: {decision['shares']} shares")
print(f"Reasoning: {decision['reasoning']}")from backtesting import BacktestEngine
engine = BacktestEngine(
portfolio_manager=portfolio,
start_date="2020-01-01",
end_date="2023-12-31",
initial_capital=100000
)
results = engine.run(tickers=["AAPL", "MSFT", "GOOGL"])
results.plot() # Visualize performanceThe system tracks comprehensive performance metrics:
- Returns: Total return, annualized return, monthly returns
- Risk: Volatility, Sharpe ratio, maximum drawdown
- Win Rate: Percentage of profitable trades
- Trade Statistics: Average win/loss, profit factor
- Agent Contribution: Individual agent performance analysis
- Python 3.11+: Core programming language
- Pandas: Data manipulation and analysis
- NumPy: Numerical computing
- Scikit-learn: Machine learning utilities
- Matplotlib/Plotly: Data visualization
- Requests: API data fetching
This project demonstrates:
- Software Architecture: Multi-agent systems, design patterns
- Financial Analysis: Fundamental, technical, and sentiment analysis
- Risk Management: Position sizing, portfolio optimization
- Data Engineering: API integration, data processing, caching
- Machine Learning: Signal processing, pattern recognition
This software is for educational purposes only.
- Does not constitute financial advice
- Past performance does not guarantee future results
- Trading involves substantial risk of loss
- The authors assume no liability for financial losses
- Always consult with licensed financial advisors
Contributions are welcome! Areas for improvement:
- Additional trading agents (e.g., mean reversion, pairs trading)
- Enhanced risk management algorithms
- Integration with more data sources
- Advanced backtesting features
- Machine learning model improvements
MIT License - see LICENSE file for details
Calvin Owoade
Portfolio: [your-portfolio-site.com]
LinkedIn: [linkedin.com/in/your-profile]
GitHub: @callowo-stack
Built with π§ for learning algorithmic trading and multi-agent systems