Automatiser sa stratégie crypto
De la conception à la prod — 8 piliers pour construire un bot rentable, sécurisé et supervisé en continu.
01 · Stratégie
02 · API
03 · Backtesting
04 · Risque
05 · Avantages
06 · Supervision
07 · Optimisation
08 · Outils
01 / 08
Choisir sa stratégie
Scalping
Trades ultra-rapides (secondes à minutes) sur de petits mouvements de prix. Nécessite une connexion bas-latence et des frais très faibles. Convient aux paires à fort volume comme BTC/USDT.
Grid Trading
Place des ordres d'achat et de vente à intervalles réguliers (la « grille »). Performe bien en marché latéral. Le bot achète bas et vend haut automatiquement dans la range définie.
DCA — Dollar Cost Averaging
Achète une quantité fixe à intervalles réguliers, quel que soit le prix. Idéal pour l'accumulation long terme. Simple à implémenter, faible risque d'overfit.
Arbitrage
Exploite les écarts de prix entre exchanges (ex : un même actif coté avec un spread de 0,05–0,15 % entre Binance et Coinbase pendant quelques secondes). Compétitif, nécessite capital important et exécution < 100ms.
Market Making
Place simultanément un ordre d'achat et de vente autour du prix mid. Capture le spread. Requiert une gestion d'inventaire précise pour éviter de se retrouver « chargé » d'un côté.
Commence par une seule stratégie, maîtrise-la, puis diversifie. Le multi-stratégie non maîtrisé est la première cause d'échec.
Sandwich, frontrun, backrun = MEV sur DEX. Pour voir lesquels sont actifs en ce moment sur Ethereum, le radar du dashboard les liste avec leur volume cumulé (catégorie « Prédateurs »).
02 / 08
Connexion API sécurisée
Permissions à accorder
- Read — lecture du solde, positions, historique
- Trade — créer et annuler des ordres
- Futures — seulement si ta stratégie l'exige
Permissions à ne JAMAIS accorder
- Withdraw — permet de vider le compte
- Transfer — déplacement entre wallets
- Sub-account — inutile pour un bot simple
1
IP Whitelist — Renseigne uniquement l'IP de ton serveur. Si la clé est volée, elle est inutilisable depuis un autre IP.
2
Variables d'environnement — Ne jamais hardcoder les clés dans le code. Utilise
.env + python-dotenv ou des secrets Docker.3
Rotation tous les 90j — Révoque et régénère les clés régulièrement. Documente les dates de rotation.
4
Clé dédiée par bot — Un bot = une clé API. Facilite la révocation ciblée sans couper tous les bots.
# .env — ne jamais commit ce fichier API_KEY="ta_clé_ici" API_SECRET="ton_secret_ici" EXCHANGE="binance" # main.py import ccxt, os from dotenv import load_dotenv load_dotenv() exchange = ccxt.binance({'apiKey': os.getenv('API_KEY'), 'secret': os.getenv('API_SECRET')})
03 / 08
Backtesting & validation
Sharpe
Ratio risque/rendement
cible > 1.5
cible > 1.5
Max DD
Drawdown maximum
tolérer < 20%
tolérer < 20%
Win %
Taux de trades gagnants
> 50%
> 50%
Sources de données
- CCXT historique OHLCV (binance, bybit…)
- CryptoCompare API — gratuit jusqu'à 2000 points
- Kaiko / CoinAPI — données tick haute qualité (payant)
- CSV Binance archive — données 1min depuis 2017
Méthode walk-forward
- Train sur 70% des données (optimisation paramètres)
- Validate sur 15% (ajustement)
- Test final sur 15% restants (jamais vu)
- Répéter sur différentes périodes de marché
!
Tester sur bull + bear + latéral — Une stratégie qui marche uniquement en bull 2020-2021 ne vaut rien. Teste sur 2018 (bear), 2019-2020 (latéral) et 2020-2021 (bull).
!
Inclure les frais — Un scalper avec 0.1% de frais sur 10 trades/jour perd 1%/jour de capital si la stratégie est à peine profitable. Simulation sans frais = inutile.
!
Slippage réaliste — Ajoute 0.05–0.2% de slippage simulé par ordre selon la liquidité de la paire. Les backtests idéaux ne reflètent pas la réalité.
Overfitting : Si tes paramètres donnent 95% de win rate sur le backtest, c'est trop beau. Ton bot a « mémorisé » les données historiques. Simplifie et reteste.
04 / 08
Gestion du risque
Stop-loss dur
Ordre de vente automatique placé à l'ouverture de chaque position. Non négociable — jamais désactivé, jamais déplacé vers le bas « en espérant ».
Taille de position
Risque max par trade = 1–2% du capital. Calcul : taille = (capital × 0.01) / (prix_entrée - stop_loss)
Max drawdown journalier
Si le bot perd X% dans la journée, il s'arrête automatiquement jusqu'au lendemain. Évite les « death spirals » en cas de bug ou marché chaotique.
Risque par trade≤ 1% du capital
Max drawdown journalier≤ 5% du capital
Max drawdown total (circuit breaker)≤ 15% → arrêt complet
Positions simultanées max3–5 selon capital
Ratio Reward/Risk minimum≥ 1.5 : 1
Le circuit breaker est la règle la plus importante. Un bot en panne qui continue à trader peut vider un compte en quelques heures. Code-le en priorité absolue.
05 / 08
Bénéfices : 24/7 sans émotion
Zéro émotion
Le bot exécute les règles définies, sans peur ni avidité. Pas de FOMO sur une pompe, pas de panique lors d'un dump. La stratégie est appliquée à 100%.
Exécution < 100ms
Un humain réagit en ~200–500ms. Un bot bien codé exécute un ordre en 50–100ms. Sur certaines stratégies, cette vitesse est décisive.
24h / 7j / 365j
Le marché crypto ne ferme jamais. Un bot peut capturer des opportunités à 3h du matin ou le dimanche. L'humain ne peut pas.
Discipline absolue
Le bot ne « skip » jamais un signal par fatigue. Il ne modifie pas ses stops « parce que ça va remonter ». La stratégie est toujours appliquée à la lettre.
Backtestable & améliorable
Contrairement au trading manuel, chaque décision est loggée et reproductible. On peut mesurer exactement l'impact d'un changement de paramètre.
Multi-paires simultané
Un humain peut gérer 2–3 paires en parallèle. Un bot peut en gérer 50+ sans dégradation de performance ou d'attention.
L'avantage principal d'un bot n'est pas d'être plus malin qu'un humain — c'est d'être parfaitement cohérent sur des milliers d'itérations.
06 / 08
Supervision & alertes
Quoi logger
- Chaque ordre passé (prix, taille, timestamp)
- Chaque signal généré (même non exécuté)
- Erreurs API et reconnexions
- Solde toutes les heures
- Drawdown courant en temps réel
Alertes à configurer
- Trade exécuté → notification immédiate
- Drawdown > 5% → alerte warning
- Circuit breaker déclenché → alerte critique
- Bot inactif depuis > 10min → alerte santé
- Erreur API répétée → alerte urgente
# Alerte Telegram simple import requests def alert(msg): url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage" requests.post(url, data={'chat_id': CHAT_ID, 'text': msg, 'parse_mode': 'HTML'}) # Utilisation alert(f"BUY BTC/USDT @ ${price} — size: {size}") alert(f"CIRCUIT BREAKER — DD: {drawdown:.1f}%")
K
Kill switch manuel — Un endpoint ou commande (ex :
/stop via Telegram) qui coupe le bot immédiatement et annule tous les ordres ouverts. Indispensable.H
Health check — Le bot envoie un « je suis vivant » toutes les 5 minutes. Si tu ne reçois pas ce ping, une alerte se déclenche. Utilise
healthchecks.io (gratuit).
07 / 08
Optimisation continue
1
Paper trading d'abord — Tourne le bot en simulation avec un capital fictif pendant au moins 2–4 semaines. Compare les résultats avec le backtest. Si divergence importante, trouve pourquoi avant d'aller live.
2
Capital minimal au lancement — Lance avec 10–20% du capital cible. Augmente progressivement au fil des semaines si les résultats sont conformes au backtest.
3
A/B test de stratégies — Fais tourner deux versions du bot en parallèle (avec des capitaux distincts). Comparer sur 30+ trades pour valider statistiquement un changement de paramètre.
4
Review hebdomadaire — Analyse chaque semaine : trades gagnants vs perdants, heures de performance, paires les plus profitables. Ajuste les paramètres une variable à la fois.
5
Ré-optimiser en cas de regime change — Une stratégie calibrée pour un marché bull ne performe pas en bear. Détecte les changements de régime (volatilité ATR, corrélation aux BTC movements) et adapte.
Ne change jamais deux paramètres en même temps. Tu ne sauras jamais lequel a fait la différence. Une variable à la fois, avec suffisamment de données pour conclure.
08 / 08
Outils & frameworks
CCXT
Librairie Python / JS / PHP
Connecte ton bot à 100+ exchanges avec une API unifiée. Gère les ordres, l'historique, le solde. Standard de l'industrie.
100+ exchanges supportés (Binance, Bybit, OKX…)
API unifiée — même code sur tous les exchanges
Open source, communauté active
Freqtrade
Framework complet Python
Framework open source tout-en-un : backtesting, optimisation, paper trading, live trading. Idéal pour les stratégies basées sur des indicateurs techniques.
Backtesting intégré avec graphiques
Hyperopt — optimisation automatique des paramètres
Interface web de monitoring incluse
Hummingbot
Market making & arbitrage
Spécialisé market making et arbitrage. Performant sur les DEX et CEX. Interface CLI intuitive. Adapté aux stratégies haute fréquence.
Stratégies market making prêtes à l'emploi
Support DEX (Uniswap, dYdX) et CEX
Backtesting temps réel avec historique CLOB
Infrastructure serveur
VPS / Cloud
Le bot doit tourner sur un serveur dédié, pas sur ton PC. Uptime garanti, latence réduite, et pas de coupures inattendues.
VPS proche exchange : Vultr Tokyo / Singapore (~5ms)
Hetzner CX11 (~4€/mois) — bon rapport qualité/prix
Docker + systemd pour redémarrage automatique
Stack recommandée
- Python 3.11 + CCXT
- pandas + ta-lib (indicateurs)
- SQLite (logs trades)
- python-telegram-bot (alertes)
Déploiement
- Docker container isolé
- systemd restart automatique
- Cron backup DB toutes les heures
- GitHub Actions CI/CD optionnel
Monitoring
- healthchecks.io (gratuit)
- Grafana + InfluxDB (métriques)
- Bot Telegram custom
- Uptime Robot (ping HTTP)
Pour débuter : CCXT + Freqtrade sur un VPS Hetzner. Stack simple, documentée, et suffisante pour démarrer proprement et en sécurité. La rentabilité, elle, dépend de la stratégie, des frais et de la discipline — pas de l'outil.