Jetzt beitreten
Indikatoren/probuilder · probacktest · proorder · proscreener

LinearRegressionSlope

LinearRegressionSlope in ProBuilder gibt die Steigung einer Regressionslinie der kleinsten Quadrate über N Bars zurück und misst damit Trendrichtung und Trendstärke. Beispiele.

Syntax

probuilder
LinearRegressionSlope[N](price)

Parameter

NameTypStandardBeschreibung
NGanzzahlerforderlichAnzahl der Bars im Regressionsfenster. Kleine Werte reagieren schnell, wechseln aber häufig das Vorzeichen; größere Werte beschreiben den anhaltenden Trend.
priceKursquelleSchlusskursSerie, an die die Linie angepasst wird. Normalerweise close; open, high, low, oder eine eigene Variable funktionieren ebenfalls.

Formel

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

wobei x ist der Bar-Index innerhalb des Fensters und y den Kurs. Das Ergebnis wird in Kurseinheiten pro Bar ausgedrückt.

So funktioniert es

Während LinearRegression gibt das Niveau der angepassten Linie zurück, LinearRegressionSlope gibt deren Richtung zurück. Auf jedem Bar passt die Funktion die Linie neu an über die letzten N Preise und gibt den Koeffizienten b: wie stark die angepasste Linie pro Bar steigt oder fällt. Ein Wert von 0.5 auf einem Tageschart bedeutet, dass der Regressionstrend pro Tag einen halben Punkt steigt.

Da die Anpassung jeden Punkt im Fenster berücksichtigt und nicht nur den ersten und letzten, ist die Steigung weniger anfällig für eine einzelne verrauschte Bar als eine einfache N-Bar-Kursdifferenz. Es ist im Grunde eine geglättete Änderungsrate, weshalb es auch als Momentum-Maß dient.

Die Nulllinie ist der natürliche Angelpunkt. Kreuzungen von negativ nach positiv signalisieren einen möglichen Übergang in einen Aufwärtstrend, Kreuzungen in die andere Richtung einen möglichen Abwärtstrend. Die Steigung zu kombinieren mit R2 filtert diese Signale, da eine steile Steigung durch schlecht passende Daten weniger verlässlich ist als eine moderate Steigung durch einen klaren Trend.

Beispiele

Beispiel 1, Nulldurchgangssignale der Steigung (Indikator)

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

Markiert den Bar, auf dem die 10-Bar-Steigung positiv wird, mit dem Wert 1 und den Bar, auf dem sie negativ wird, mit -1, ein kompakter Detektor für Trendwechsel.

Beispiel 2, Qualitätsgefilterter Trendscan (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")

Gibt Instrumente mit einer positiven 20-Bar-Steigung zurück, deren R-Quadrat 0.8 übersteigt, womit nur Trends erhalten bleiben, die sowohl steigend als auch klar definiert sind.

Beispiel 3, Steigung als Einstiegsfilter (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

Verlangt, dass die mittelfristige Regressionssteigung positiv ist, bevor ein 20-Bar-Breakout akzeptiert wird, und schließt die Position, sobald die Steigung nach unten dreht.

Interpretation

Das Vorzeichen gibt die Richtung an: positive Steigung, Aufwärtstrend; negative Steigung, Abwärtstrend. Der Betrag gibt die Steilheit an, allerdings in absoluten Kurseinheiten, sodass er an der eigenen Skala des Instruments beurteilt werden muss. Eine Steigung von 2 ist steil bei einem Instrument, das bei 50 notiert, und unbedeutend bei einem, das bei 5000 notiert.

Das Verhalten der Steigung beschreibt auch die Reife des Trends. Eine steigende Steigung bedeutet, dass der Trend sich beschleunigt, eine fallende, aber noch positive Steigung bedeutet einen Aufwärtstrend, der Momentum verliert, ein Muster, das dem eigentlichen Kurswechsel oft vorausgeht.

Häufige Fehler und Stolperfallen

  • Nicht über Instrumente hinweg vergleichbar. Die rohe Steigung hängt von der Kursskala ab. Für Screener, die viele Instrumente abdecken, normalisieren Sie sie, zum Beispiel 100 * LinearRegressionSlope[20](close) / close, um Prozent pro Bar zu erhalten.
  • Whipsaws um die Nulllinie. In Seitwärtsmärkten pendelt die Steigung nahe null und wechselt häufig das Vorzeichen. Nulldurchgangslogik ohne Betragsschwelle oder einen R2 Filter erzeugt eine Reihe von Fehlsignalen.
  • Falscher Klammertyp. LinearRegressionSlope(10, close) lässt sich nicht kompilieren. Periode in eckigen Klammern, Kursquelle in runden Klammern.
  • Steil bedeutet nicht zuverlässig. Eine große Steigung durch stark gestreute Daten spiegelt einzelne Ausreißer wider, nicht einen Trend. Prüfen Sie die Anpassungsgüte mit R2 bevor der Wert verwendet wird.
  • LinearRegression, das Niveau derselben angepassten Linie.
  • R2, Anpassungsgüte der Regression, der natürliche Begleitfilter.
  • ROC, Änderungsrate, ein einfacheres Momentum-Maß.
  • Momentum, rohe Preisdifferenz über N Bars.
  • Average, gleitender Durchschnitt, dessen Steigung einem ähnlichen Zweck dient.
  • ADX, Trendstärke ohne Richtung, ein alternativer Filter.
  • STE, Standardfehler der Regressionsschätzung.
  • TimeSeriesAverage, regressionsbasierte Glättung des Kurses.