Skip to content

joey-gm/ai-hedge-fund

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Hedge Fund

An AI-powered hedge fund that uses multiple agents to make trading decisions. The system employs several specialized agents working together:

  1. Market Data Agent - Gathers and preprocesses market data
  2. Quantitative Agent - Analyzes technical indicators and generates trading signals
  3. Fundamentals Agent - Analyzes fundamental data and generates trading signals
  4. Risk Management Agent - Evaluates portfolio risk and sets position limits
  5. Portfolio Management Agent - Makes final trading decisions and generates orders

Disclaimer

This project is for educational and research purposes only.

  • Not intended for real trading or investment
  • No warranties or guarantees provided
  • Past performance does not indicate future results
  • Creator assumes no liability for financial losses
  • Consult a financial advisor for investment decisions

By using this software, you agree to use it solely for learning purposes.

Table of Contents

Features

  • Multi-agent architecture for sophisticated trading decisions
  • Technical analysis using MACD, RSI, Bollinger Bands, and OBV
  • Fundamental analysis using financial metrics
  • Risk management with position sizing recommendations
  • Portfolio management with automated trading decisions
  • Backtesting capabilities with performance analytics
  • Support for multiple stock tickers

Setup

Clone the repository:

git clone https://github.com/your-repo/ai-hedge-fund.git
cd ai-hedge-fund
  1. Install Poetry (if not already installed):
curl -sSL https://install.python-poetry.org | python3 -
  1. Install dependencies:
poetry install
  1. Set up your environment variables:
cp .env.example .env
export OPENAI_API_KEY='your-api-key-here'
export FINANCIAL_DATASETS_API_KEY='your-api-key-here'

Usage

Running the Hedge Fund

poetry run python src/agents.py --ticker AAPL

Example Output:

{
  "action": "buy",
  "quantity": 50000,
}

You can optionally specify the start and end dates to make decisions for a specific time period.

poetry run python src/agents.py --ticker AAPL --start-date 2024-01-01 --end-date 2024-03-01

Running the Hedge Fund (with Reasoning)

This will print the reasoning of each agent to the console.

poetry run python src/agents.py --ticker AAPL --show-reasoning

Example Output:

==========         Quant Agent          ==========
{
  "signal": "bearish",
  "confidence": 0.5,
  "reasoning": {
    "MACD": {
      "signal": "neutral",
      "details": "MACD Line crossed neither above nor below Signal Line"
    },
    "RSI": {
      "signal": "bearish",
      "details": "RSI is 72.07 (overbought)"
    },
    "Bollinger": {
      "signal": "bearish",
      "details": "Price is above upper band"
    },
    "OBV": {
      "signal": "bullish",
      "details": "OBV slope is 30612582.00 (bullish)"
    }
  }
}
========================================

==========    Risk Management Agent     ==========
{
  "max_position_size": 10000.0,
  "risk_score": 6,
  "trading_action": "hold",
  "reasoning": "The overall signal is bearish with moderate confidence, indicated by overbought RSI and price above the Bollinger band, suggesting potential downside. However, the bullish OBV could offset some bearish pressure. Therefore, it's prudent to hold off on new positions until clearer direction emerges."
}
========================================

==========  Portfolio Management Agent  ==========
{
  "action": "hold",
  "quantity": 0,
  "reasoning": "The team's analysis indicates a bearish outlook with moderate confidence due to overbought RSI and price above the Bollinger band, while the bullish OBV suggests some counterbalancing. The risk management team recommends holding off on new positions until clearer direction emerges. Additionally, the current portfolio has no shares to sell, and the risk profile advises against new purchases."
}
========================================

Running the Backtester

poetry run python src/backtester.py --ticker AAPL

Example Output:

Starting backtest...
Date         Ticker Action Quantity    Price         Cash    Stock  Total Value
----------------------------------------------------------------------
2024-01-01   AAPL   buy       519.0   192.53        76.93    519.0    100000.00
2024-01-02   AAPL   hold          0   185.64        76.93    519.0     96424.09
2024-01-03   AAPL   hold          0   184.25        76.93    519.0     95702.68
2024-01-04   AAPL   hold          0   181.91        76.93    519.0     94488.22
2024-01-05   AAPL   hold          0   181.18        76.93    519.0     94109.35
2024-01-08   AAPL   sell        519   185.56     96382.57      0.0     96382.57
2024-01-09   AAPL   buy       520.0   185.14       109.77    520.0     96382.57

You can optionally specify the start and end dates to backtest over a specific time period.

poetry run python src/backtester.py --ticker AAPL --start-date 2024-01-01 --end-date 2024-03-01

Project Structure

ai-hedge-fund/
├── src/
│   ├── agents.py # Main agent definitions and workflow
│   ├── backtester.py # Backtesting functionality
│   ├── tools.py # Agent tools
├── pyproject.toml # Poetry configuration
├── .env.example # Environment variables
└── README.md # Documentation

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

An AI Hedge Fund Team

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%