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

ROC

ROC en ProBuilder renvoie le Rate of Change, la différence en pourcentage entre le prix actuel et le prix d'il y a N bars. Syntaxe, formule, exemples.

Syntaxe

probuilder
ROC[N](price)

Paramètres

NomTypePar défautDescription
NentieraucunDistance de rétrospection en bars. Les valeurs courantes sont 12 et 25. Les valeurs courtes suivent les oscillations rapides du momentum, les valeurs longues suivent le cycle plus large.
pricesource de prixcloseLa série mesurée, généralement close, également open, high, low, ou une variable personnalisée.

Formule

code
ROC = ((price - price[N]) * 100) / price[N]

La valeur actuelle moins la valeur N barres, divisée par cette valeur passée, multipliée par 100. Une lecture de 5 signifie que le prix est 5 pour cent au-dessus de son niveau d'il y a N bars plus tôt.

Comment ça marche

Le ROC est l'un des oscillateurs de momentum les plus simples. À chaque bar il répond à une seule question : de quel pourcentage le prix a-t-il bougé sur les derniers N bars. Comme la variation est exprimée en pourcentage plutôt qu'en points, les lectures sont comparables entre instruments de niveaux de prix différents, ce qui constitue la principale différence pratique avec Momentum, son équivalent en points.

La ligne oscille autour de zéro sans borne supérieure ni inférieure fixe. Des lectures positives soutenues caractérisent les tendances haussières, des lectures négatives soutenues caractérisent les tendances baissières, et le croisement du zéro lui-même est un signal de base de changement de tendance. Comme ROC compare exactement deux points, une grande bar qui sort par l'arrière de la fenêtre peut faire bouger l'indicateur autant qu'une grande bar qui arrive à l'avant, un effet qu'il vaut la peine de garder à l'esprit lorsqu'une lecture bondit sans mouvement de prix évident sur la bar en cours.

L'analyse des divergences est l'autre usage standard. Lorsque le prix inscrit un plus haut supérieur mais que ROC inscrit un plus haut inférieur, la hausse décélère, et le cas inverse s'applique sur les plus bas.

Exemples

Exemple 1, Mesurer l'accélération entre des variations consécutives (Indicateur)

probuilder
// One-bar rate of change on this bar and on the previous bar
i1 = ROC[1](close)
i2 = ROC[1](close[1])
// Ratio above 1 means the latest change is larger than the previous one
majorchange = i1 / i2
RETURN majorchange

Compare la dernière variation en pourcentage sur une bar avec la précédente. Le ratio mesure l'accélération des variations de prix. Notez que i2 égal à zéro, c'est-à-dire un bar précédent plat, produit une division par zéro ; le code de production doit donc protéger le dénominateur.

Exemple 2, Entrée en tendance filtrée par le momentum (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

mom   = ROC[12](close)
trend = Average[100](close)

// Long when the 12-bar momentum turns positive above the trend average
IF NOT LongOnMarket AND close > trend AND mom CROSSES OVER 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Exit when momentum decays back through zero
IF LongOnMarket AND mom CROSSES UNDER 0 THEN
  SELL AT MARKET
ENDIF

Le croisement du zéro d'un ROC à 12 bars cale les entrées et les sorties, tandis que la moyenne à 100 bars limite le trading au côté de la tendance haussière.

Exemple 3, Recherche des fortes variations sur 20 bars (ProScreener)

probuilder
perf = ROC[20](close)
SCREENER[perf > 10](perf AS "ROC 20 %")

Renvoie les instruments ayant gagné plus de 10 pour cent sur les 20 dernières bars, avec la valeur de ROC affichée dans une colonne triable, un écran de classement par momentum minimal.

Interprétation

LectureSignification
ROC > 0Le prix est au-dessus de son niveau d'il y a N bars, momentum haussier.
ROC < 0Le prix est en dessous de son niveau d'il y a N bars, momentum baissier.
Lecture extrêmement hautePotentiellement suracheté, le prix est étiré par rapport à son passé récent.
Lecture extrêmement bassePotentiellement survendu.
Divergence haussièreLe prix inscrit des plus bas décroissants tandis que ROC inscrit des plus bas croissants, le momentum baissier s'essouffle.
Divergence baissièreLe prix inscrit des plus hauts croissants tandis que ROC inscrit des plus hauts décroissants, le momentum haussier s'essouffle.

Ce qui compte comme extrême dépend de l'instrument et N, car l'indicateur n'est pas borné. Les instruments volatils atteignent couramment des niveaux de ROC qui seraient exceptionnels ailleurs ; les seuils doivent donc être calibrés marché par marché.

Erreurs et pièges courants

  • Division par zéro dans les ratios dérivés. Les expressions comme ROC[1](close) / ROC[1](close[1]) échouent dès que la variation précédente est exactement nulle. Protégez les dénominateurs par un test contre 0 avant de diviser.
  • Échelle non bornée. Contrairement au RSI, ROC n'a pas de plage de 0 à 100. Les seuils de surachat et de survente copiés de la logique du RSI, comme 30 et 70, n'ont aucun sens ici.
  • Effet de sortie de fenêtre. La lecture change lorsqu'une ancienne bar extrême quitte la fenêtre de N bars, même si le prix actuel bouge à peine. Les sauts soudains de ROC ne reflètent pas toujours de nouveaux achats ou de nouvelles ventes.
  • Faux signaux au croisement du zéro avec un N petit. ROC[1] ou ROC[2] change de signe sans arrêt dans les marchés calmes. Les systèmes à croisement de zéro nécessitent soit une période plus longue N ou un filtre de tendance supplémentaire.
  • RocnRoll, générateur de signaux construit sur le taux de variation et les moyennes exponentielles.
  • Momentum, l'équivalent exprimé en points, le prix moins le prix d'il y a N bars.
  • RSI, oscillateur de momentum borné avec des seuils fixes.
  • Variation, variation en pourcentage entre la clôture précédente et la clôture actuelle.
  • VolumeROC, le même calcul de taux de variation appliqué au volume.
  • MACD, momentum issu de l'écart entre deux moyennes exponentielles.
  • CCI, oscillateur basé sur l'écart, une autre alternative de momentum.
  • Stochastic, position de la clôture dans l'amplitude récente entre plus haut et plus bas.