# Système de Monitoring Trading Bot

## Vue d'ensemble

Système complet de monitoring périodique pour analyser les performances du bot de trading avec Claude AI.

## Architecture

```
crypto-trader.service (trading principal)
    ↓
crypto-monitoring.timer (toutes les 2h)
    ↓
crypto-monitoring.service
    ↓
monitoring_bot.py → claude_analyzer.py → Analyse Claude
```

## Composants

### 1. monitoring_bot.py
- **Fonction**: Collecte et analyse des données de trading
- **Données récupérées**:
  - Trades exécutés (executed_trades)
  - Signaux générés (executed_signals)
  - Données de marché (chandeliers via Hyperliquid)
  - Métriques de performance
- **Modes d'exécution**:
  - Unique: `python3 monitoring_bot.py --hours 24`
  - Démon: `python3 monitoring_bot.py --daemon --interval 3600`

### 2. claude_analyzer.py
- **Fonction**: Interface avec l'API Claude pour analyse
- **Prérequis**: Variable d'environnement `ANTHROPIC_API_KEY`
- **Sortie**: Analyse textuelle détaillée + sauvegarde fichier

### 3. Services systemd

#### crypto-monitoring.timer
- **Fréquence**: Toutes les 2 heures (0/2:00)
- **Décalage aléatoire**: 0-10 minutes pour éviter la surcharge
- **Statut**: `systemctl status crypto-monitoring.timer`

#### crypto-monitoring.service
- **Dépendance**: crypto-trader.service
- **Redémarrage**: Automatique en cas d'erreur
- **Logs**: `journalctl -u crypto-monitoring -f`

## Configuration

### Variables d'environnement
```bash
export ANTHROPIC_API_KEY="your_claude_api_key"
```

### Fichiers de configuration
- `/etc/systemd/system/crypto-monitoring.service`
- `/etc/systemd/system/crypto-monitoring.timer`

## Utilisation

### Activation
```bash
# Activer le timer
systemctl enable crypto-monitoring.timer
systemctl start crypto-monitoring.timer

# Vérifier le statut
systemctl status crypto-monitoring.timer
systemctl list-timers crypto-monitoring.timer
```

### Test manuel
```bash
# Test complet du système
python3 test_monitoring.py

# Exécution unique
python3 monitoring_bot.py --hours 24

# Vérification debug
cat logs/test_prompt.txt
cat logs/analysis_data_*.json
```

### Monitoring
```bash
# Logs en temps réel
journalctl -u crypto-monitoring -f

# Dernières analyses
ls -la logs/claude_analysis_*.txt
ls -la logs/analysis_data_*.json

# Statut services
systemctl status crypto-trader crypto-monitoring
```

## Données analysées

### Métriques extraites
- **Performance**: Nombre de trades, PnL total, taux d'exécution
- **Signaux**: Générés vs exécutés, raisons de rejet
- **Positions**: Actives, historique, symboles tradés
- **Marché**: Données de chandeliers, variations de prix

### Base de données
Tables utilisées:
- `executed_trades`: Historique des trades
- `executed_signals`: Signaux et leur exécution
- `positions`: Positions ouvertes/fermées

## Analyse Claude

### Prompt généré
Le système génère automatiquement un prompt détaillé incluant:
- Performances générales (24h)
- Trades récents (top 15)
- Signaux récents (top 15)
- Données de marché (chandeliers)

### Rapport d'analyse
Claude fournit:
1. **Évaluation des performances**: Taux de réussite, rentabilité
2. **Analyse des patterns**: Symboles, timing, fréquence
3. **Comportement du bot**: Sélectivité, cohérence
4. **Recommandations**: Ajustements, améliorations
5. **Contexte marché**: Corrélations, adaptations

## Fichiers de sortie

### Logs
- `logs/monitoring_bot.log`: Logs du monitoring
- `logs/claude_analysis_YYYYMMDD_HHMMSS.txt`: Analyses Claude
- `logs/analysis_data_YYYYMMDD_HHMMSS.json`: Données brutes
- `logs/debug_prompt_YYYYMMDD_HHMMSS.txt`: Prompts pour debug

### Rotation
Les fichiers sont horodatés automatiquement. Nettoyage manuel recommandé.

## Dépannage

### Erreurs communes

1. **API Claude non accessible**
   ```bash
   export ANTHROPIC_API_KEY="your_key"
   python3 test_monitoring.py
   ```

2. **Base de données vide**
   ```bash
   # Vérifier que crypto-trader fonctionne
   systemctl status crypto-trader
   journalctl -u crypto-trader -n 50
   ```

3. **Timer ne se déclenche pas**
   ```bash
   systemctl daemon-reload
   systemctl restart crypto-monitoring.timer
   systemctl list-timers
   ```

### Debug
```bash
# Test sans API
python3 test_monitoring.py

# Vérification structure DB
python3 -c "import sqlite3; conn = sqlite3.connect('crypto_trader.db'); cursor = conn.cursor(); cursor.execute('SELECT name FROM sqlite_master WHERE type=\"table\"'); print([row[0] for row in cursor.fetchall()])"

# Test prompt généré
cat logs/test_prompt.txt
```

## Performance

- **Fréquence recommandée**: 1-4h (actuel: 2h)
- **Données analysées**: 24-48h glissantes
- **Temps d'exécution**: 10-30s (selon API Claude)
- **Stockage**: ~1MB/jour (logs + JSON)

## Sécurité

- Clé API Claude stockée en variable d'environnement
- Logs en local uniquement
- Aucune donnée sensible dans les prompts
- Accès restreint aux fichiers de service