Automatiser sa stratégie crypto

De la conception à la prod — 8 piliers pour construire un bot rentable, sécurisé et supervisé en continu.

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.
Haute fréquence
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.
Marché latéral
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.
Long terme
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.
Multi-exchange
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é.
Avancé
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
Max DD
Drawdown maximum
tolérer < 20%
Win %
Taux de trades gagnants
> 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.