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

Range

Range renvoie le plus haut moins le plus bas d'une bar en ProBuilder, son amplitude de prix complète. Utilisez Range ou Range[N] pour mesurer la volatilité par bar dans les indicateurs et les stratégies.

Syntaxe

probuilder
Range

Range[N] renvoie l'amplitude N bars en arrière, où N vaut 0 pour la bar courante, 1 pour la bar précédente, et ainsi de suite. Range et Range[0] sont équivalents.

Comment ça marche

Range est la différence entre le haut et le bas du bar, High - Low. Il mesure de combien le prix s'est déplacé entre les extrêmes d'un seul bar, une large amplitude signale donc un bar actif et une faible amplitude un bar calme.

Le décalage entre crochets désigne les bars antérieurs, donc Range[1] correspond à l'amplitude du bar précédent. L'index doit rester dans l'historique chargé.

Contrairement au true range, Range ne regarde que le bar courant et ignore tout gap par rapport à la clôture précédente. Pour une volatilité qui tient compte des gaps, utilisez TR ou AverageTrueRange. Sur la bar en cours, le range s'élargit à mesure que le plus haut ou le plus bas s'étend, jusqu'à la clôture de la bar.

Exemples

Exemple 1, Range comparé à sa moyenne (Indicateur)

probuilder
// Compare the current bar's span with its recent average
avgRange = Average[20](Range)
RETURN Range AS "Range", avgRange AS "Avg range 20"

L'indicateur met en évidence les bars dont l'amplitude est supérieure ou inférieure à la norme récente.

Exemple 2, Recherche d'une contraction de l'amplitude (ProScreener)

probuilder
// Latest range narrower than the previous bar, with a lower high
contracting = Range < Range[1] AND High < High[1]

SCREENER[contracting] (Range AS "Range")

Le screener renvoie les instruments dont l'amplitude des bars se contracte parallèlement à un plus haut descendant.

Exemple 3, Éviter les entrées sur les bars larges (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

avgRange = Average[20](Range)

// Skip signals when the current bar is unusually wide
IF Close CROSSES OVER Average[20](Close) AND Range < 1.5 * avgRange THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

SET STOP %LOSS 2

Le filtre bloque les entrées lorsque le Range est bien supérieur à la moyenne, ce qui évite les bars surétendus.

Erreurs et pièges courants

  • Ignore les gaps. Range est le plus haut moins le plus bas d'un seul bar. Il n'inclut pas le gap depuis la clôture précédente, et peut donc sous-estimer la volatilité autour des gaps. Utilisez TR pour une mesure tenant compte des gaps.
  • La bar en cours s'agrandit. Sur la bar en cours, l'amplitude continue de s'élargir jusqu'à la clôture, donc les comparaisons avec les bars terminées sont inégales tant que la bar n'est pas achevée.
  • Décalage hors plage. Range[N] échoue lorsque N désigne un point situé avant la première bar chargée. Limitez les longues profondeurs d'historique ou chargez plus d'historique.
  • High, le prix le plus haut d'un bar.
  • Low, le prix le plus bas d'un bar.
  • TR, le true range, qui tient compte des gaps.
  • AverageTrueRange, un true range lissé sur plusieurs bars.
  • Close, le prix de clôture d'un bar.
  • Open, le prix d'ouverture d'un bar.
  • TypicalPrice, la moyenne de high, low et close.
  • Volume, le volume échangé d'un bar.