R2
R2 in ProBuilder gibt den R-Squared-Koeffizienten einer linearen Regression über N Bars zurück, ein Maß der Trendstärke von 0 bis 1. Syntax, Formel, durchgerechnete Beispiele.
Syntax
R2[N](price)Parameter
| Name | Typ | Standard | Beschreibung |
|---|---|---|---|
N | Ganzzahl | keine | Anzahl der Bars im Regressionsfenster. Übliche Werte sind 14 bis 30. Kurze Fenster reagieren schneller, melden aber viele falsche Trends. |
price | Kursquelle | Schlusskurs | Die Serie, an die die Regression angepasst wird. Normalerweise close, akzeptiert auch open, high, low, oder eine eigene Variable. |
Formel
R2 = 1 - (SSres / SStot)
where SSres = sum of squared residuals from the regression line
SStot = sum of squared deviations of price from its meanR-Squared ist das Bestimmtheitsmaß der Kleinste-Quadrate-Gerade, die an die letzten N Werte von price. Er entspricht der quadrierten Korrelation zwischen Kurs und Zeit über das Fenster und ist daher auf den Bereich zwischen 0 und 1 begrenzt.
So funktioniert es
Auf jedem Bar passt ProBuilder eine Gerade durch die letzten N Kurspunkte und misst, wie viel der Kursvariation diese Linie erklärt. Liegen die Punkte nahezu exakt auf der Linie, sind die Residuen winzig und R2 nähert sich 1. Schwankt der Kurs zufällig um seinen Mittelwert, erklärt die Linie wenig und R2 nähert sich 0.
R2 ist richtungsblind. Ein perfekter Aufwärtstrend und ein perfekter Abwärtstrend liefern beide Werte nahe 1, R2 sagt also, wie stark der Markt trendet, nicht in welche Richtung. Für die Richtung kombinieren Sie es mit LinearRegressionSlope oder vergleichen Sie aufeinanderfolgende LinearRegression Werte, wie im ersten Beispiel.
Eine verbreitete Daumenregel behandelt Werte über etwa 0.4 bis 0.6, je nach N, als statistisch bedeutsame Trends und niedrigere Werte als Rauschen. Weil R2 auf einem rollierenden Fenster berechnet wird, fällt es schnell, wenn ein klarer Trend in eine Konsolidierung übergeht, was es als Regime-Filter nützlich macht, der trendfolgende Logik ein- und ausschaltet.
Beispiele
Beispiel 1, Trendstärke mit Richtungserkennung (Indikator)
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, bearishR2 liefert den Stärketest und die Änderung der Regressionslinie liefert die Richtung. Beide Ausgaben bleiben bei 0, wenn die Anpassung zu schwach ist, um ihr zu vertrauen, wodurch Seitwärtsphasen herausgefiltert werden.
Beispiel 2, Regimefilter für ein trendfolgendes System (ProOrder)
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
ENDIFEinstiege erfordern sowohl eine starke Anpassung als auch eine positive Steigung. Der Ausstieg löst allein anhand der Trendqualität aus und schließt die Position, sobald der Kurs sich nicht mehr linear verhält, unabhängig von der Richtung.
Beispiel 3, Screening auf die geordnetsten Aufwärtstrends (ProScreener)
fit = R2[20](close)
slope = LinearRegressionSlope[20](close)
SCREENER[fit > 0.7 AND slope > 0](fit AS "R-Squared")Listet Instrumente auf, deren letzte 20 Schlusskurse mit einem R-Squared über 0.7 zu einer steigenden Gerade passen, sortiert nach der Anpassungsspalte.
Interpretation
| R2-Bereich | Ablesung |
|---|---|
| 0.7 bis 1.0 | Starker linearer Trend. Der Kurs folgt seiner Regressionslinie eng. |
| 0.4 bis 0.7 | Moderater Trend. Eine Richtungstendenz besteht, aber mit nennenswertem Rauschen. |
| 0.0 bis 0.4 | Schwacher oder kein Trend. Mean-Reversion-Verhalten dominiert. |
Genaue Schwellen hängen ab von N. Kürzere Fenster erzeugen zufällig höhere R2-Werte, sodass ein Wert von 0.7 über 10 Bars weit weniger aussagekräftig ist als 0.7 über 50 Bars. R2 liest sich am besten als Regime-Anzeiger: Ein Anstieg über eine Schwelle legt nahe, dass Trendlogik aktiv sein sollte, ein Fall darunter spricht für Range-Logik.
Häufige Fehler und Stolperfallen
- Keine Richtungsangabe. R2 nahe 1 tritt sowohl in starken Aufwärtstrends als auch in starken Abwärtstrends auf. Allein auf Basis eines hohen R2 long zu gehen kauft in Crashs hinein. Kombinieren Sie es immer mit einem Steigungs- oder Kursvergleich.
- Kurze Fenster blähen den Wert auf. Wenige Punkte lassen sich immer recht gut an eine Linie anpassen, also
R2[5]zeigt regelmäßig hohe Werte in reinem Rauschen. Verwenden Sie längere Fenster oder erhöhen Sie den Schwellenwert, wennNist klein. - Verzögerung an Wendepunkten. R2 bleibt mehrere Bars nach dem Ende eines Trends erhöht, weil das Fenster noch den alten Trend enthält. Rechnen Sie damit, dass Regimesignale konstruktionsbedingt verspätet eintreffen.
- Begrenzte Ausgabe, unbegrenzte Erwartungen. Der Wert verlässt den Bereich 0 bis 1 nie. Bedingungen wie
R2[20](close) > 5können niemals wahr sein und deaktivieren stillschweigend die Logik, die von ihnen abhängt.
Verwandte Befehle
LinearRegression, Wert der angepassten Regressionslinie selbst.LinearRegressionSlope, Steigung der Regressionslinie, liefert die Richtung.STD, Standardabweichung, das Streuungsmaß hinter SStot.STE, Standardfehler der Regressionsschätzung.TimeSeriesAverage, gleitender Durchschnitt, aufgebaut aus Regressionsendpunkten.EndPointAverage, verwandte endpunktbasierte Glättung.ADX, alternatives Maß der Trendstärke, basierend auf Directional Movement.Average, einfacher gleitender Durchschnitt, oft als Basis-Trendfilter kombiniert.