Dernière mise à jour : mai 2026. Toutes les métriques décrites ici sont des champs réels du moteur sandbox de fomoed. Les résultats de backtest ont une vocation pédagogique — les performances passées ne préjugent pas des rendements futurs.
La différence entre avoir l'impression que votre stratégie fonctionne et savoir qu'elle fonctionne tient à un seul chiffre : sa performance sur les dernières années de bougies réelles, y compris les régimes que vous n'avez pas tradés. C'est ça, un backtest. Fait honnêtement, c'est l'exercice le plus utile qu'un trader discrétionnaire puisse mener avant d'automatiser. Mal fait, c'est un argumentaire commercial que vous écrivez pour vous-même — chaque paramètre ajusté jusqu'à ce que la courbe soit magnifique, puis l'argent réel découvre ce que vous avez oublié de modéliser.
Le chemin traditionnel vers un backtest ressemblait à ceci : écrire du Python, récupérer les OHLCV historiques via l'API d'un exchange, calculer soi-même les indicateurs, simuler le slippage, prendre en compte les frais, gérer les fills partiels, écrire l'analytique, tracer la courbe d'equity. La plupart des traders abandonnent dès l'étape une. Les rares qui atteignent l'étape sept se retrouvent avec un moteur de backtest subtilement différent de la plateforme de trading live sur laquelle ils déploieront — et l'écart les mange en production.
Le sandbox fomoed supprime toute cette stack. Choisissez une paire, choisissez un template de stratégie, choisissez une plage de dates, cliquez sur Run. Trois ans de bougies historiques sur chaque paire supportée, des hypothèses de frais réelles propres à chaque exchange, le même code moteur que les bots live, des résultats en moins d'une minute. Pas de Python, pas de clés API, pas de Jupyter, pas de tableur. Cet article parcourt le workflow de bout en bout et — surtout — couvre les cinq pièges qui transforment un beau backtest en perte réelle.
Passez l'intro — lancez un backtest maintenant
Compte gratuit, sans carte, sans Python. Choisissez une paire, choisissez une stratégie, cliquez sur Run. Premier résultat en une minute environ.
Ouvrir le Sandbox →Ce que vous pouvez backtester dans le sandbox
Le moteur sandbox supporte aujourd'hui quatre classes de stratégies, chacune avec sa propre surface de configuration :
Stratégies custom à base d'indicateurs
Mean-reversion RSI, croisements EMA, confluence MACD, squeezes des bandes de Bollinger, fades VWAP, setups multi-indicateurs. Douze indicateurs sont exposés (RSI, EMA, SMA, MACD, ATR, ROC, Bollinger, VWAP, Williams %R, Stochastique, OBV, ADX) et n'importe quelle combinaison peut servir de déclencheur d'entrée ou de filtre. Le moteur gère les paramètres dynamiques — comparaisons de largeur de bande, fenêtres de lookback, conditions de « croisement par-dessus/par-dessous » — donc pas besoin d'implémenter les maths vous-même.
Bots DCA & grid
Dollar-cost averaging avec échelles d'ordres de sécurité optionnelles, take-profit sur position agrégée, et conditions de déclenchement configurables. Les bots grid étagent achats et ventes sur une plage définie avec TP par cellule. Les deux tournent dans le même moteur que les versions live — le sandbox n'est pas un code path différent, c'est la même boucle trader.execute() alimentée par des bougies historiques plutôt qu'un flux live.
Smart Money Concepts (SMC)
CHoCH (change of character), BoS (break of structure), order blocks, fair value gaps, retracements de Fibonacci (incluant la zone OTE 0.618-0.79) et liquidity sweeps. Sept primitives, toutes détectées algorithmiquement — le sandbox vous montre les pivots exacts que le moteur live aurait signalés en temps réel. Voir notre guide pilier SMC pour les maths.
Stratégies Agent de trading IA
Si vous pouvez décrire la stratégie en deux à quatre phrases d'anglais simple, l'agent de trading IA de fomoed génère un script Python qui tourne dans le même sandbox. Le script peut se composer avec les primitives d'indicateurs et SMC, mais ne peut pas en inventer de nouvelles. Utile pour « buy when RSI<30 AND price>200EMA, exit at +3% or RSI>70 » — tapez-le une fois, l'IA s'occupe du câblage. Voir le pilier Agent de trading IA pour l'architecture.
Comment lancer un backtest en 60 secondes
Le flux de bout en bout fait six clics, dont deux optionnels. Les chiffres entre parenthèses sont des secondes réalistes en temps réel pour un utilisateur première fois.
- Ouvrir le sandbox (5 s). Inscrivez-vous gratuitement si ce n'est pas fait — email ou wallet, pas de KYC, pas de carte. Cliquez sur Sandbox dans la sidebar du dashboard.
- Choisir le marché (10 s). Exchange (Hyperliquid / Binance / Bybit / OKX / Decibel / AsterDex / GRVT / Extended / StandX), symbole (ex. BTC/USDC:USDC), timeframe (1m / 5m / 15m / 30m / 1h / 4h).
- Choisir la plage de dates (5 s). Par défaut, les 30 derniers jours. Cliquez sur les date pickers pour étendre ; le sandbox couvre jusqu'à trois ans d'historique par paire supportée.
- Configurer la stratégie (20 s). Choisissez un preset (RSI / Custom / DCA / Grid / SMC / Agent de trading IA) ou réglez les params d'indicateur à la main. L'UI du sandbox reflète exactement le wizard du bot live — si vous savez configurer un bot live, vous savez configurer un backtest.
- Cliquer sur Run (15-90 s). La plupart des backtests bouclent en 10-30 secondes ; les runs longue portée en 5 minutes peuvent prendre jusqu'à 90 s la première fois (mis en cache lors des runs suivants).
- Lire le résultat (les 10 minutes suivantes — voir ci-dessous).
Comment lire le résultat honnêtement
Six métriques comptent. Les trois premières sont de la vanité ; les trois suivantes sont la réalité. Regardez les six — ne décidez jamais sur la base d'une seule.
Win rate
Profit factor
Max drawdown
Sharpe ratio
Courbe d'equity
Journal de trades
5 pièges de backtest (et comment le sandbox les gère)
1. L'overfitting à un seul régime
Vous ajustez la borne basse du RSI de 35 à 32 puis à 28 jusqu'à ce que la courbe d'equity soit splendide. Félicitations — vous avez trouvé les valeurs de paramètres qui marchaient sur ce segment précis d'historique. Refaites le run sur une autre plage, les gains s'évaporent. Comment éviter : testez toujours les mêmes params sur au moins deux plages non chevauchantes (ex. 2023-2024 ET 2024-2025). Le sandbox rend ça trivial — dupliquez la config, changez la plage de dates, comparez les résultats. Si les métriques s'effondrent, vous avez sur-optimisé.
2. Faire comme si les frais n'existaient pas
Une stratégie de scalping qui tire 30 fois par jour à 0,1 % par fill brûle 6 % par jour rien qu'en frais. Le sandbox applique les vrais taux taker propres à chaque exchange (Hyperliquid 0,045 %, Binance 0,05 %, Bybit 0,055 %, etc.) sur chaque fill. Si vous testez une stratégie haute fréquence et que le résultat ne tient pas compte des frais, le chiffre que vous fixez est de la fiction. Le profit factor et le PnL net du sandbox sont post-frais. Vérifiez : regardez le trade log ; les frais par trade doivent apparaître comme un petit drag sur chaque entrée/sortie.
3. Supposer des fills instantanés
En trading live, votre ordre ne se remplit pas au prix exact que vous vouliez — il y a du slippage, surtout sur les grosses tailles ou les paires illiquides. Un backtest naïf fill à l'open de la barre suivante, ce qui est optimiste. Le sandbox utilise un modèle de fill conservateur : les market orders se remplissent à l'open de la barre plus une tolérance de slippage configurable (défaut 0,05 %) ; les take-profits se remplissent quand le high de la barre touche le niveau de TP (ou à la clôture, selon le toggle « touch vs close ») ; les stop loss se remplissent au prix du SL quand déclenchés intrabar. Vérifiez : resserrez la tolérance de slippage et relancez ; si le résultat s'effondre, votre stratégie dépend de fills parfaits.
4. Le look-ahead bias
Celui-là est sournois. Si votre stratégie utilise le close de la bougie courante pour décider d'entrer sur cette même bougie, vous trichez — en temps réel, la bougie n'était pas encore close au moment de la décision. Le sandbox impose la causalité : à la barre N, le moteur ne voit que les OHLCV des barres 0 à N-1. Les valeurs d'indicateur utilisées à l'open de la barre N sont calculées à partir des N-1 barres précédentes. Si vous décrivez une stratégie qui veut lire « close de la bougie courante », le sandbox utilise le close de la barre précédente comme substitut. Vérifiez : une stratégie qui lit « le prix a reconquis l'EMA sur cette barre » devrait être reformulée en « la barre précédente a reconquis l'EMA ».
5. L'aveuglement aux changements de régime
Les tendances crypto ont des allures différentes selon les régimes — accumulation, markup, distribution, markdown. Une stratégie qui imprime du cash pendant une phase de markup saigne souvent pendant la distribution. La fenêtre sandbox par défaut de 3 ans couvre au moins un cycle complet incluant un drawdown significatif, mais vous devriez explicitement découper la plage et examiner chaque sous-période. Vérifiez : lancez la même config trois fois — 2023, 2024, 2025 — et regardez les métriques de chaque année indépendamment. Si 2024 porte tout le résultat, vous pariez sur la répétition de 2024.
Comment le sandbox de fomoed reste honnête
Le moteur sandbox exécute le même code Python que le bot live — pas une implémentation parallèle. Les maths des indicateurs, l'évaluation des signaux, le position sizing, la déduction des frais, les règles de fill TP/SL, le tracking du trail-stop : tout en single-source-of-truth. Quand vous faites passer une stratégie backtestée en bot live, la seule chose qui change est le flux de bougies que le moteur lit — parquet historique vs WS exchange live — chaque autre octet de logique est identique.
Ça compte parce que la plupart des outils de backtesting clés en main sont un code path différent de la plateforme d'exécution live sur laquelle vous déploierez finalement. Ils simulent une logique « suffisamment proche » avec des hypothèses subtilement différentes — et l'écart mange silencieusement votre edge dès que les vrais fills entrent en jeu. Le sandbox élimine cet écart par construction.
Le moteur publie aussi son schéma de résultats ouvertement : métriques (win rate, profit factor, max drawdown, Sharpe, PnL brut/net, gain/perte moyen, durée moyenne de détention), le journal de trades complet avec les raisons, et la courbe d'equity en série temporelle. Pas de champ « score » caché qui agrège tout en un seul chiffre optimisé pour bien paraître — chaque métrique est vérifiable indépendamment depuis le trade log.
Questions fréquentes
Combien de temps prend un backtest ?
La plupart des backtests bouclent en 10-30 secondes pour des plages de moins d'un an. Les longs backtests 5 minutes sur plusieurs années peuvent prendre jusqu'à 90 secondes la première fois — ensuite, le cache OHLCV se déclenche et les re-runs sont 5 à 10× plus rapides.
Combien de données historiques ai-je ?
Trois ans d'OHLCV par paire supportée sur six timeframes (1m, 5m, 15m, 30m, 1h, 4h). Le cache est rafraîchi chaque nuit via cron ; si vous backtestez une paire fraîchement listée ou avec un historique épars, le moteur comble le manque depuis CCXT live lors du premier run et met en cache pour les runs futurs.
Les résultats sont-ils déterministes ?
Oui — même config + même plage de dates = même résultat. Le moteur n'a pas d'aléatoire caché ; même le slippage est appliqué de manière déterministe contre l'open/high/low/close de la bougie. Ça veut dire que vous pouvez comparer deux configs apples-to-apples en les lançant toutes les deux contre la même plage.
Puis-je exporter le journal de trades ?
Oui — chaque résultat de backtest inclut un CSV téléchargeable avec chaque trade individuel (horodatages et prix d'entrée/sortie, taille de position, frais, P&L, raison de sortie). Utile si vous voulez faire votre propre analytique dans un tableur ou un notebook pandas.
Le backtest modélise-t-il les funding rates ?
Pour les contrats perpétuels, oui — le moteur applique le funding rate réalisé sur 8 heures à chaque fenêtre de funding pendant une position ouverte. Les funding rates sont récupérés depuis les données historiques de l'exchange quand elles sont disponibles ; pour les rares cas où elles ne le sont pas, le moteur utilise une hypothèse conservatrice de funding zéro.
Quelle est la différence entre « touch » et « close » pour un take-profit ?
Touch signifie que le TP se remplit au moment où le high de la barre atteint le prix du TP intrabar. Close signifie qu'il ne se remplit que si la barre clôture à ou au-dessus du TP. Touch est plus optimiste (correspond au comportement d'un ordre market sur un mouvement rapide) ; close est plus conservateur (correspond au comportement d'un ordre limit ou quand la liquidité intrabar est mince). Le sandbox vous laisse choisir par TP.
Faut-il faire confiance à un backtest avec 90 % de win rate ?
Non. Le win rate seul n'est presque jamais la bonne métrique à maximiser — couplez-le avec le profit factor, le max drawdown et la courbe d'equity. Un win rate de 90 % avec un profit factor de 0,7 signifie que vous gagnez petit et perdez gros ; vous coulerez lentement. Un win rate de 45 % avec un profit factor de 2,5 signifie que vous gagnez plus gros que vous perdez ; c'est en général la meilleure stratégie.
Arrêtez de deviner — backtestez votre idée
Vous avez lu jusqu'ici pour une raison. Le sandbox est gratuit, sans Python, trois ans de données historiques sur chaque paire supportée.
Démarrer gratuitement →Ressources liées
- Comment construire un bot de trading avec l'IA en anglais simple (sans code)
- Smart Money Concepts avec l'IA : CHoCH, BoS et Fib
- 15 prompts pour bot de trading IA à copier-coller
- Paper trading : testez votre stratégie sans risque
- Meilleure stratégie de bot crypto 2026 : guide comparatif
- Moteur de stratégies custom fomoed
- Agent de trading IA fomoed


