Skip to content

charlesvien/ai-hedge-fund

 
 

Repository files navigation

AI Hedge Fund

This is a proof concept for an AI-powered hedge fund. The goal of this project is to explore the use of AI to make trading decisions. This project is for educational purposes only and is not intended for real trading or investment.

This system employs several agents working together:

  1. Market Data Analyst - Gathers and preprocesses market data
  2. Sentiment Agent - Analyzes market sentiment and generates trading signals
  3. Fundamentals Agent - Analyzes fundamental data and generates trading signals
  4. Technical Analyst - Analyzes technical indicators and generates trading signals
  5. Risk Manager - Calculates risk metrics and sets position limits
  6. Portfolio Manager - Makes final trading decisions and generates orders

image

Note: the system simulates trading decisions, it does not actually trade.

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

Setup

Clone the repository:

git clone https://github.com/virattt/ai-hedge-fund.git
cd ai-hedge-fund

System Requirements

  • CPU: Any modern CPU (last 5 years)
  • RAM: 2GB minimum, 4GB recommended
  • Storage: 1GB free space
  • Internet: Stable connection required
  • No GPU required

The system is lightweight as it primarily manages workflows between APIs (OpenAI and financial data) without running any local AI models.

Option 1: Local Setup

  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:
# Create .env file for your API keys
cp .env.example .env

export OPENAI_API_KEY='your-api-key-here' # Get a key from https://platform.openai.com/
export FINANCIAL_DATASETS_API_KEY='your-api-key-here' # Get a key from https://financialdatasets.ai/

Option 2: Docker Setup

You can either build the image locally or use our official image from GitHub Container Registry:

Using the Official Image

  1. Create and configure your .env file as explained above.

  2. Pull and run the official image using docker compose:

# Run the trading agent
docker compose run agent --ticker AAPL

# Run the backtester
docker compose run backtester --ticker AAPL

# Run with custom parameters
docker compose run agent --ticker AAPL --start-date 2024-01-01 --end-date 2024-03-01 --show-reasoning

The Docker setup uses a lightweight Python 3.9 base image and installs only the required dependencies.

Usage

Running the Hedge Fund

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

You can also specify a --show-reasoning flag to print the reasoning of each agent to the console.

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

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

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

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/                   # Agent definitions and workflow
│   │   ├── fundamentals.py       # Fundamental analysis agent
│   │   ├── market_data.py        # Market data agent
│   │   ├── portfolio_manager.py  # Portfolio management agent
│   │   ├── risk_manager.py       # Risk management agent
│   │   ├── sentiment.py          # Sentiment analysis agent
│   │   ├── state.py              # Agent state
│   │   ├── technicals.py         # Technical analysis agent
│   ├── tools/                    # Agent tools
│   │   ├── api.py                # API tools
│   ├── backtester.py             # Backtesting tools
│   ├── main.py # Main entry point
├── pyproject.toml
├── ...

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

 
 
 

Languages

  • Python 99.1%
  • Dockerfile 0.9%