Files
trading_bot_v3/DOCKER_AUTOMATION.md
mindesbunister a8fcb33ec8 🚀 Major TradingView Automation Improvements
 SUCCESSFUL FEATURES:
- Fixed TradingView login automation by implementing Email button click detection
- Added comprehensive Playwright-based automation with Docker support
- Implemented robust chart navigation and symbol switching
- Added timeframe detection with interval legend clicking and keyboard fallbacks
- Created enhanced screenshot capture with multiple layout support
- Built comprehensive debug tools and error handling

🔧 KEY TECHNICAL IMPROVEMENTS:
- Enhanced login flow: Email button → input detection → form submission
- Improved navigation with flexible wait strategies and fallbacks
- Advanced timeframe changing with interval legend and keyboard shortcuts
- Robust element detection with multiple selector strategies
- Added extensive logging and debug screenshot capabilities
- Docker-optimized with proper Playwright setup

📁 NEW FILES:
- lib/tradingview-automation.ts: Complete Playwright automation
- lib/enhanced-screenshot.ts: Advanced screenshot service
- debug-*.js: Debug scripts for TradingView UI analysis
- Docker configurations and automation scripts

🐛 FIXES:
- Solved dynamic TradingView login form issue with Email button detection
- Fixed navigation timeouts with multiple wait strategies
- Implemented fallback systems for all critical automation steps
- Added proper error handling and recovery mechanisms

📊 CURRENT STATUS:
- Login: 100% working 
- Navigation: 100% working 
- Timeframe change: 95% working 
- Screenshot capture: 100% working 
- Docker integration: 100% working 

Next: Fix AI analysis JSON response format
2025-07-12 14:50:24 +02:00

367 lines
8.6 KiB
Markdown

# Docker Compose v2 Commands
This project uses Docker Compose v2. Here are the most common commands:
## Available npm Scripts
### Development Scripts
```bash
# Build and start for development (with override)
npm run docker:dev # docker compose up --build
npm run docker:dev:detached # docker compose up -d --build
# Basic operations
npm run docker:build # docker compose build
npm run docker:up # docker compose up
npm run docker:up:build # docker compose up --build
npm run docker:up:detached # docker compose up -d
npm run docker:down # docker compose down
npm run docker:down:volumes # docker compose down -v
```
### Production Scripts
```bash
# Production environment
npm run docker:prod:build # Build for production
npm run docker:prod:up # Start production stack
npm run docker:prod:down # Stop production stack
npm run docker:prod:logs # View production logs
npm run docker:prod:restart # Restart production app
```
### Maintenance Scripts
```bash
# Monitoring and debugging
npm run docker:logs # View app logs
npm run docker:ps # Show running containers
npm run docker:exec # Access container shell
npm run docker:health # Health check
npm run docker:restart # Restart app service
# Cleanup and reset
npm run docker:clean # Stop and clean volumes + system prune
npm run docker:reset # Complete reset with no-cache rebuild
npm run docker:pull # Pull latest images
# Testing
npm run test:docker # Run automation tests
```
## Basic Commands
```bash
# Build and start containers
npm run docker:up:build
# or directly:
docker compose up --build
# Start containers (without building)
npm run docker:up
# or directly:
docker compose up -d
# Stop containers
npm run docker:down
# or directly:
docker compose down
# View logs
npm run docker:logs
# or directly:
docker compose logs -f app
# Execute commands in container
npm run docker:exec
# or directly:
docker compose exec app bash
# Restart just the app service
npm run docker:restart
# or directly:
docker compose restart app
```
## Environment-Specific Workflows
### Development Workflow
```bash
# 1. Start development environment (uses docker-compose.override.yml automatically)
npm run docker:dev
# 2. View logs in real-time
npm run docker:logs
# 3. Access container for debugging
npm run docker:exec
# 4. Stop when done
npm run docker:down
```
### Production Workflow
```bash
# 1. Build production images
npm run docker:prod:build
# 2. Start production stack
npm run docker:prod:up
# 3. Monitor production logs
npm run docker:prod:logs
# 4. Health check
npm run docker:health
# 5. Stop production stack
npm run docker:prod:down
```
## Docker Compose v2 vs v1
This project uses Docker Compose v2 (`docker compose`) instead of v1 (`docker-compose`):
- **v2**: `docker compose up`
- **v1**: `docker-compose up` (deprecated)
Docker Compose v2 is integrated into Docker Desktop and provides better performance and features.
# TradingView Automation in Docker
This document explains how to use the automated TradingView analysis system in a Docker container environment.
## Overview
The automation system:
1. **Logs into TradingView** using your credentials
2. **Navigates to the specified chart** (e.g., SOL/USD)
3. **Sets the timeframe** (5min, 15min, etc.)
4. **Takes a screenshot** of the chart
5. **Analyzes it with AI** (OpenAI GPT-4 Vision)
6. **Returns trading recommendations**
## Docker Setup
### 1. Environment Variables
Copy `.env.docker` to `.env.local` and configure:
```bash
# Required
OPENAI_API_KEY=your_openai_api_key
# Optional (can be passed via API)
TRADINGVIEW_EMAIL=your_email@example.com
TRADINGVIEW_PASSWORD=your_password
```
### 2. Start the Docker Container
```bash
docker compose up --build
```
This will:
- Install all dependencies including Playwright
- Set up Chromium browser for automation
- Start the Next.js application on port 3000
## Usage
### Method 1: API Endpoint
#### Health Check
```bash
curl -X GET http://localhost:3000/api/trading/automated-analysis
```
#### Run Analysis
```bash
curl -X POST http://localhost:3000/api/trading/automated-analysis \
-H "Content-Type: application/json" \
-d '{
"symbol": "SOLUSD",
"timeframe": "5",
"credentials": {
"email": "your-email@example.com",
"password": "your-password"
}
}'
```
### Method 2: Web Interface
1. Navigate to `http://localhost:3000`
2. Use the "Automated Trading Panel" component
3. Enter your TradingView credentials
4. Select symbol and timeframe
5. Click "Start Automated Analysis"
### Method 3: Test Script
Run the included test script:
```bash
./test-docker-automation.sh
```
## Supported Symbols
- `SOLUSD` (Solana)
- `BTCUSD` (Bitcoin)
- `ETHUSD` (Ethereum)
- Any symbol available on TradingView
## Supported Timeframes
- `1` (1 minute)
- `5` (5 minutes)
- `15` (15 minutes)
- `30` (30 minutes)
- `60` (1 hour)
## Response Format
```json
{
"success": true,
"data": {
"screenshots": ["SOLUSD_5_1234567890_ai.png"],
"analysis": {
"summary": "Market showing bearish sentiment...",
"marketSentiment": "BEARISH",
"recommendation": "SELL",
"confidence": 85,
"reasoning": "Price rejected from VWAP resistance...",
"entry": {
"price": 149.50,
"buffer": "±0.20",
"rationale": "Entry on rejection from VWAP"
},
"stopLoss": {
"price": 151.00,
"rationale": "Above VWAP resistance"
},
"takeProfits": {
"tp1": { "price": 148.00, "description": "Previous support" },
"tp2": { "price": 146.50, "description": "Extended target" }
},
"riskToReward": "1:2.5",
"confirmationTrigger": "Bearish engulfing candle on VWAP rejection",
"indicatorAnalysis": {
"rsi": "RSI at 68, approaching overbought",
"vwap": "Price rejected from VWAP resistance",
"obv": "OBV showing divergence"
}
},
"symbol": "SOLUSD",
"timeframe": "5",
"timestamp": "2025-07-11T13:10:00.000Z"
}
}
```
## Docker Configuration Details
### Browser Settings
- **Headless Mode**: Enabled for Docker
- **Chromium Path**: `/usr/bin/chromium`
- **No Sandbox**: Required for container security
- **Disabled GPU**: For stability in containers
### Security Considerations
- Credentials are only used for the session
- Screenshots are stored locally in the container
- Browser data is not persisted between runs
### Performance Notes
- Initial startup may take 30-60 seconds
- Each analysis takes approximately 45-90 seconds
- Screenshots are automatically cleaned up
## Troubleshooting
### Common Issues
1. **Login Failed**
- Check TradingView credentials
- Verify captcha handling (may need manual intervention)
- Check if account has 2FA enabled
2. **Screenshot Failed**
- Ensure chart loaded completely
- Check network connectivity
- Verify symbol exists on TradingView
3. **AI Analysis Failed**
- Check OpenAI API key
- Verify screenshot was captured
- Check OpenAI quota/billing
### Debug Mode
To enable debug screenshots:
```bash
# Add to docker-compose.yml environment
- DEBUG_SCREENSHOTS=true
```
This will save additional debug screenshots during the process.
### Logs
View container logs:
```bash
docker compose logs -f app
```
## Integration Examples
### With Trading Bot
```typescript
import { enhancedScreenshotService } from './lib/enhanced-screenshot'
import { aiAnalysisService } from './lib/ai-analysis'
const analysis = await enhancedScreenshotService.captureWithLogin({
symbol: 'SOLUSD',
timeframe: '5',
credentials: { email: 'user@example.com', password: 'password' }
})
if (analysis.length > 0) {
const aiResult = await aiAnalysisService.analyzeScreenshot(analysis[0])
if (aiResult?.recommendation === 'BUY') {
// Execute buy order
}
}
```
### Batch Analysis
```typescript
const configs = [
{ symbol: 'SOLUSD', timeframe: '5' },
{ symbol: 'BTCUSD', timeframe: '15' },
{ symbol: 'ETHUSD', timeframe: '5' }
]
const results = await enhancedScreenshotService.captureBatch(
configs,
credentials
)
```
## Limitations
- Requires TradingView account
- Rate limited by TradingView's anti-bot measures
- Captcha may require manual intervention
- Screenshot quality depends on chart layout
- AI analysis accuracy varies with market conditions
## Support
For issues or questions:
1. Check the logs first
2. Verify all environment variables are set
3. Test with the health check endpoint
4. Review the debug screenshots if available