Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/the-swarm-corporation/backtesteragent

An enterprise-grade AI-powered backtesting framework built on the Swarms framework for automated trading strategy validation and optimization.
https://github.com/the-swarm-corporation/backtesteragent

ai backtesting data finance finance-agents jpmorgan yahoofinance

Last synced: 25 days ago
JSON representation

An enterprise-grade AI-powered backtesting framework built on the Swarms framework for automated trading strategy validation and optimization.

Awesome Lists containing this project

README

        

# BackTesterAgent πŸš€

[![Join our Discord](https://img.shields.io/badge/Discord-Join%20our%20server-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/agora-999382051935506503) [![Subscribe on YouTube](https://img.shields.io/badge/YouTube-Subscribe-red?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/@kyegomez3242) [![Connect on LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-blue?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/kye-g-38759a207/) [![Follow on X.com](https://img.shields.io/badge/X.com-Follow-1DA1F2?style=for-the-badge&logo=x&logoColor=white)](https://x.com/kyegomezb)

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)
[![Swarms](https://img.shields.io/badge/Powered%20by-Swarms-orange)](https://github.com/kyegomez/swarms)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Downloads](https://static.pepy.tech/personalized-badge/backtesteragent?period=total&units=international_system&left_color=grey&right_color=brightgreen&left_text=Downloads)](https://pepy.tech/project/backtesteragent)

An enterprise-grade AI-powered backtesting framework built on the Swarms framework for automated trading strategy validation and optimization.

## 🌟 Features

- **Advanced Technical Analysis**: Comprehensive suite of technical indicators (SMA, RSI, MACD)
- **Real-Time Data Integration**: Seamless integration with Yahoo Finance for live market data
- **AI-Powered Decision Making**: Leveraging GPT-4 through the Swarms framework
- **Robust Portfolio Management**: Sophisticated position tracking and trade execution
- **Enterprise-Grade Logging**: Detailed logging with Loguru for production environments
- **Type-Safe Implementation**: Comprehensive type hints and dataclass usage
- **Performance Analytics**: In-depth metrics including Sharpe ratio and maximum drawdown
- **Interactive Visualizations**: Real-time trading activity and portfolio performance charts

## πŸ› οΈ Installation

```bash
pip3 install -U backtester-agent
```

## πŸ“‹ Requirements

- Python 3.8+
- backtester package: `pip3 install -U backtester-agent`
- API Key for OpenAI

## πŸš€ Quick Start

```python
from backtester_agent.main import run_backtest

run_backtest(cash=500.0, symbol="AAPL", start_date="2024-11-16", end_date="2024-11-18", trade_size=10)
```

## πŸ“Š Example Output

```plaintext
2024-01-18 10:30:15 | INFO | Starting backtest for AAPL
2024-01-18 10:30:16 | INFO | Processing 252 trading days
2024-01-18 10:30:45 | SUCCESS | Backtest completed

Backtest Results:
Initial Portfolio Value: $100,000.00
Final Portfolio Value: $125,432.10
Total Return: 25.43%
Sharpe Ratio: 1.85
Maximum Drawdown: -8.32%
Total Trades: 45
```

## πŸ”§ Configuration

Configure the agent through environment variables or a config file:

```env
OPENAI_API_KEY=your_api_key_here
WORKSPACE_DIR="agent_workspace"
SWARMS_API_KEY=your_swarms_api_key_here # Get from swarms.ai dashboard
```

## πŸ—οΈ Architecture

```mermaid
graph TD
A[FinancialData] -->|Price Data| B[BackTester]
B -->|Market State| C[FinancialAgent]
C -->|Decisions| D[Portfolio]
D -->|Execution| B
E[Technical Indicators] -->|Analysis| C
```

## πŸ“ˆ Performance Metrics

The BackTesterAgent provides comprehensive performance analytics:

- Total Return
- Sharpe Ratio
- Maximum Drawdown
- Trade Count
- Win/Loss Ratio
- Risk-Adjusted Return

## πŸ” Logging and Monitoring

Detailed logging is implemented using Loguru:

```python
logger.add(
"backtester_{time}.log",
rotation="500 MB",
retention="10 days",
level="INFO"
)
```

## πŸ”’ Security

- Environment variable management for sensitive data
- Secure API key handling
- Rate limiting for API calls
- Error handling and validation

## 🀝 Contributing

We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit your changes (`git commit -m 'Add AmazingFeature'`)
4. Push to the branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

## πŸ“œ License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## πŸ™ Acknowledgments

- [Swarms Framework](https://github.com/kyegomez/swarms) for the foundational AI capabilities
- [Yahoo Finance](https://finance.yahoo.com/) for market data
- All contributors and maintainers

## πŸ“ž Support

- Documentation: [Link to Docs]
- Issues: [GitHub Issues](https://github.com/yourusername/backtesteragent/issues)
- Email: [email protected]
- Discord: [Join our community](https://discord.gg/backtesteragent)

## πŸ—ΊοΈ Roadmap

- [ ] Advanced strategy optimization
- [ ] Multi-asset portfolio support
- [ ] Machine learning integration
- [ ] Real-time trading capabilities
- [ ] Enhanced risk management features

## πŸ“Š Benchmarks

Performance benchmarks against standard trading strategies:

| Strategy | Return | Sharpe Ratio | Max Drawdown |
|----------|---------|--------------|--------------|
| Buy & Hold | 15.2% | 0.95 | -12.3% |
| BackTesterAgent | 25.4% | 1.85 | -8.3% |
| Market Index | 12.1% | 0.82 | -15.7% |

---

Built with ❀️ by [Swarms](https://swarms.ai)