Rejoignez-nous
Instructions/probuilder · probacktest · proorder · proscreener

HighestBars

HighestBars en ProBuilder renvoie le décalage en bars jusqu'à la valeur la plus haute d'une série sur une période, 0 signifiant que le bar courant contient la valeur la plus haute.

Syntaxe

probuilder
HighestBars[Period](source)

Paramètres

NomTypePar défautDescription
PériodeentierrequisNombre de bars passés à parcourir, y compris le bar courant.
sourcesérie numériquerequisLa série à parcourir, telle que close, high, volume, ou un indicateur.

Formule

Pour une fenêtre de Period bars se terminant au bar actuel :

code
HighestBars[Period](x) = offset k in [0, Period - 1]
                         where x[k] is the maximum of the window

Si aucun maximum ne peut être déterminé dans la fenêtre, la fonction renvoie -1.

Comment ça marche

HighestBars repère la position du maximum plutôt que le maximum lui-même. Là où Highest[20](close) répond à « quelle a été la clôture la plus haute des 20 derniers bars », HighestBars[20](close) répond à la question « il y a combien de temps cela s'est-il produit ». Le résultat est un décalage en bars compté en arrière depuis le bar courant, il s'insère donc directement dans l'indexation des séries : close[HighestBars[20](close)] lit la clôture la plus haute de la fenêtre.

L'offset part de zéro. Une valeur de retour de 0 signifie que la bar courante porte la valeur la plus haute, ce qui est en soi un signal utile, marquant de nouveaux plus hauts sur la fenêtre. Lorsque plusieurs bars partagent la même valeur maximale, la fonction renvoie la première occurrence trouvée en remontant depuis la bar courante, c'est-à-dire la plus récente.

La valeur se met à jour à chaque bar. À mesure que la fenêtre avance, un ancien sommet finit par sortir de la fenêtre et la fonction saute au décalage du bar le plus haut suivant encore présent à l'intérieur.

Exemples

Exemple 1, Étiquetage de la clôture la plus haute (Indicateur)

probuilder
myHighest = HighestBars[10](close)
IF myHighest > 0 THEN
  // Place a label on the bar that holds the highest close of the window
  DRAWTEXT("Highest close in last 10 bars", barindex - myHighest, close[myHighest])
ENDIF

HighestBars trouve combien de bars en arrière s'est produite la clôture la plus haute des 10 derniers bars, et DRAWTEXT ancre une étiquette sur ce bar. Le contrôle myHighest > 0 ignore les bars où la clôture actuelle est elle-même le maximum.

Exemple 2, Nombre de bars depuis le plus haut de 50 bars (Indicateur)

probuilder
// Plot the age of the highest high inside a 50-bar window
RETURN HighestBars[50](high) AS "bars since 50-bar high"

La ligne tracée retombe à 0 chaque fois qu'un nouveau plus haut de 50 bars s'inscrit et monte de un à chaque bar qui ne parvient pas à le dépasser, une mesure compacte de l'ancienneté du plus haut courant.

Exemple 3, Entrer uniquement sur de nouveaux plus hauts (ProOrder)

probuilder
recency = HighestBars[20](close)
// An offset of 0 means this bar set the highest close of the window
IF recency = 0 AND NOT ONMARKET THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
SET STOP PLOSS 40

La stratégie n'achète que sur les bars qui établissent un nouveau plus haut de clôture sur 20 bars, en utilisant le décalage zéro comme confirmation de breakout.

Erreurs et pièges courants

  • Décalage, pas valeur. HighestBars renvoie un nombre de bars, pas un prix. Le tracer comme s'il s'agissait de la valeur du sommet produit une dent de scie entre 0 et Period. Utilisez Highest pour la valeur elle-même.
  • Comptage à partir de zéro. 0 désigne la bar en cours, donc la valeur de retour maximale est Period - 1. Une logique écrite comme si le comptage commençait à 1 manque complètement les nouveaux plus hauts.
  • Le cas -1. Lorsque la fenêtre ne peut pas produire de maximum, la fonction renvoie -1. Injecter directement cette valeur dans un indice de série tel que close[-1] est invalide, protégez donc le résultat avant de l'indexer.
  • Les égalités se résolvent en faveur du bar le plus récent. En cas de maxima identiques dans la fenêtre, le plus petit décalage l'emporte. Les calculs qui supposent la plus ancienne occurrence seront faussés de l'écart entre les doublons.
  • Highest, la valeur la plus haute elle-même sur une période.
  • Lowest, la valeur la plus basse sur une période.
  • LowestBars, décalage jusqu'à la valeur la plus basse, le miroir de HighestBars.
  • BarsSince, nombre de bars écoulés depuis qu'une condition arbitraire a été vraie.
  • BarIndex, numéro de bar absolu, utilisé pour convertir les décalages en positions sur le graphique.
  • DRAWTEXT, dessine une étiquette sur un bar repéré grâce au décalage renvoyé.
  • Summation, agrégation d'une série sur une fenêtre fixe.