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

LinearRegressionSlope

LinearRegressionSlope dans ProBuilder renvoie la pente d'une droite de régression des moindres carrés sur N bars, mesurant la direction et la force de la tendance. Exemples.

Syntaxe

probuilder
LinearRegressionSlope[N](price)

Paramètres

NomTypePar défautDescription
NentierrequisNombre de bars dans la fenêtre de régression. Les petites valeurs réagissent rapidement mais changent souvent de signe ; les valeurs plus grandes décrivent la tendance durable.
pricesource de prixcloseSérie sur laquelle la ligne est ajustée. Généralement close; open, high, low, ou une variable personnalisée fonctionnent aussi.

Formule

code
Fit y = a + b*x by least squares over the last N bars

b = ( N * sum(x*y) - sum(x) * sum(y) ) / ( N * sum(x^2) - sum(x)^2 )

LinearRegressionSlope = b

où x est l'index du bar dans la fenêtre et y le prix. Le résultat est exprimé en unités de prix par bar.

Comment ça marche

Tandis que LinearRegression renvoie le niveau de la droite ajustée, LinearRegressionSlope renvoie sa direction. À chaque bar, la fonction réajuste la droite sur les dernières N des prix et renvoie le coefficient b: de combien la droite ajustée monte ou descend par bar. Une lecture de 0.5 sur un graphique journalier signifie que la tendance de régression grimpe d'un demi-point par jour.

Comme l'ajustement prend en compte chaque point de la fenêtre et pas seulement le premier et le dernier, la pente est moins sensible à un seul bar bruité qu'un simple N bars de différence de prix. Il s'agit en pratique d'un taux de variation lissé, ce qui explique qu'il serve aussi de mesure de momentum.

La ligne de zéro est le pivot naturel. Les passages du négatif au positif signalent une transition possible vers une tendance haussière, les passages inverses une possible tendance baissière. Associer la pente à R2 filtre ces signaux, car une pente forte à travers des données mal ajustées est moins fiable qu'une pente modérée à travers une tendance propre.

Exemples

Exemple 1, Signaux de croisement de zéro de la pente (Indicateur)

probuilder
// Slope of the 10-bar regression on the close
i1 = LinearRegressionSlope[10](close)

// Flag transitions of the slope through zero
IF i1 > 0 AND i1[1] < 0 THEN
  bullish = 1
  bearish = 0
ELSIF i1 < 0 AND i1[1] > 0 THEN
  bullish = 0
  bearish = -1
ELSE
  bullish = 0
  bearish = 0
ENDIF

RETURN bullish, bearish

Marque le bar où la pente sur 10 bars devient positive avec une valeur de 1 et le bar où elle devient négative avec -1, un détecteur compact de changement de tendance.

Exemple 2, Scan de tendance filtré par la qualité (ProScreener)

probuilder
// Rising instruments where the regression line actually fits the data
slope   = LinearRegressionSlope[20](close)
quality = R2[20](close)
SCREENER[slope > 0 AND quality > 0.8](slope AS "Slope")

Renvoie les instruments dont la pente sur 20 bars est positive et dont le R-carré dépasse 0.8, ne conservant que les tendances à la fois haussières et bien définies.

Exemple 3, La pente comme filtre d'entrée (ProBacktest)

probuilder
// Only take breakout longs while the 50-bar slope is positive
slope = LinearRegressionSlope[50](close)

IF NOT OnMarket AND slope > 0 AND close CROSSES OVER Highest[20](high)[1] THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

IF LongOnMarket AND slope < 0 THEN
  SELL AT MARKET
ENDIF

Exige que la pente de régression de moyen terme soit positive avant d'accepter un breakout sur 20 bars, et ferme la position dès que la pente se retourne à la baisse.

Interprétation

Le signe donne la direction : pente positive, tendance haussière ; pente négative, tendance baissière. L'amplitude donne l'inclinaison, mais en unités de prix absolues, elle doit donc être jugée à l'échelle propre de l'instrument. Une pente de 2 est forte sur un instrument coté à 50 et négligeable sur un instrument coté à 5000.

Le comportement de la pente décrit aussi la maturité de la tendance. Une pente qui monte signifie que la tendance accélère, une pente qui baisse mais reste positive signifie une tendance haussière qui perd son momentum, une configuration qui précède souvent le retournement effectif du prix.

Erreurs et pièges courants

  • Non comparable d'un instrument à l'autre. La pente brute dépend de l'échelle de prix. Pour des screeners couvrant de nombreux instruments, normalisez-la, par exemple 100 * LinearRegressionSlope[20](close) / close, pour obtenir le pourcentage par bar.
  • Faux signaux autour de zéro. Dans les marchés sans tendance, la pente oscille près de zéro et change fréquemment de signe. Une logique de franchissement de zéro sans seuil de magnitude ni R2 filtre génère un flux de faux signaux.
  • Mauvais type de crochets. LinearRegressionSlope(10, close) ne compile pas. Période entre crochets, source de prix entre parenthèses.
  • Une pente forte ne veut pas dire fiable. Une pente forte à travers des données dispersées reflète quelques valeurs aberrantes, pas une tendance. Vérifiez la qualité de l'ajustement avec R2 avant d'agir sur la valeur.
  • LinearRegression, le niveau de la même droite ajustée.
  • R2, qualité de l'ajustement de la régression, le filtre complémentaire naturel.
  • ROC, taux de variation, une mesure de momentum plus simple.
  • Momentum, différence de prix brute sur N barres.
  • Average, moyenne mobile dont la pente remplit un rôle similaire.
  • ADX, force de la tendance sans direction, un filtre alternatif.
  • STE, erreur type de l'estimation de régression.
  • TimeSeriesAverage, lissage du prix fondé sur la régression.