Boucles ProBuilder sur ProRealTime : FOR, WHILE, BREAK, CONTINUE, ONCE

ProBuilder, le langage de ProRealTime, a deux boucles : FOR, qui parcourt un par un une suite finie de nombres, et WHILE, qui répète une action tant qu’une condition reste valide. BREAK force la sortie de l’une comme de l’autre, CONTINUE finit le tour en cours, et ONCE, qui n’est pas une boucle, donne sa valeur à une variable une seule fois. Le manuel officiel (version 6.1.0 du 1er décembre 2025) y joint un conseil : éviter les boucles quand une autre écriture existe.

Qu’est-ce qu’une boucle dans ProBuilder ?
Une boucle est un passage du code que la machine répète, un certain nombre de fois ou jusqu’à ce qu’une condition cesse d’être vraie. Chaque répétition s’appelle une itération ; je dirai un tour. ProBuilder exécute déjà tout le code une fois par chandelier, du plus ancien au plus récent : une boucle tourne donc à l’intérieur de chacune de ces lectures.
| Mots | Rôle |
|---|---|
| FOR, TO, DO, NEXT | Parcourir une suite finie de nombres en ordre croissant |
| FOR, DOWNTO, DO, NEXT | La parcourir en ordre décroissant |
| WHILE, DO, WEND | Appliquer des actions tant qu’une condition reste valide |
| BREAK | Faire une sortie forcée d’une boucle WHILE ou FOR |
| CONTINUE | Finir l’itération courante d’une boucle WHILE ou FOR |
| ONCE | Initialiser une seule fois une variable à une valeur donnée |
Comment écrire une boucle FOR dans ProBuilder ?
Une boucle FOR s’écrit FOR, une variable, sa valeur de début, TO, sa valeur de fin, DO, puis l’action, et se referme par NEXT. Ce qui se trouve entre FOR et DO fixe les bornes de l’intervalle à parcourir. L’exemple du manuel fait la moyenne de trois moyennes mobiles, de périodes 11, 12 et 13.
Result = 0
FOR Variable = 11 TO 13 DO
Result = Result + Average[Variable](Close)
NEXT
AverageResult = Result / 3
RETURN AverageResult
D’après le manuel ProBuilder, page 22 (le commentaire du manuel a été retiré).
Suivez la variable. Elle vaut d’abord 11 : Result reçoit la moyenne mobile de 11 périodes. NEXT fait passer à la valeur suivante, 12, et Result reçoit en plus la moyenne de 12 périodes. Puis 13. Il n’y a plus de valeur suivante : NEXT ferme la boucle, et le code divise la somme par 3.
Pour parcourir la suite à l’envers, DOWNTO remplace TO et l’on inverse les bornes. Le manuel écrit ainsi FOR i = 4 DOWNTO 0 DO pour aller de 4 à 0.
Comment écrire une boucle WHILE dans ProBuilder ?
Une boucle WHILE s’écrit WHILE, une condition, DO, puis les actions, et se referme par WEND ; le mot DO y est facultatif. Les actions se répètent tant que la condition reste valide. Le manuel lui trouve de grandes similitudes avec l’instruction IF.
i = 1
WHILE high > high[i] AND i < 30 DO
i = i + 1
WEND
RETURN i
Exemple repris du manuel ProBuilder, page 24.
Ce code compte, d’après le manuel, le nombre de barres qui séparent le chandelier actuel d’un chandelier précédent plus élevé, dans une limite de 30 périodes. Tant que le plus haut courant dépasse celui d’il y a i barres, i augmente de 1. La seconde moitié de la condition, i < 30, est la porte de sortie : sans elle, rien ne garantirait que la boucle s’arrête.
À quoi sert BREAK dans une boucle ProBuilder ?
BREAK fait sortir d’une boucle FOR ou WHILE avant sa fin normale. Il se combine avec un IF : si telle chose arrive, inutile de continuer. L’exemple du manuel compte les hausses consécutives du volume sur les dernières barres.
Compteur = 0
FOR i = 0 TO 19 DO
IF Volume[i] > Volume[i + 1] THEN
Compteur = Compteur + 1
ELSE
BREAK
ENDIF
NEXT
RETURN Compteur
Exemple repris du manuel ProBuilder, page 26.
À chaque tour, le code compare le volume d’une barre à celui de la barre qui la précède. S’il est supérieur, le compteur avance ; sinon, BREAK arrête tout. Sans BREAK, précise le manuel, la boucle aurait continué jusqu’à 19 même si la condition de volume n’était plus valide.
À quoi sert CONTINUE dans une boucle ProBuilder ?
CONTINUE finit le tour en cours et fait passer au suivant, sans sortir de la boucle. Le manuel l’emploie souvent avec BREAK : l’un donne l’ordre de rester, l’autre celui de sortir.
Increase = Close > Close[1]
Count = 0
FOR i = 1 TO BarIndex DO
IF Increase[Count] THEN
Count = Count + 1
CONTINUE
ENDIF
BREAK
NEXT
RETURN Count
Exemple repris du manuel ProBuilder, page 27.
Ce programme cumule les chandeliers dont la clôture est supérieure à la précédente, « la veille » dans le texte du manuel. Quand la condition du IF est vérifiée, le compteur avance et CONTINUE renvoie au tour suivant : le BREAK placé plus bas n’est pas atteint. Quand elle ne l’est pas, le code arrive à BREAK et sort.
Le manuel ajoute un avertissement que je recopie volontiers : toujours s’assurer d’avoir une condition de sortie valide pour les boucles FOR et WHILE, afin d’éviter les boucles infinies. Une boucle infinie est une boucle dont la condition de sortie n’arrive jamais.
À quoi sert ONCE dans ProBuilder ?
ONCE sert à initialiser une variable, c’est-à-dire à lui donner sa valeur de départ, une seule fois. Le code étant relu à chaque barre, une ligne comme Count = 0 remet le compteur à zéro à chaque lecture. Précédée de ONCE, la même ligne n’est traitée que la première fois ; les fois suivantes, elle est ignorée.
ONCE Count = 0
ONCE i = 0
IF i <= 5 THEN
Count = Count + i
i = i + 1
ENDIF
RETURN Count
Programme 2 du manuel ProBuilder, page 28 (les numéros de ligne du manuel ont été retirés).
Le manuel compare ce programme au même sans les deux ONCE. Sans ONCE, Count et i reviennent à 0 à chaque lecture : le résultat affiché est 0. Avec ONCE, les deux variables gardent leur valeur d’une barre à la suivante : Count vaut 0, puis 1, puis 3, et ainsi de suite jusqu’à 15, quand i atteint 6 et que la condition du IF ne vaut plus. Le résultat est 15.
Cet exemple n’a ni FOR ni WHILE, et pourtant il additionne. C’est que la boucle existe déjà : c’est la plateforme elle-même, qui relit le code barre après barre. ONCE peut aussi s’écrire à l’intérieur d’un IF, d’un FOR ou d’un WHILE.
Faut-il éviter les boucles FOR et WHILE dans ProBuilder ?
Oui, chaque fois qu’une autre écriture existe : c’est le manuel qui le dit, et deux fois. Après une boucle FOR qui fait la moyenne des cinq derniers plus hauts, il note que Average[5](High) donne les mêmes résultats, se lit mieux et s’exécute beaucoup plus rapidement. Après une boucle WHILE qui compte les hausses consécutives, il propose ceci.
Increase = Close > Close[1]
IF Increase THEN
Count = Count + 1
ELSE
Count = 0
ENDIF
RETURN Count
Exemple repris du manuel ProBuilder, page 24.
Le raisonnement est celui de ONCE. Puisque le code est exécuté sur chaque chandelier, faire avancer un compteur quand la condition est vérifiée vaut autant, selon le manuel, que de regarder dans le passé à chaque bougie, et c’est beaucoup plus efficient. La meilleure boucle est souvent celle qu’on n’écrit pas.
Ces exemples illustrent des instructions, pas une méthode de trading. Ils s’écrivent dans l’éditeur de code ProBuilder, que la version 13 range dans le menu « Graphiques » ; le comparatif de ProRealTime inscrit la création d’indicateurs personnalisés dans les versions Complète et Premium, pas dans la version Web, relevé du 12 novembre 2026.
Questions fréquentes sur les boucles dans ProBuilder
Quelle différence entre FOR et WHILE dans ProBuilder ?
FOR parcourt une suite finie de nombres, dont les bornes sont écrites entre FOR et DO. WHILE répète ses actions tant qu’une condition reste valide, sans nombre de tours fixé d’avance.
Comment parcourir une série en ordre décroissant dans ProBuilder ?
Avec DOWNTO à la place de TO, en inversant les bornes : FOR i = 4 DOWNTO 0 DO, puis l’action, puis NEXT.
Le mot DO est-il obligatoire dans une boucle ProBuilder ?
Le manuel le dit facultatif dans la boucle WHILE, et son glossaire le présente comme une instruction facultative des boucles FOR et WHILE.
Comment éviter une boucle infinie dans ProBuilder ?
En s’assurant, comme le demande le manuel, que chaque boucle FOR ou WHILE a une condition de sortie valide. Dans son exemple WHILE, c’est le rôle de la limite i < 30.
ONCE est-il une boucle dans ProBuilder ?
Non. ONCE initialise une variable une seule fois : la ligne est traitée la première fois qu’elle est rencontrée, puis ignorée.
Par quoi remplacer une boucle dans ProBuilder ?
Par une fonction qui fait déjà le calcul, comme Average[5](High) pour une moyenne sur cinq barres, ou par un compteur placé dans un IF, que le code fait avancer barre après barre.
Sources de référence utilisées
3
- ProRealTime, manuel ProBuilder : version 6.1.0 du 1er décembre 2025, 61 pages, pages 7 et 22 à 28, et glossaire, relu le 12 novembre 2026.
- ProRealTime, Comparez nos offres : ligne « Créer et importer des indicateurs personnalisés », relevée le 12 novembre 2026.
- ProRealTime, nouveautés de la version 13 : le nouvel éditeur de code, page relevée le 12 novembre 2026.
Menu de l’éditeur relevé à l’écran dans la Complète, version 13, le 12 novembre 2026. Exemples de code repris du manuel, non exécutés dans la plateforme.
Pour aller plus loin
- Ouvrir un compte démo ProRealTime : pour voir tourner vos premières boucles sans engager un euro.
- Combien coûte ProRealTime : le prix de la Complète et de la Premium, et comment ne rien payer.
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


