# 🔧 Guide de Maintenance du Bot

## Vue d'ensemble

L'onglet **Maintenance** du dashboard offre une interface professionnelle pour surveiller et maintenir votre bot de trading en bon état de fonctionnement. Cet onglet centralise tous les outils de diagnostic, vérification et correction.

---

## 📊 Composants de l'Interface

### 1. État de Santé Global

**Indicateurs affichés:**
- 📂 **Fichiers critiques**: Vérification de la présence de tous les fichiers essentiels
- 💼 **Positions actives**: Nombre de positions ouvertes actuellement
- 📜 **Historique trades**: Nombre de trades enregistrés dans l'historique
- 📝 **Logs (KB)**: Taille totale des fichiers de logs
- ⚙️ **Processus Python**: Nombre de processus Python en cours d'exécution

**Badge de statut:**
- ✅ **Tout va bien**: Système en parfait état
- ⚠️ **Problèmes détectés**: Incohérences trouvées, action recommandée
- ⏳ **En attente**: Aucune vérification n'a encore été effectuée

### 2. Synchronisation Binance

**Métriques:**
- **Positions locales**: Nombre de positions dans `positions.json`
- **Positions Binance**: Nombre de positions sur le compte Binance
- **Désynchronisations**: Nombre d'incohérences détectées

**Types de désynchronisations:**
1. **Positions locales manquantes sur Binance**: Enregistrées dans le bot mais absentes de l'exchange
2. **Positions Binance non trackées**: Présentes sur Binance mais pas dans le bot
3. **Quantités différentes**: Écart entre quantités locales et réelles

**Actions disponibles:**
- 🔍 **Vérifier**: Lance une vérification sans modifier les données
- 🔧 **Corriger**: Applique automatiquement les corrections nécessaires

### 3. Actions Rapides

#### ✅ Quick Check
- **Script**: `quick_check.py`
- **Fonction**: Vérification rapide de l'état du bot
- **Vérifie**:
  - Présence des fichiers critiques
  - Cohérence des positions (SL/TP)
  - Validité de l'historique des trades
  - Taille des logs
  - Processus Python actifs

#### 🔍 Audit Code
- **Script**: `audit_code.py`
- **Fonction**: Vérification approfondie de l'intégrité des données
- **Vérifie**:
  - Validité de tous les fichiers JSON
  - Cohérence des données (positions, trades, config)
  - Imports dupliqués dans le code
  - Fichiers PID orphelins
  - Variables de configuration

#### 🧹 Auto Cleanup
- **Script**: `auto_cleanup.py`
- **Fonction**: Nettoyage préventif automatique
- **Modes**:
  1. **DRY-RUN**: Aperçu des actions sans modification
  2. **EXECUTION**: Application effective des nettoyages

**Actions de nettoyage:**
- Archive des logs volumineux (>30 MB trading_bot.log, >10 MB signals_log, >5 MB trades_log)
- Suppression des fichiers PID orphelins
- Nettoyage des archives anciennes (>30 jours)
- Vérification de l'intégrité des JSON
- Optimisation des caches IA (>200 KB)

#### 📋 Rapport d'Audit
- Ouvre le fichier `AUDIT_REPORT.md` dans un nouvel onglet
- Contient l'analyse de qualité du code et le plan d'action sur 6 mois

---

## 🔄 Scripts de Maintenance

### sync_binance.py

**Usage:**
```bash
# Mode vérification (sans modification)
python sync_binance.py

# Mode correction (applique les corrections)
python sync_binance.py --fix
```

**Fonctionnalités:**
- Compare positions.json avec le compte Binance réel
- Détecte les écarts et incohérences
- Mode --fix: supprime positions manquantes et met à jour les quantités

**Exemple de sortie:**
```
🔄 VÉRIFICATION SYNCHRONISATION BINANCE
📁 Positions locales: 15
💼 Positions Binance: 21

⚠️ POSITIONS LOCALES NON TROUVÉES SUR BINANCE (2):
   • BTCUSDT: 0.001 @ 95000€
   • ETHUSDT: 0.05 @ 3500€

⚠️ QUANTITÉS DÉSYNCHRONISÉES (1):
   • SOLUSDT: Local=5.0 vs Binance=4.8 (Δ=-0.2)

❌ 3 PROBLÈME(S) CRITIQUE(S) - Action requise
```

### auto_cleanup.py

**Usage:**
```bash
# Mode dry-run (aperçu)
python auto_cleanup.py

# Mode execution (applique les modifications)
python auto_cleanup.py --execute
```

**Fonctionnalités:**
- Nettoie les logs volumineux (archive + nouveau fichier)
- Supprime les PID orphelins
- Archive les anciens fichiers (>30 jours)
- Vérifie l'intégrité JSON
- Optimise les caches IA

**Exemple de sortie:**
```
🧹 NETTOYAGE AUTOMATIQUE (DRY-RUN)

📝 Vérification des logs...
   ⚠️ trading_bot.log: 45.2 MB (max: 30 MB)
   ✅ trade_logs/signals_log.jsonl: 149 KB

📦 Vérification des archives...
   ⚠️ Archive ancienne: positions_backup_20250820.json (143 jours)

🔍 MODE DRY-RUN - Aucune modification effectuée
📋 Actions qui seraient effectuées:
   • Log trading_bot.log archivé
   • 1 archive supprimée
```

### quick_check.py

**Usage:**
```bash
python quick_check.py
```

**Fonctionnalités:**
- Vérification ultra-rapide (<5 secondes)
- Idéal pour monitoring quotidien
- Exit code 0 si OK, 1 si erreur

**Exemple de sortie:**
```
⚡ QUICK HEALTH CHECK
📋 VÉRIFICATIONS:
   ✅ trading_bot.py
   ✅ config.py
   ✅ positions.json
   ✅ trade_history.json
   ✅ Positions: 15
   ✅ Trade history: 23 trades
   ✅ Blacklist: 16 exclus
   ✅ Logs: 1096 KB
   ✅ Processus Python: 2

✅ ÉTAT: TOUT VA BIEN
📅 Vérifié: 2026-01-10 11:06:22
```

### audit_code.py

**Usage:**
```bash
python audit_code.py
```

**Fonctionnalités:**
- Vérification approfondie (~30 secondes)
- Détecte incohérences dans les données
- Valide la configuration

**Vérifie:**
1. **Fichiers critiques**: trading_bot.py, config.py, positions.json, etc.
2. **JSON**: Parsing et validation
3. **Cohérence des données**: SL/TP, prix des trades
4. **Imports**: Détection de doublons
5. **PID**: Fichiers orphelins
6. **Configuration**: Variables STOP_LOSS_PERCENT, TAKE_PROFIT_PERCENT

---

## 📜 Historique des Maintenances

Le tableau d'historique enregistre toutes les actions effectuées:

**Colonnes:**
- **Timestamp**: Date et heure de l'action
- **Action**: Nom de l'opération (Health Check, Binance Sync, etc.)
- **Résultat**: Description du résultat
- **Statut**: ✅ Success | ⚠️ Warning | ❌ Error

**Limite:** 50 dernières actions conservées

---

## ⚠️ Incohérences & Problèmes Détectés

Cette section affiche dynamiquement les problèmes trouvés lors des vérifications:

**Types d'incohérences:**
1. **Positions invalides**: SL > entry_price pour BUY, ou SL < entry_price pour SELL
2. **Trades aberrants**: Prix >$1M ou quantité anormale
3. **Fichiers manquants**: Fichiers critiques absents
4. **JSON corrompu**: Erreur de parsing
5. **Désynchronisation Binance**: Écart entre local et exchange

**Pour chaque problème:**
- Description claire
- Fichier concerné
- Action recommandée
- Bouton de correction automatique (si disponible)

---

## 🎯 Bonnes Pratiques

### Routine Quotidienne
1. Ouvrir l'onglet **Maintenance**
2. Cliquer sur **🔄 Vérification complète**
3. Vérifier le badge de statut (doit être ✅)
4. Si problèmes: cliquer sur les boutons de correction

### Routine Hebdomadaire
1. **Quick Check** pour état général
2. **Binance Sync** pour vérifier cohérence
3. **Auto Cleanup** en mode DRY-RUN pour voir ce qui peut être nettoyé
4. Si nécessaire: exécuter cleanup en mode EXECUTION

### Routine Mensuelle
1. **Audit Code** complet
2. Consulter **Rapport d'Audit** pour suivre la progression du refactoring
3. Vérifier l'historique des maintenances
4. Appliquer nettoyage complet (logs, archives, caches)

---

## 🚨 Alertes & Seuils

**Logs trop volumineux:**
- ⚠️ Warning: >10 MB pour signals_log, >5 MB pour trades_log
- 🔴 Critique: >30 MB pour trading_bot.log
- **Action**: Auto-archivage via auto_cleanup.py

**Processus Python:**
- ✅ OK: 2 processus (bot + dashboard)
- ⚠️ Warning: 1 processus (un service manque)
- 🔴 Critique: 0 processus (bot arrêté)

**Désynchronisation Binance:**
- ✅ OK: 0 désynchronisation
- ⚠️ Warning: 1-5 désynchronisations mineures
- 🔴 Critique: >5 désynchronisations ou quantités très différentes

**Fichiers JSON:**
- ✅ OK: Tous valides
- 🔴 Critique: Un ou plusieurs JSON corrompus (empêche démarrage bot)

---

## 🔧 Dépannage

### Le bot ne démarre pas
1. Vérifier **Processus Python**: doit être 2
2. Lancer **Audit Code** pour vérifier fichiers JSON
3. Vérifier les logs dans `trading_bot.log`
4. Si JSON corrompu: restaurer depuis backup

### Incohérences persistantes
1. Lancer **Binance Sync - Vérifier**
2. Si désynchronisations: cliquer sur **Corriger**
3. Relancer **Quick Check** pour confirmer

### Dashboard lent
1. Vérifier taille des logs (Health Check)
2. Si >30 MB: lancer **Auto Cleanup**
3. Vider les caches IA (auto_cleanup s'en charge)

### Positions fantômes
- Symptôme: Positions dans bot mais pas sur Binance
- Cause: Trade échoué ou annulé côté exchange
- Solution: **Binance Sync - Corriger** (supprime automatiquement)

---

## 📊 Intégration API

Les endpoints utilisés par le dashboard:

```javascript
// Health check global
GET /api/maintenance/health
Response: { status, output, timestamp, metrics: { positions, trades, blacklist, logs_kb, processes } }

// Vérification sync Binance
GET /api/maintenance/binance-sync
Response: { status, output, timestamp }

// Correction sync Binance
POST /api/maintenance/fix-sync
Response: { success, output, timestamp }

// Audit code
GET /api/maintenance/audit
Response: { status, output, timestamp }

// Nettoyage
POST /api/maintenance/cleanup
Body: { execute: boolean }
Response: { success, output, timestamp }
```

---

## 📝 Fichiers Créés

1. **sync_binance.py** (5.8 KB)
   - Vérification synchronisation Binance
   - Correction automatique des désynchronisations

2. **auto_cleanup.py** (4.2 KB)
   - Nettoyage préventif automatique
   - Modes DRY-RUN et EXECUTION

3. **Routes API** dans `dashboard_server.py`
   - `/api/maintenance/health`
   - `/api/maintenance/binance-sync`
   - `/api/maintenance/fix-sync`
   - `/api/maintenance/audit`
   - `/api/maintenance/cleanup`

4. **Onglet Maintenance** dans `dashboard.html`
   - Interface complète avec 5 sections
   - 270+ lignes HTML/CSS
   - 200+ lignes JavaScript

---

## 🎉 Fonctionnalités Avancées

### Auto-détection des problèmes
Le dashboard détecte automatiquement:
- Positions avec SL/TP invalides
- Trades à prix aberrants (>$1M)
- Fichiers manquants
- Logs volumineux
- Processus arrêtés

### Historique persistant
Les 50 dernières actions de maintenance sont conservées dans la session du navigateur.

### Corrections en un clic
Boutons d'action pour corriger automatiquement les problèmes courants.

### Mode Dry-Run
Toujours prévisualiser avant d'appliquer des modifications critiques.

---

## 📖 Ressources Supplémentaires

- **AUDIT_REPORT.md**: Rapport complet de qualité du code
- **quick_check.py**: Script de monitoring quotidien
- **audit_code.py**: Vérification approfondie
- **analyze_quality.py**: Analyse de la qualité du code

---

## ✅ Checklist de Maintenance

### Quotidienne
- [ ] Vérification complète (1 clic)
- [ ] Badge de santé vert
- [ ] Processus actifs (2)

### Hebdomadaire
- [ ] Quick Check détaillé
- [ ] Binance Sync
- [ ] Auto Cleanup (DRY-RUN)

### Mensuelle
- [ ] Audit Code complet
- [ ] Consulter Rapport d'Audit
- [ ] Nettoyage complet (EXECUTION)
- [ ] Vérifier historique maintenances

---

**🚀 L'onglet Maintenance vous permet de garder votre bot en parfait état de fonctionnement avec un minimum d'effort !**
