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

R2

R2 en ProBuilder renvoie le coefficient R-Squared d'une régression linéaire sur N bars, une mesure de la force de tendance de 0 à 1. Syntaxe, formule, exemples détaillés.

Syntaxe

probuilder
R2[N](price)

Paramètres

NomTypePar défautDescription
NentieraucunNombre de bars dans la fenêtre de régression. Les valeurs courantes vont de 14 à 30. Les fenêtres courtes réagissent plus vite mais signalent beaucoup de fausses tendances.
pricesource de prixcloseLa série sur laquelle la régression est ajustée. Généralement close, accepte aussi open, high, low, ou une variable personnalisée.

Formule

code
R2 = 1 - (SSres / SStot)

where SSres = sum of squared residuals from the regression line
      SStot = sum of squared deviations of price from its mean

R-Squared est le coefficient de détermination de la droite des moindres carrés ajustée sur les N valeurs de price. Il est égal au carré de la corrélation entre le prix et le temps sur la fenêtre, et il est donc borné entre 0 et 1.

Comment ça marche

À chaque bar, ProBuilder ajuste une droite sur les dernières N points de prix et mesure quelle part de la variation du prix cette droite explique. Si les points se situent presque exactement sur la droite, les résidus sont minuscules et R2 approche 1. Si le prix oscille au hasard autour de sa moyenne, la droite explique peu et R2 approche 0.

R2 ne tient pas compte de la direction. Une tendance haussière parfaite et une tendance baissière parfaite renvoient toutes deux des valeurs proches de 1 : R2 indique donc à quel point le marché est en tendance, pas dans quel sens. Pour la direction, associez-le à LinearRegressionSlope ou comparer des valeurs consécutives LinearRegression valeurs, comme dans le premier exemple.

Une règle empirique courante considère les valeurs supérieures à environ 0.4 à 0.6, selon N, comme des tendances statistiquement significatives et les lectures plus faibles comme du bruit. Comme le R2 est calculé sur une fenêtre glissante, il chute rapidement lorsqu'une tendance nette entre en consolidation, ce qui en fait un filtre de régime utile pour activer et désactiver une logique de suivi de tendance.

Exemples

Exemple 1, Force de tendance avec détection de direction (Indicateur)

probuilder
i1 = R2[20](close)
LR1 = linearregression[20](close)
LR2 = linearregression[20](close[1])

// A significant fit plus a falling regression line means a bearish trend
if(i1 > 0.4 AND LR1 < LR2) THEN
  bullish = 0
  bearish = -1
ELSIF(i1 > 0.4 AND LR1 > LR2) THEN
  bullish = 1
  bearish = 0
ELSE
  bullish = 0
  bearish = 0
ENDIF

RETURN bullish, bearish

Le R2 fournit le test de force et la variation de la droite de régression fournit la direction. Les deux sorties restent à 0 lorsque l'ajustement est trop faible pour être fiable, ce qui filtre les périodes sans tendance.

Exemple 2, Filtre de régime pour un système de suivi de tendance (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

fit   = R2[20](close)
slope = LinearRegressionSlope[20](close)

// Trade only when the market is measurably trending upward
IF NOT LongOnMarket AND fit > 0.6 AND slope > 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Exit when the trend quality degrades
IF LongOnMarket AND fit < 0.3 THEN
  SELL AT MARKET
ENDIF

Les entrées exigent à la fois un bon ajustement et une pente positive. La sortie se déclenche sur la seule qualité de la tendance, clôturant la position dès que le prix cesse de se comporter linéairement, quelle que soit la direction.

Exemple 3, Screening des tendances haussières les plus régulières (ProScreener)

probuilder
fit   = R2[20](close)
slope = LinearRegressionSlope[20](close)
SCREENER[fit > 0.7 AND slope > 0](fit AS "R-Squared")

Liste les instruments dont les 20 dernières clôtures s'ajustent à une droite ascendante avec un R-Squared supérieur à 0.7, triés selon la colonne d'ajustement.

Interprétation

Plage de R2Lecture
0.7 à 1.0Forte tendance linéaire. Le prix suit de près sa droite de régression.
0.4 à 0.7Tendance modérée. Un biais directionnel existe mais avec un bruit significatif.
0.0 à 0.4Tendance faible ou inexistante. Le comportement de mean reversion domine.

Les seuils exacts dépendent de N. Des fenêtres plus courtes produisent par hasard des valeurs de R2 plus élevées, une lecture de 0.7 sur 10 bars est donc bien moins significative que 0.7 sur 50 bars. Le R2 se lit au mieux comme une jauge de régime, un franchissement de seuil à la hausse suggère d'activer une logique de tendance, un franchissement à la baisse une logique de range.

Erreurs et pièges courants

  • Aucune information de direction. Un R2 proche de 1 se produit aussi bien dans les fortes tendances haussières que dans les fortes tendances baissières. Prendre des positions long sur un R2 élevé seul revient à acheter dans les krachs. Combinez toujours avec une comparaison de pente ou de prix.
  • Les fenêtres courtes gonflent la lecture. Quelques points s'ajustent assez bien à une droite, donc R2[5] affiche régulièrement des valeurs élevées dans du bruit pur. Utilisez des fenêtres plus longues ou relevez le seuil lorsque N est petit.
  • Retard aux points de retournement. Le R2 reste élevé pendant plusieurs bars après la fin d'une tendance parce que la fenêtre contient encore l'ancienne tendance. Attendez-vous à ce que les signaux de régime arrivent en retard par construction.
  • Sortie bornée, attentes illimitées. La valeur ne sort jamais de la plage 0 à 1. Des conditions telles que R2[20](close) > 5 ne peuvent jamais être vraies et désactivent silencieusement la logique qui en dépend.
  • LinearRegression, valeur de la droite de régression ajustée elle-même.
  • LinearRegressionSlope, pente de la droite de régression, fournit la direction.
  • STD, écart type, la mesure de dispersion derrière SStot.
  • STE, erreur type de l'estimation de régression.
  • TimeSeriesAverage, moyenne mobile construite à partir des extrémités de régression.
  • EndPointAverage, lissage apparenté fondé sur les extrémités.
  • ADX, jauge alternative de force de tendance fondée sur le mouvement directionnel.
  • Average, moyenne mobile simple, souvent associée comme filtre de tendance de référence.