Exemples de code ProBacktest : cinq systèmes commentés sur ProRealTime
Exemples de code ProBacktest : 5 systèmes testés sur le mini Nasdaq en 5 minutes, frais compris. 3 perdent, et le meilleur a cédé 66 % en chemin.

Cinq systèmes écrits pour ProBacktest, le module de test de ProRealTime, ont été lancés le 12 novembre 2026 dans la Complète 13, sur un compte démo : Mini Nasdaq 100 (NQ, 20 $ le point), bougies de 5 minutes, 50 000 bougies d’historique (de début mars au 12 novembre 2026 environ), 100 000 $ de capital, 2 $ de frais par ordre, spread de 0,5 point, mode tick par tick. Deux gagnent : le croisement de moyennes 20/50 (+79 307 $) et la cassure des 50 bougies (+5 724 $). Trois perdent : le MACD (-6 766 $), le RSI 2 (-9 915 $) et Bollinger (-67 274 $). Aucun n’est une stratégie à suivre.

Quels résultats donnent les cinq systèmes ProBacktest testés sur ProRealTime ?
De +79 307 $ à -67 274 $ pour un même capital, avec de 31,08 % à 56,82 % de trades gagnants. Un trade est ici une position, de son ouverture à sa clôture.
| Système | Trades | Trades gagnants | Ratio gains/pertes | Gain |
|---|---|---|---|---|
| 1. Croisement des moyennes 20 et 50 | 1 080 | 38,15 % | 1,08 | +79 307 $ |
| 2. Excès du RSI 2 en tendance haussière | 1 385 | 56,82 % | 0,98 | -9 915 $ |
| 3. Cassure des 50 dernières bougies | 512 | 35,35 % | 1,01 | +5 724 $ |
| 4. Retour à la moyenne après la bande de Bollinger basse | 1 186 | 51,52 % | 0,9 | -67 274 $ |
| 5. Ligne du MACD au-dessus ou au-dessous de zéro | 1 689 | 31,08 % | 0,99 | -6 766 $ |
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Comment les cinq systèmes ont-ils été testés dans ProBacktest ?
Avec les mêmes réglages pour tous, plus exigeants que ceux de la plateforme. Par défaut, le panneau ProBacktest de la version 13 proposait 10 000 $ de capital, 0 $ de frais par ordre et un spread de 2 points désactivé : un test lancé tel quel ne paie rien. Le spread est l’écart entre le meilleur prix d’achat et le meilleur prix de vente ; à 20 $ le point, un demi-point pèse 10 $. Quant à l’historique, la page « Nos offres » en annonce 200 000 unités dans la Complète, version où elle range le backtesting (relevé du 12 novembre 2026).
Chaque code a été créé par la fenêtre « Nouveau ProBacktest », en « Création par programmation », à la place du modèle que propose l’éditeur. Le panneau latéral règle ensuite le « Capital initial », les « Frais par ordre », le « Spread », la « Période de la simulation » et le « ProBacktest en mode tick par tick », qui départage deux ordres exécutables dans la même bougie, d’après le manuel (page 32). Le bouton « Backtester mon système de trading » lance le calcul.
Les cinq codes partagent une grammaire. La ligne qui commence par deux barres obliques est un commentaire, que le programme ne lit pas. DEFPARAM CumulateOrders = False interdit le cumul : sans elle, selon le manuel ProBacktest (page 18), un code écrit par programmation peut ajouter une position à chaque bougie où la condition d’entrée est vraie.
BUY 1 CONTRACT AT MARKET achète un contrat au marché, à l’ouverture de la bougie suivante (page 6). SELLSHORT vend à découvert : la position gagne si le cours baisse. Comme on ne peut pas être acheteur et vendeur à la fois sur une même valeur, SELLSHORT ferme aussi une position acheteuse (page 5).
Que donne le croisement des moyennes mobiles 20 et 50 dans ProBacktest ?
Un gain de 79 307 $, soit 79,31 %, au prix d’un recul de 106 372 $ en chemin. L’idée : acheter quand la moyenne courte passe au-dessus de la longue, vendre à découvert dans le cas inverse.
// Systeme 1 : croisement de deux moyennes mobiles, a l'achat et a la vente
DEFPARAM CumulateOrders = False
rapide = Average[20](close)
lente = Average[50](close)
IF rapide CROSSES OVER lente THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF rapide CROSSES UNDER lente THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
Code testé dans ProRealTime Complète 13, compte démo, 12 novembre 2026.
Les lignes 3 et 4 rangent deux moyennes mobiles arithmétiques des clôtures, sur 20 et 50 bougies (Average[N](price) dans le glossaire du manuel). CROSSES OVER vérifie qu’une courbe passe au-dessus d’une autre, CROSSES UNDER au-dessous. Sans stop ni objectif, chaque croisement retourne la position : le système est toujours sur le marché, d’où 1 080 trades, 540 dans chaque sens.
Seuls 38,15 % des trades gagnent, mais un gagnant rapporte en moyenne 2 635,31 $ et un perdant coûte 1 506,65 $. Les achats font l’essentiel : +65 905 $, contre +13 402 $ pour les ventes. Les frais pèsent 4 318 $.
Le chiffre à regarder est ailleurs : le drawdown maximal, la plus forte baisse de la courbe des gains depuis un sommet, atteint 106 372 $, soit 66,44 % selon le rapport, avec jusqu’à 11 pertes consécutives. Le gain final suppose d’avoir tenu tout ce trajet.
Deux essais préalables du même code instruisent autant. Sur l’historique par défaut, trois séances du 10 au 12 novembre, avec 10 000 $ et sans frais : 11 trades, +9 145 $, 54,55 % de gagnants. Onze trades ne prouvent rien. Sur 50 000 bougies avec 10 000 $, la courbe s’arrête fin mars, capital épuisé : le manuel (page 34) arrête un backtest quand le capital ne couvre plus les pertes.
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Que donne l’achat d’un excès du RSI 2 en tendance haussière dans ProBacktest ?
Une perte de 9 915 $, avec 56,82 % de trades gagnants. L’idée : acheter un repli très court, quand le RSI sur deux bougies tombe sous 10, si le cours est au-dessus de sa moyenne de 200 bougies ; revendre quand le RSI dépasse 70.
// Systeme 2 : achat d'un exces de baisse a court terme, seulement dans une tendance haussiere
DEFPARAM CumulateOrders = False
tendance = close > Average[200](close)
r = RSI[2](close)
IF NOT LongOnMarket AND tendance AND r < 10 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND r > 70 THEN
SELL AT MARKET
ENDIF
SET STOP pLOSS 40
Code testé dans ProRealTime Complète 13, compte démo, 12 novembre 2026.
La ligne 3 range une réponse, vrai ou faux, dans la variable tendance. La ligne 4 calcule le RSI sur 2 bougies, un oscillateur qui varie de 0 à 100 ; plus il est bas, plus la baisse récente a dominé. LongOnMarket vaut 1 si une position acheteuse est ouverte, 0 sinon (manuel, page 14) ; NOT l’inverse : on n’achète que si l’on n’est pas déjà acheteur.
SELL AT MARKET, sans quantité, ferme toute la position (page 6). SET STOP pLOSS 40 place un stop de protection à 40 points du prix d’entrée (page 8), soit 800 $ sur ce contrat.
La leçon tient dans deux moyennes : +498,08 $ par trade gagnant, -672,08 $ par trade perdant. Gagner souvent ne suffit pas quand on perd plus gros. Les frais, 5 540 $, aggravent une perte qu’ils n’ont pas créée ; le drawdown maximal atteint 40 065 $, soit 34,76 %.
Autre détail : la plus grosse perte, 1 659 $, fait plus du double des 800 $ du stop. Un stop fixe un seuil de sortie, pas un prix garanti.
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Que donne la cassure du plus haut ou du plus bas des 50 bougies dans ProBacktest ?
Un gain de 5 724 $, soit 5,72 %, après un drawdown de 86,92 %. L’idée : acheter quand la clôture dépasse le plus haut des 50 bougies précédentes, vendre à découvert sous leur plus bas.
// Systeme 3 : cassure du plus haut ou du plus bas des 50 bougies precedentes
DEFPARAM CumulateOrders = False
haut = Highest[50](high)[1]
bas = Lowest[50](low)[1]
IF close > haut THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF close < bas THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
Code testé dans ProRealTime Complète 13, compte démo, 12 novembre 2026.
Highest[50](high) donne le plus haut des plus hauts des 50 dernières bougies, Lowest[50](low) le plus bas des plus bas (glossaire du manuel). Le [1] final prend la valeur de la bougie précédente, selon la règle que le manuel ProBuilder applique à toute variable (page 8).
Ce [1] n’est pas un ornement. Sans lui, le niveau inclurait la bougie en cours, et sa clôture, qui ne dépasse jamais son propre plus haut, ne pourrait jamais le franchir : le système ne passerait aucun ordre.
Sans autre sortie que le signal contraire, il passe d’un sens à l’autre. Il gagne à l’achat, +31 793 $, et perd à la vente, -26 069 $.
Son résultat est la différence de deux sommes énormes : 794 388 $ de gains bruts, 788 664 $ de pertes brutes, d’où un ratio de 1,01. Le gain final pèse moins de 0,8 % des gains bruts. En chemin, la courbe a perdu 130 902 $ depuis un sommet, soit 86,92 %, avec jusqu’à 14 pertes d’affilée. Un résultat positif ne dit rien de ce qu’il a coûté de nerfs.
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Que donne le retour à la moyenne après la bande de Bollinger basse dans ProBacktest ?
La plus forte perte des cinq : 67 274 $, soit 67,27 % du capital, avec 51,52 % de trades gagnants. L’idée : acheter quand la clôture passe sous la bande de Bollinger basse, et sortir à son retour vers la moyenne.
// Systeme 4 : retour vers la moyenne apres un passage sous la bande de Bollinger basse
DEFPARAM CumulateOrders = False
basse = BollingerDown[20](close)
moyenne = Average[20](close)
IF NOT LongOnMarket AND close CROSSES UNDER basse THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF LongOnMarket AND close >= moyenne THEN
SELL AT MARKET
ENDIF
SET STOP pLOSS 60
Code testé dans ProRealTime Complète 13, compte démo, 12 novembre 2026.
Le manuel ProBuilder (page 53) place la bande basse deux écarts-types sous la moyenne mobile arithmétique de 20 bougies. L’écart-type mesure la dispersion des cours autour de leur moyenne : plus le marché s’agite, plus la bande s’éloigne.
La ligne 5 achète quand la clôture croise la bande basse à la baisse, sans position ouverte ; la ligne 8 revend dès que la clôture retrouve la moyenne. Le stop est à 60 points, soit 1 200 $.
Plus d’un trade sur deux gagne, et le système perd : 964,60 $ en moyenne par gagnant, 1 141,99 $ par perdant, soit -56,72 $ par trade sur 1 186 trades, dont 4 744 $ de frais. La plus grosse perte, 6 664 $, dépasse de loin le stop. En chemin, la courbe a perdu 87 229 $ depuis son sommet, soit 74,90 %, et finit à 32 726 $.
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Que donne le passage de la ligne du MACD par zéro dans ProBacktest ?
Une perte de 6 766 $ sur 1 689 trades, précédée d’une erreur de syntaxe instructive. L’idée : acheter quand la ligne du MACD passe au-dessus de zéro, vendre à découvert au-dessous, avec un stop de 50 points et un objectif de 100.
// Systeme 5 : passage de la ligne MACD au-dessus ou au-dessous de zero
DEFPARAM CumulateOrders = False
ligne = MACDline[12,26,9](close)
IF ligne CROSSES OVER 0 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
IF ligne CROSSES UNDER 0 THEN
SELLSHORT 1 CONTRACT AT MARKET
ENDIF
SET STOP pLOSS 50
SET TARGET pPROFIT 100
Code testé dans ProRealTime Complète 13, compte démo, 12 novembre 2026.
La ligne du MACD est, d’après le manuel ProBuilder (page 14), la moyenne mobile exponentielle des clôtures sur 12 périodes moins celle sur 26 : au-dessus de zéro, la courte passe au-dessus de la longue.
La première version écrivait MACDline[12,26](close). L’éditeur l’a refusée : « ligne 3 : Une des expressions suivantes serait plus appropriée que « un crochet fermant » : une virgule ». Le glossaire du manuel écrit MACDLine[S,L,Si](price) : trois paramètres, notés S, L et Si, même quand on ne demande que la ligne. Le message signifiait donc : il manque un paramètre. Avec [12,26,9], les trois longueurs de l’exemple du manuel (page 14), le code passe.
SET TARGET pPROFIT 100 place une limite, c’est-à-dire un objectif, à 100 points du prix d’entrée (manuel, page 9), soit 2 000 $ ; le stop vaut 1 000 $. Le plus gros gain, 1 996 $, bute sur l’objectif ; la plus grosse perte, 6 279 $, passe très au-delà du stop.
Seuls 31,08 % des trades gagnent, pour 1 741,10 $ en moyenne, contre 791,10 $ par perdant. Faites le calcul avec ces deux moyennes : l’équilibre demandait environ 31,24 % de gagnants. Le ratio de 0,99 dit la même chose ; le drawdown maximal atteint 45 050 $.
Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Qu’apprennent ces cinq backtests ProRealTime sur la lecture d’un rapport ?
Qu’aucun chiffre ne se lit seul. Le système le plus rentable gagne 38,15 % de ses trades, le plus perdant 51,52 % : le pourcentage de gagnants compte les trades, il ne les pèse pas. La moyenne des gagnants et celle des perdants le font.
Le gain final ne dit pas le chemin. Les deux systèmes gagnants ont connu des drawdowns de 66,44 % et de 86,92 % : lisez le drawdown maximal avant le gain.
Les cinq ratios gains/pertes vont de 0,9 à 1,08. Des centaines de milliers de dollars de gains et de pertes bruts se compensent presque, et le résultat net tient dans un écart étroit où les frais et le spread pèsent lourd.
L’échantillon et le capital font partie du test. Sur onze trades, le premier système gagnait 54,55 % du temps ; sur 1 080, 38,15 %. Et 10 000 $ n’ont pas passé le mois de mars. Et un stop n’est pas un plafond : sur les trois systèmes qui en ont un, la plus grosse perte le dépasse.
Reste le verdict, sujet de la leçon 8.7 de la formation : savoir renoncer. Un système qui montre ces chiffres se retravaille ou s’abandonne ; il ne se trade pas sur la foi de sa courbe finale. Le guide de ProRealTime Complète range, dans sa partie ProBacktest, les fiches sur le rapport détaillé, les frais et le mode tick par tick.
Ces cinq systèmes sont des exemples d’écriture, pas des stratégies recommandées. Les performances passées, réelles ou simulées, ne préjugent pas des performances futures. Le trading automatique exécute une stratégie sans la rendre gagnante et n’écarte pas le risque de perte. Les futures et les CFD à risque limité exposent à des pertes rapides ; les futures peuvent faire perdre plus que le dépôt. Les CFD à risque limité sont des instruments complexes, qui présentent un risque élevé de perte rapide en capital en raison de l’effet de levier.
Questions fréquentes sur les exemples de code ProBacktest
Ces cinq systèmes ProBacktest sont-ils des stratégies gagnantes ?
Non, ce sont des exemples d’écriture. Trois ont perdu sur le test du 12 novembre 2026, les deux autres ont connu des drawdowns de 66,44 % et de 86,92 %. Les performances passées, réelles ou simulées, ne préjugent pas des performances futures.
Pourquoi ProRealTime refuse-t-il MACDline[12,26](close) ?
Parce que MACDline demande trois paramètres : MACDLine[S,L,Si](price), selon le glossaire du manuel. L’éditeur réclame alors une virgule à la place du crochet fermant. MACDline[12,26,9](close) est accepté.
Pourquoi écrire DEFPARAM CumulateOrders = False en tête d’un système ProBacktest ?
Pour qu’il n’ajoute pas une position à une position ouverte : d’après le manuel ProBacktest (page 18), le cumul est actif par défaut dans un code écrit par programmation.
Quels frais ProBacktest applique-t-il par défaut dans ProRealTime Complète 13 ?
Aucun, sur le compte observé le 12 novembre 2026 : 0 $ par ordre et un spread de 2 points désactivé, pour 10 000 $ de capital. Ces tests ont été lancés avec 2 $ par ordre, 0,5 point de spread et 100 000 $.
Plus de 50 % de trades gagnants garantit-il un backtest gagnant ?
Non. Le retour à la moyenne de Bollinger gagne 51,52 % de ses trades et perd 67 274 $, parce que sa perte moyenne, 1 141,99 $, dépasse son gain moyen, 964,60 $.
Sources de référence utilisées
3
- ProRealTime, manuel ProBacktest : version 6.1.0 du 1er décembre 2025, pages 5 à 9, 14, 18, 32, 34 et glossaire, relu le 12 novembre 2026.
- ProRealTime, manuel ProBuilder : version 6.1.0 du 1er décembre 2025, pages 8, 14, 53 et glossaire, relu le 12 novembre 2026.
- ProRealTime, Nos offres : le backtesting et l’historique de la Complète, relevés le 12 novembre 2026.
Codes tapés et exécutés dans ProRealTime Complète, version 13, sur un compte démo, le 12 novembre 2026 ; résultats relevés à l’écran le même jour.
Pour aller plus loin
- Ouvrir un compte démo ProRealTime : pour recopier ces cinq codes et lancer vos propres tests sans engager d’argent.
- Trader les futures avec ProRealTime : le compte ProRealTime pour les contrats à terme, dont le future Nasdaq.
Benoist Rousseau est trader depuis 1994 et membre du Chicago Mercantile Exchange (CME) et du Chicago Board of Trade (CBOT), où il détient deux sièges de membre individuel. Fondateur d'Andlil.com en 2010 et auteur de Devenez Trader Pro (2016), il a formé des centaines de traders à travers sa formation scalping. Dans la rubrique ProRealTime, il partage tutoriels, réglages et programmation ProBuilder, pour adapter la plateforme à sa méthode plutôt que l'inverse.
Découvrir mon parcoursLa formation complète Gratuit
Le trading commence par les bons outils.
- La formation complète à la plateforme
- Mes Graphiques & Espaces de travail : accès exclusif à mes indicateurs, modèles et réglages personnalisés
- Configuration guidée, pas à pas
Quand vous serez prêt Pour aller plus loin
Formations, séminaires, webinaire et coaching privé. Je vous accompagne personnellement.
Découvrir l’École


