Tableaux ProBuilder : ranger et relire des valeurs dans ProRealTime

Dans ProBuilder, le langage de ProRealTime, un tableau est une variable à plusieurs cases : son nom commence toujours par le signe $, ses cases sont numérotées de 0 à 999 999, et il contient donc jusqu’à un million de valeurs. On y range une valeur en écrivant $Tableau[Index] = valeur, on la relit en écrivant $Tableau[Index]. Le manuel ProBuilder, version 6.1.0 du 1er décembre 2025, lui donne six fonctions et une particularité à ne pas oublier : contrairement aux variables, un tableau n’est pas historisé.

Qu’est-ce qu’un tableau dans ProBuilder ?
Un tableau ProBuilder est une rangée de cases numérotées, où chaque case contient une valeur. Le numéro d’une case s’appelle son index ; la première porte le numéro 0, la dernière le numéro 999 999. Pensez aux casiers d’une loge de concierge : un numéro sur chaque porte, un seul pli derrière.
Pour comprendre à quoi il sert, il faut dire un mot de la variable ordinaire. Une variable est un nom sous lequel on range un résultat. Dans ProBuilder, explique le manuel, elle fait plus que dans les autres langages : elle historise sa valeur à chaque chandelier, c’est-à-dire qu’elle garde une valeur par barre du graphique, et l’on retrouve les anciennes avec des crochets.
Le tableau répond à deux besoins que la variable ne couvre pas. Le manuel les nomme : stocker plusieurs valeurs sur un même chandelier, ou ne stocker des valeurs que lorsque cela est nécessaire. Un code peut contenir autant de tableaux que nécessaire.
Comment reconnaît-on un tableau dans un code ProBuilder ?
À son premier caractère : un tableau ProBuilder est toujours préfixé du symbole $. Le manuel met les deux écritures côte à côte : A est une variable, $A est un tableau. Une lettre contre un signe et une lettre : c’est toute la différence, et le signe n’est pas facultatif.
Comment écrire et lire une valeur dans un tableau ProBuilder ?
On écrit le nom du tableau, l’index entre crochets, le signe égal, puis la valeur. L’exemple du manuel range dans la case 0 du tableau A la moyenne mobile de période 20, calculée sur le prix de clôture.
$A[0] = Average[20](Close)
D’après le manuel ProBuilder, page 44.
La lecture suit le même principe, sans le signe égal : $A[0] rend ce que contient la case 0. Le manuel s’en sert pour construire une condition, qui vérifie que le prix de clôture est supérieur à la valeur de la première case.
Condition = Close > $A[0]
D’après le manuel ProBuilder, page 44.
Pour en faire un indicateur complet, il manque la ligne qui affiche le résultat. Dans ProBuilder, c’est RETURN, qui s’écrit une seule fois, à la dernière ligne du code.
$A[0] = Average[20](Close)
Condition = Close > $A[0]
RETURN Condition
Variante minimale : les deux lignes de la page 44 du manuel ProBuilder, suivies de l’instruction RETURN décrite page 31.
Ce programme illustre une écriture, rien de plus. Une moyenne mobile rangée dans un casier reste une moyenne mobile.
Que contiennent les cases d’un tableau ProBuilder que l’on n’a pas remplies ?
Des zéros, posés par ProBuilder lui-même. Lorsque vous insérez une valeur à un index n, le manuel indique que ProBuilder initialise à zéro tous les indices non définis de 0 à n-1. Si vous écrivez d’abord dans la case 5, les cases 0 à 4 existent donc, et valent zéro.
La nuance compte, car ces zéros de politesse ne sont pas des valeurs que vous avez rangées. Les fonctions des tableaux le savent, et les traitent à part : c’est tout l’intérêt du tableau qui suit.
Quelles sont les six fonctions des tableaux ProBuilder ?
Le manuel en donne six : ArrayMax, ArrayMin, ArraySort, IsSet, LastSet et UnSet. Elles cherchent la plus grande ou la plus petite valeur, trient, vérifient qu’une case a été remplie, donnent la dernière case remplie, ou vident le tout.
| Fonction | Ce qu’elle fait | Ce qu’elle fait des zéros posés par ProBuilder |
|---|---|---|
| ArrayMax($Tableau) | Retourne la valeur la plus haute du tableau qui a été définie | Ils ne sont pas pris en compte |
| ArrayMin($Tableau) | Retourne la valeur la plus petite du tableau qui a été définie | Ils ne sont pas pris en compte |
| ArraySort($Tableau, MODE) | Trie le tableau de manière croissante (ASCEND) ou décroissante (DESCEND) | Ils sont supprimés |
| IsSet($Tableau[index]) | Retourne 1 si l’indice a été défini, 0 s’il ne l’a pas été | Ils ne comptent pas comme définis : la fonction retourne 0 |
| LastSet($Tableau) | Retourne l’index défini le plus élevé ; -1 si aucun index n’a été défini | — |
| UnSet($Tableau) | Remet à 0 le tableau en supprimant complètement son contenu | — |
Le glossaire du manuel montre l’écriture de chacune sur un tableau nommé $MyArray. Voici celle du tri croissant et celle de la vérification d’une case.
ArraySort($MyArray, ASCEND)
IsSet($MyArray[index])
D’après le glossaire du manuel ProBuilder, pages 54 et 57. Ce sont deux écritures, non un programme complet.
LastSet mérite qu’on s’y arrête. Puisque les index partent de 0, elle retourne 0 quand seule la première case est remplie, et -1 quand le tableau est vide. Ce -1 n’est pas une erreur : c’est la façon qu’a le langage de dire « personne ».
Pourquoi un tableau ProBuilder n’a-t-il pas d’historique ?
Parce qu’il n’est pas historisé : c’est la différence que le manuel signale deux fois, à la page 7 et à la page 45. Une variable ordinaire garde sa valeur de chaque chandelier, et MaVariable[3] rend celle d’il y a trois chandeliers. Un tableau ne garde que son contenu du moment.
La conséquence est écrite noir sur blanc : il n’est pas possible de récupérer la valeur d’une cellule d’un tableau calculée sur un chandelier antérieur. Le manuel donne même l’écriture qui ne marche pas, $MonTableau[MonIndice][3] : elle n’est pas valide et ne lit pas la case trois chandeliers dans le passé.
Les crochets n’ont donc pas le même sens des deux côtés. Derrière une variable, le nombre entre crochets remonte le temps. Derrière un tableau, il désigne une case. C’est le piège classique du débutant, et il a l’élégance d’être signalé par le manuel avant même le chapitre des tableaux.
Dans quelle version de ProRealTime écrit-on des tableaux ProBuilder ?
Le comparatif des offres de ProRealTime inscrit la ligne « Créer et importer des indicateurs personnalisés » pour la Complète et la Premium, pas pour la version Web, relevé le 12 novembre 2026. Dans ProRealTime 13, le menu « Graphiques » porte la commande « Éditeur de code ProBuilder », avec le raccourci Ctrl+Maj+P.
Un compte de démonstration suffit pour essayer : on range une valeur, on la relit, on regarde ce que répond LastSet. C’est en ouvrant les casiers qu’on comprend la loge.
Questions fréquentes sur les tableaux dans ProBuilder
Comment déclare-t-on un tableau dans ProBuilder ?
En faisant précéder son nom du signe $ : $A est un tableau, A une variable. On le remplit ensuite case par case, par exemple $A[0] = Average[20](Close).
Combien de valeurs un tableau ProBuilder peut-il contenir ?
Jusqu’à un million : les index vont de 0 à 999 999, d’après le manuel ProBuilder 6.1.0. Un code peut contenir autant de tableaux que nécessaire.
À quel index commence un tableau ProBuilder ?
À l’index 0. La première case est $A[0], et non $A[1].
Que retourne LastSet sur un tableau ProBuilder vide ?
La valeur -1. Sinon, la fonction retourne l’index défini le plus élevé du tableau.
Peut-on lire la valeur qu’avait un tableau ProBuilder trois chandeliers plus tôt ?
Non. Les tableaux ne sont pas historisés : l’écriture $MonTableau[MonIndice][3] n’est pas valide, précise le manuel.
Comment vider un tableau ProBuilder ?
Avec UnSet($Tableau), qui remet le tableau à 0 en supprimant complètement son contenu.
Sources de référence utilisées
2
- ProRealTime, manuel ProBuilder, version 6.1.0 du 1er décembre 2025 : variables (page 7), instruction RETURN (page 31), tableaux de données et fonctions spécifiques (pages 44 et 45), glossaire (pages 54 à 61), relevés le 12 novembre 2026.
- ProRealTime, Comparez nos offres : création et import d’indicateurs personnalisés, relevés le 12 novembre 2026.
Le nom de la commande « Éditeur de code ProBuilder » et son raccourci ont été relevés à l’écran dans ProRealTime Complète, version 13, le 12 novembre 2026. Les exemples de code viennent du manuel ; ils n’ont pas été exécutés pour cette fiche.
Pour aller plus loin
- Ouvrir un compte démo ProRealTime : pour essayer ces lignes de code 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


