8.7 KiB
8.7 KiB
🤖 Autonomous Trading System
A 24/7 intelligent trading system that monitors your IBKR portfolio, analyzes multiple data sources, and provides actionable trading signals.
🚀 Features
Real-Time Monitoring
- IBKR Portfolio Sync - Live connection to your Interactive Brokers account
- Position Tracking - Monitor P&L, cost basis, and performance
- Risk Management - Automatic alerts for position limits and losses
Multi-Source Intelligence
- Congressional Trades - Track politician stock trades via QuiverQuant
- Insider Trading - Monitor SEC filings and insider activity
- Market Sentiment - News analysis and social media sentiment
- Technical Analysis - Support/resistance, RSI, moving averages
- AI Analysis - TradingAgents multi-agent evaluation
Smart Alerts
- Trading Signals - Specific entry/exit prices with confidence scores
- Risk Warnings - Position concentration and loss alerts
- Opportunity Detection - Congressional trades matching your portfolio
- Multi-Channel - Discord, Telegram, Email notifications
📋 Prerequisites
- Interactive Brokers Account with TWS or IB Gateway
- API Keys:
- OpenAI API key (required)
- Alpha Vantage API key (required)
- QuiverQuant API key (optional, for congressional trades)
- Discord Webhook URL (optional, for alerts)
🛠️ Installation
1. Install Dependencies
# Install autonomous system requirements
pip install -r requirements_autonomous.txt
# Install base TradingAgents requirements
pip install -r requirements.txt
2. Configure IBKR
- Open TWS or IB Gateway
- Enable API connections:
- File → Global Configuration → API → Settings
- Enable "Enable ActiveX and Socket Clients"
- Add "127.0.0.1" to trusted IPs
- Note the port:
- TWS Paper: 7497
- TWS Live: 7496
- IB Gateway Paper: 4002
- IB Gateway Live: 4001
3. Set Environment Variables
Create or update .env file:
# === REQUIRED ===
OPENAI_API_KEY=your-openai-key
ALPHA_VANTAGE_API_KEY=your-alpha-vantage-key
# === IBKR Settings ===
IBKR_HOST=127.0.0.1
IBKR_PORT=7497 # Paper trading port
IBKR_CLIENT_ID=1
# === Optional Data Sources ===
QUIVER_API_KEY=your-quiver-key # For congressional trades
POLYGON_API_KEY=your-polygon-key # For real-time data
NEWS_API_KEY=your-news-api-key # For news aggregation
# === Notifications (at least one recommended) ===
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/...
TELEGRAM_BOT_TOKEN=your-telegram-bot-token
TELEGRAM_CHAT_ID=your-chat-id
# === Trading Settings ===
TRADING_ENABLED=false # Set to true to enable trading
PAPER_TRADING=true # Use paper account
MAX_POSITION_SIZE=0.20 # Max 20% per position
CONFIDENCE_THRESHOLD=70 # Min confidence for trades
🎯 Quick Start
1. Test Connection
# Test IBKR connection
python -c "from autonomous.ibkr_connector import IBKRConnector; import asyncio; asyncio.run(IBKRConnector().connect())"
2. Start Monitoring (Safe Mode)
# Start with monitoring only (no trading)
TRADING_ENABLED=false python autonomous_trader.py
3. Paper Trading
# Test with paper account
PAPER_TRADING=true TRADING_ENABLED=true python autonomous_trader.py
4. Live Trading (⚠️ Use with caution!)
# Live trading - BE VERY CAREFUL
PAPER_TRADING=false TRADING_ENABLED=true python autonomous_trader.py
📊 System Architecture
┌─────────────────────────────────────────────────┐
│ AUTONOMOUS TRADER │
├─────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ IBKR │ │ Data │ │ AI │ │
│ │ Connector│ │Aggregator│ │ Analysis │ │
│ └─────┬────┘ └─────┬────┘ └─────┬────┘ │
│ └─────────────┼─────────────┘ │
│ │ │
│ ┌───────▼────────┐ │
│ │Signal Processor│ │
│ └───────┬────────┘ │
│ │ │
│ ┌────────────┼────────────┐ │
│ │ │ │ │
│ ┌────▼───┐ ┌────▼───┐ ┌────▼───┐ │
│ │ Alerts │ │ Risk │ │ Orders │ │
│ │ Engine │ │ Manager│ │(Future)│ │
│ └────────┘ └────────┘ └────────┘ │
│ │
└─────────────────────────────────────────────────┘
📱 Alert Examples
Trading Signal Alert
🎯 ACTION: BUY
📈 TICKER: NVDA
💰 ENTRY: $132.50 - $133.00
🎯 TARGET 1: $138.00 (+4.1%)
🛑 STOP LOSS: $129.00 (-2.6%)
📊 CONFIDENCE: 85%
📝 REASONING:
• Congressional buying detected
• Strong technical breakout
• Positive earnings momentum
Risk Warning Alert
⚠️ Risk Alert: AVGO
AVGO is down 5.2%
Current: $912.45
P&L: -$2,145.00
Consider stop loss or hedging
🕐 Schedule
The system runs these tasks automatically:
| Task | Frequency | Description |
|---|---|---|
| Portfolio Sync | 5 min | Update positions and P&L |
| Market Scan | 15 min | Look for opportunities |
| Congressional Check | 1 hour | New politician trades |
| News Monitor | 30 min | Sentiment analysis |
| Risk Check | 30 min | Portfolio risk assessment |
| Daily Summary | 4:30 PM | End of day report |
🛡️ Safety Features
- Position Limits - Max 20% in any single position
- Daily Loss Limit - Stops at 5% daily loss
- Paper Trading Mode - Test without real money
- Manual Confirmation - Required for large trades
- Stop Loss - Automatic stop loss recommendations
- Circuit Breakers - Halts during extreme volatility
🔧 Customization
Add Custom Indicators
Edit autonomous/signal_processor.py:
async def calculate_custom_indicator(self, ticker: str):
# Your custom logic here
pass
Modify Alert Channels
Edit autonomous/alert_engine.py:
async def _send_custom_channel(self, title, message):
# Your custom notification method
pass
Change Trading Rules
Edit autonomous/config/settings.py:
MAX_POSITION_SIZE = 0.15 # 15% instead of 20%
CONFIDENCE_THRESHOLD = 80 # Require 80% confidence
📈 Performance Monitoring
View logs and metrics:
# View real-time logs
tail -f autonomous_trader.log
# Check alert history
python -c "from autonomous.alert_engine import AlertEngine; print(AlertEngine().alert_history)"
🐛 Troubleshooting
IBKR Connection Issues
- Ensure TWS/Gateway is running
- Check API settings are enabled
- Verify port number matches config
- Check firewall isn't blocking connection
No Alerts Received
- Verify at least one notification channel is configured
- Check webhook URLs are correct
- Test with console output first
High API Usage
- Reduce
MARKET_SCAN_INTERVALin config - Use fewer models or smaller LLMs
- Implement caching for repeated queries
⚠️ Disclaimer
This system is for educational and research purposes only.
- Trading involves substantial risk of loss
- Past performance doesn't guarantee future results
- Always do your own research
- Start with paper trading
- Never risk more than you can afford to lose
📚 Resources
🤝 Support
For issues or questions:
- Check the logs:
autonomous_trader.log - Review configuration in
.env - Test components individually
- Open an issue with error details
Remember: Start small, test thoroughly, and never trade with money you can't afford to lose! 🎯