R2
R2 i ProBuilder returnerar R-Squared-koefficienten för en linjär regression över N barer, ett mått på trendstyrka från 0 till 1. Syntax, formel, genomgångna exempel.
Syntax
R2[N](price)Parametrar
| Namn | Typ | Standard | Beskrivning |
|---|---|---|---|
N | heltal | ingen | Antal barer i regressionsfönstret. Vanliga värden är 14 till 30. Korta fönster reagerar snabbare men flaggar många falska trender. |
price | priskälla | close | Serien som regressionen anpassas till. Vanligtvis close, accepterar även open, high, low, eller en egen variabel. |
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 är förklaringsgraden för minstakvadratlinjen som anpassats till de senaste N värden för price. Den är lika med den kvadrerade korrelationen mellan pris och tid över fönstret, så den är begränsad mellan 0 och 1.
Så fungerar det
På varje bar anpassar ProBuilder en rät linje genom de senaste N prispunkter och mäter hur mycket av prisvariationen den linjen förklarar. Om punkterna ligger nästan exakt på linjen är residualerna mycket små och R2 närmar sig 1. Om priset vandrar slumpmässigt kring sitt medelvärde förklarar linjen lite och R2 närmar sig 0.
R2 är riktningsblind. En perfekt uppåttrend och en perfekt nedåttrend ger båda värden nära 1, så R2 säger hur trendig marknaden är, inte i vilken riktning den trendar. För riktning, kombinera den med LinearRegressionSlope eller jämför på varandra följande LinearRegression värden, som i det första exemplet.
En vanlig tumregel behandlar värden över ungefär 0.4 till 0.6, beroende på N, som statistiskt meningsfulla trender och lägre värden som brus. Eftersom R2 beräknas på ett rullande fönster faller det snabbt när en ren trend går in i en konsolidering, vilket gör det användbart som regimfilter som slår av och på trendföljande logik.
Exempel
Exempel 1, Trendstyrka med riktningsdetektering (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 står för styrketestet och förändringen i regressionslinjen står för riktningen. Båda utdata ligger kvar på 0 när anpassningen är för svag att lita på, vilket filtrerar bort sidledes perioder.
Exempel 2, Regimfilter för ett trendföljande 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
ENDIFEntries kräver både en stark anpassning och en positiv lutning. Exiten utlöses enbart på trendkvalitet och stänger positionen när priset slutar bete sig linjärt, oavsett riktning.
Exempel 3, Screening för de mest ordnade upptrenderna (ProScreener)
fit = R2[20](close)
slope = LinearRegressionSlope[20](close)
SCREENER[fit > 0.7 AND slope > 0](fit AS "R-Squared")Listar instrument vars senaste 20 stängningar passar en stigande rät linje med R-Squared över 0.7, sorterade efter anpassningskolumnen.
Tolkning
| R2-intervall | Avläsning |
|---|---|
| 0.7 till 1.0 | Stark linjär trend. Priset följer sin regressionslinje nära. |
| 0.4 till 0.7 | Måttlig trend. Riktningsbias finns men med betydande brus. |
| 0.0 till 0.4 | Svag eller ingen trend. Mean reversion-beteende dominerar. |
Exakta trösklar beror på N. Kortare fönster ger av en slump högre R2-värden, så ett värde på 0.7 över 10 barer är långt mindre signifikant än 0.7 över 50 barer. R2 läses bäst som en regimmätare, ett brott upp genom en tröskel antyder att trendlogik bör vara aktiv, ett brott ned genom den antyder rangelogik.
Vanliga fel och fallgropar
- Ingen riktningsinformation. R2 nära 1 uppstår i både starka upptrender och starka nedtrender. Att gå long enbart på högt R2 innebär att man köper in sig i krascher. Kombinera alltid med en jämförelse av lutning eller pris.
- Korta fönster blåser upp värdet. Några få punkter passar alltid en linje rimligt väl, så
R2[5]ger regelbundet höga värden i rent brus. Använd längre fönster eller höj tröskeln närNär liten. - Eftersläpning vid vändpunkter. R2 ligger kvar högt under flera barer efter att en trend har tagit slut, eftersom fönstret fortfarande innehåller den gamla trenden. Räkna med att regimsignaler kommer sent per konstruktion.
- Begränsad utdata, obegränsade förväntningar. Värdet lämnar aldrig intervallet 0 till 1. Villkor såsom
R2[20](close) > 5kan aldrig vara sanna och inaktiverar tyst logiken som beror på dem.
Relaterade instruktioner
LinearRegression, värdet på själva den anpassade regressionslinjen.LinearRegressionSlope, regressionslinjens lutning, ger riktningen.STD, standardavvikelse, spridningsmåttet bakom SStot.STE, standardfelet för regressionsskattningen.TimeSeriesAverage, glidande medelvärde byggt på regressionens slutpunkter.EndPointAverage, relaterad utjämning baserad på slutpunkter.ADX, alternativt mått på trendstyrka baserat på directional movement.Average, enkelt glidande medelvärde, ofta parat som ett grundläggande trendfilter.