290 lines
7.9 KiB
Markdown
290 lines
7.9 KiB
Markdown
# Mantle AI Trader
|
||
|
||
<div align="center">
|
||
|
||
<!-- Main Banner -->
|
||
<img src="https://img.shields.io/badge/Mantle%20AI%20Trader-🤖%20Trading%20Bot-blue?style=for-the-badge&logo=robot&logoColor=white&labelColor=1a1a2e&color=16213e" alt="Mantle AI Trader Banner" />
|
||
|
||
<h3>AI-Powered Fundamental News-Based Trading Bot</h3>
|
||
|
||
<!-- Badges -->
|
||
<p>
|
||
<img src="https://img.shields.io/badge/Status-Active-success?style=flat-square" alt="Status" />
|
||
<img src="https://img.shields.io/badge/Platform-Next.js%2016-black?style=flat-square&logo=next.js" alt="Platform" />
|
||
<img src="https://img.shields.io/badge/AI-z--ai--web--dev--sdk-purple?style=flat-square" alt="AI SDK" />
|
||
<img src="https://img.shields.io/badge/Exchange-Bybit-orange?style=flat-square" alt="Exchange" />
|
||
</p>
|
||
|
||
<p><em>Built for Mantle Turing Test Hackathon</em></p>
|
||
|
||
<!-- Made by Badge -->
|
||
<a href="https://rommark.dev" target="_blank">
|
||
<img src="https://img.shields.io/badge/Made%20by-Rommark.Dev-ff6b6b?style=for-the-badge&logo=codeforces&logoColor=white&labelColor=2d3436" alt="Made by Rommark.Dev" />
|
||
</a>
|
||
|
||
</div>
|
||
|
||
## 🚀 Features
|
||
|
||
### Core Trading Capabilities
|
||
- **AI Signal Generation**: Advanced signal generation powered by AI with multi-factor analysis
|
||
- **Fundamental News Analysis**: Real-time news aggregation from multiple sources with sentiment analysis
|
||
- **Technical Analysis**: Comprehensive technical indicators (RSI, MACD, SMA, EMA) and pattern recognition
|
||
- **Risk Assessment**: Intelligent risk scoring and position sizing recommendations
|
||
|
||
### Trading Modes
|
||
- **Demo/Paper Trading**: Test strategies without real money
|
||
- **Manual Mode**: Execute signals manually with full control
|
||
- **Auto-Trading**: Automated signal execution (configurable)
|
||
|
||
### Analysis Tools
|
||
- **Backtesting Engine**: Test strategies on historical data with performance metrics
|
||
- **Signal Rating System**: Track and rate signal performance
|
||
- **Portfolio Analytics**: Real-time P&L tracking and portfolio visualization
|
||
|
||
### Integration
|
||
- **Bybit API**: Full integration with Bybit exchange (spot and futures)
|
||
- **WebSocket Real-time Updates**: Live price feeds and portfolio sync
|
||
- **VectorDB**: Semantic search for news and analysis
|
||
|
||
## 📊 Architecture
|
||
|
||
```
|
||
mantle-ai-trader/
|
||
├── src/
|
||
│ ├── app/ # Next.js App Router
|
||
│ │ ├── api/ # API Routes
|
||
│ │ │ └── trading/ # Trading endpoints
|
||
│ │ └── page.tsx # Main Dashboard
|
||
│ ├── lib/
|
||
│ │ ├── trading/
|
||
│ │ │ ├── core/ # Core types & Bybit client
|
||
│ │ │ ├── signals/ # Signal generation engine
|
||
│ │ │ ├── news/ # News aggregation
|
||
│ │ │ ├── backtest/ # Backtesting engine
|
||
│ │ │ └── demo/ # Paper trading
|
||
│ │ └── vector/ # VectorDB integration
|
||
│ └── components/ui/ # shadcn/ui components
|
||
├── mini-services/
|
||
│ └── trading-service/ # WebSocket service
|
||
├── prisma/
|
||
│ └── schema.prisma # Database schema
|
||
└── tests/ # Test files
|
||
```
|
||
|
||
## 🛠 Installation
|
||
|
||
### Prerequisites
|
||
- Node.js 18+ or Bun
|
||
- SQLite (included)
|
||
- Bybit API keys (optional for live trading)
|
||
|
||
### Setup
|
||
|
||
```bash
|
||
# Clone the repository
|
||
git clone https://github.com/roman-ryzenadvanced/mantle-ai-trader.git
|
||
cd mantle-ai-trader
|
||
|
||
# Install dependencies
|
||
bun install
|
||
|
||
# Initialize database
|
||
bun run db:push
|
||
|
||
# Start development server
|
||
bun run dev
|
||
|
||
# Start WebSocket service (separate terminal)
|
||
bun run trading-service
|
||
```
|
||
|
||
## 📈 Usage
|
||
|
||
### Dashboard
|
||
|
||
Access the dashboard at `http://localhost:3000`
|
||
|
||
1. **Signals Tab**: Generate AI signals for any supported trading pair
|
||
2. **Positions Tab**: View open positions and portfolio allocation
|
||
3. **Backtest Tab**: Run strategy backtests on historical data
|
||
4. **News Tab**: Browse latest market news with sentiment analysis
|
||
|
||
### API Endpoints
|
||
|
||
#### Signals
|
||
```bash
|
||
# Generate signal
|
||
POST /api/trading/signals
|
||
Body: { "symbol": "BTCUSDT", "timeframe": "1h", "demo": true }
|
||
|
||
# Get signals
|
||
GET /api/trading/signals?symbol=BTCUSDT&limit=50
|
||
```
|
||
|
||
#### Demo Trading
|
||
```bash
|
||
# Get portfolio
|
||
GET /api/trading/demo?action=portfolio
|
||
|
||
# Place order
|
||
POST /api/trading/demo
|
||
Body: { "action": "place_order", "symbol": "BTCUSDT", "side": "BUY", "quantity": 0.01, "type": "MARKET" }
|
||
|
||
# Close position
|
||
POST /api/trading/demo
|
||
Body: { "action": "close_position", "symbol": "BTCUSDT" }
|
||
```
|
||
|
||
#### Backtest
|
||
```bash
|
||
# Run backtest
|
||
POST /api/trading/backtest
|
||
Body: {
|
||
"symbol": "BTCUSDT",
|
||
"startDate": "2024-01-01",
|
||
"endDate": "2024-06-01",
|
||
"initialCapital": 10000
|
||
}
|
||
```
|
||
|
||
#### News
|
||
```bash
|
||
# Get news
|
||
GET /api/trading/news?symbol=BTC&limit=20
|
||
|
||
# Get sentiment
|
||
GET /api/trading/news/sentiment?symbol=BTC
|
||
```
|
||
|
||
## 🔧 Configuration
|
||
|
||
### Environment Variables
|
||
|
||
Create a `.env` file:
|
||
|
||
```env
|
||
# Bybit API (optional - for live trading)
|
||
BYBIT_API_KEY=your_api_key
|
||
BYBIT_API_SECRET=your_api_secret
|
||
BYBIT_TESTNET=true
|
||
|
||
# News APIs (optional)
|
||
CRYPTOPANIC_API_KEY=your_key
|
||
CRYPTOCOMPARE_API_KEY=your_key
|
||
|
||
# ChromaDB (optional - for vector search)
|
||
CHROMADB_URL=http://localhost:8000
|
||
|
||
# Database
|
||
DATABASE_URL="file:./prisma/data/mantle-trader.db"
|
||
```
|
||
|
||
### Risk Settings
|
||
|
||
Configure in UserSettings table or via API:
|
||
- Risk Level: CONSERVATIVE, MODERATE, AGGRESSIVE
|
||
- Max Position Size: Default $1,000
|
||
- Max Leverage: Default 5x
|
||
- Auto Trading: Enable/disable automatic execution
|
||
|
||
## 📊 Signal Analysis
|
||
|
||
Each signal includes:
|
||
|
||
### Technical Analysis
|
||
- Trend direction and strength
|
||
- Support and resistance levels
|
||
- RSI, MACD, Moving Averages
|
||
- Candlestick patterns (Doji, Hammer, Engulfing, etc.)
|
||
|
||
### Fundamental Analysis
|
||
- News impact score
|
||
- Market events summary
|
||
- Economic factors
|
||
|
||
### Sentiment Analysis
|
||
- Overall sentiment score (-1 to 1)
|
||
- Sentiment label (Bullish/Bearish/Neutral)
|
||
- Key topics and trending keywords
|
||
|
||
### Risk Assessment
|
||
- Risk score and level
|
||
- Suggested stop-loss and take-profit
|
||
- Position sizing recommendations
|
||
|
||
## 🧪 Testing
|
||
|
||
```bash
|
||
# Run unit tests
|
||
bun test tests/unit/
|
||
|
||
# Run integration tests
|
||
bun test tests/integration/
|
||
|
||
# Run all tests
|
||
bun test
|
||
```
|
||
|
||
## 📝 Documentation
|
||
|
||
- [API Documentation](./docs/API.md)
|
||
- [Architecture Guide](./docs/ARCHITECTURE.md)
|
||
- [Contributing Guide](./docs/CONTRIBUTING.md)
|
||
|
||
## 🔒 Security
|
||
|
||
- API keys are stored encrypted in the database
|
||
- All exchange communications use HTTPS
|
||
- WebSocket connections support authentication
|
||
- Rate limiting on all API endpoints
|
||
|
||
## 📜 License
|
||
|
||
MIT License - See [LICENSE](LICENSE) for details.
|
||
|
||
## 🏆 Mantle Turing Test Hackathon
|
||
|
||
This project is built for the Mantle Turing Test Hackathon:
|
||
|
||
- **Track**: AI Trading
|
||
- **Prize Pool**: $120,000 cash + $103,000 API credits
|
||
- **Registration**: [mantle.to/Hackathon](https://mantle.to/Hackathon)
|
||
|
||
### Competition Tracks
|
||
- ✅ AI Trading - Trading bots, strategy automation, Bybit API
|
||
- ✅ AI Alpha & Data - Onchain analytics, anomaly detection
|
||
|
||
## 🤝 Contributing
|
||
|
||
1. Fork the repository
|
||
2. Create a feature branch
|
||
3. Commit your changes
|
||
4. Push to the branch
|
||
5. Open a Pull Request
|
||
|
||
## 📞 Support
|
||
|
||
- GitHub Issues: [Report a bug](https://github.com/roman-ryzenadvanced/mantle-ai-trader/issues)
|
||
- Telegram: [Mantle Hackathon Chat](https://t.me/MantleTuringTestHackathon)
|
||
|
||
---
|
||
|
||
<div align="center">
|
||
|
||
<!-- Made by Rommark.Dev Banner -->
|
||
<a href="https://rommark.dev" target="_blank">
|
||
<img src="https://img.shields.io/badge/____________Made%20with%20❤️%20by%20Rommark.Dev____________-ff6b6b?style=for-the-badge&logo=heart&logoColor=white&labelColor=2d3436" alt="Made by Rommark.Dev" />
|
||
</a>
|
||
|
||
<p><em>for Mantle Turing Test Hackathon</em></p>
|
||
|
||
<!-- Links -->
|
||
<p>
|
||
<a href="https://rommark.dev">🌐 Website</a> •
|
||
<a href="https://github.rommark.dev/admin/mantle-ai-trader">📦 Repository</a> •
|
||
<a href="https://t.me/MantleTuringTestHackathon">💬 Telegram</a>
|
||
</p>
|
||
|
||
</div>
|