Bli medlem i dag
Indikatorer/probuilder · probacktest · proorder · proscreener

R2

R2 i ProBuilder returnerer R-Squared-koeffisienten til en lineær regresjon over N barer, et mål på trendstyrke fra 0 til 1. Syntaks, formel, gjennomgåtte eksempler.

Syntaks

probuilder
R2[N](price)

Parametere

NavnTypeStandardBeskrivelse
NheltallingenAntall barer i regresjonsvinduet. Vanlige verdier er 14 til 30. Korte vinduer reagerer raskere, men flagger mange falske trender.
pricepriskildelukkSerien regresjonen tilpasses. Vanligvis close, godtar også open, high, low, eller en egendefinert variabel.

Formel

kode
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 er determinasjonskoeffisienten til minste kvadraters linje tilpasset de siste N verdier av price. Den er lik den kvadrerte korrelasjonen mellom pris og tid over vinduet, så den er begrenset mellom 0 og 1.

Slik fungerer det

På hver bar tilpasser ProBuilder en rett linje gjennom de siste N prispunkter og måler hvor mye av prisvariasjonen den linjen forklarer. Hvis punktene ligger nesten helt på linjen, er residualene små og R2 nærmer seg 1. Hvis prisen vandrer tilfeldig rundt gjennomsnittet sitt, forklarer linjen lite og R2 nærmer seg 0.

R2 er retningsblind. Både en perfekt opptrend og en perfekt nedtrend gir verdier nær 1, så R2 sier hvor trendpreget markedet er, ikke hvilken vei det trender. For retning, kombiner den med LinearRegressionSlope eller sammenlign påfølgende LinearRegression verdier, som i det første eksempelet.

En vanlig tommelfingerregel behandler verdier over omtrent 0.4 til 0.6, avhengig av N, som statistisk meningsfulle trender og lavere verdier som støy. Fordi R2 beregnes på et rullerende vindu, faller den raskt når en ren trend går inn i en konsolidering, noe som gjør den nyttig som regimefilter som slår trendfølgende logikk av og på.

Eksempler

Eksempel 1, Trendstyrke med retningsdeteksjon (Indikator)

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

R2 gir styrketesten, og endringen i regresjonslinjen gir retningen. Begge utdataene holder seg på 0 når tilpasningen er for svak til å stole på, og filtrerer bort sidelengs perioder.

Eksempel 2, Regimefilter for et trendfølgende system (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

Innganger krever både god tilpasning og positiv stigning. Utgangen utløses på trendkvalitet alene, og lukker posisjonen så snart prisen slutter å oppføre seg lineært, uansett retning.

Eksempel 3, Screening etter de mest ordnede opptrendene (ProScreener)

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

Lister instrumenter der de siste 20 sluttkursene passer til en stigende rett linje med R-Squared over 0.7, sortert etter tilpasningskolonnen.

Tolkning

R2-intervallAvlesning
0.7 til 1.0Sterk lineær trend. Prisen følger regresjonslinjen tett.
0.4 til 0.7Moderat trend. Det finnes en retningsmessig skjevhet, men med betydelig støy.
0.0 til 0.4Svak eller ingen trend. Mean reversion-atferd dominerer.

Eksakte terskler avhenger av N. Kortere vinduer gir høyere R2-verdier ved tilfeldighet, så en verdi på 0.7 over 10 barer er langt mindre signifikant enn 0.7 over 50 barer. R2 leses best som en regimemåler, et brudd oppover gjennom en terskel tilsier at trendlogikk bør være aktiv, et brudd nedover gjennom den tilsier logikk for sideveis marked.

Vanlige feil og fallgruver

  • Ingen retningsinformasjon. R2 nær 1 forekommer både i sterke opptrender og sterke nedtrender. Å handle long på høy R2 alene kjøper inn i krakk. Kombiner alltid med en sammenligning av stigning eller pris.
  • Korte vinduer blåser opp verdien. Noen få punkter passer rimelig godt til en linje, så R2[5] gir regelmessig høye verdier i ren støy. Bruk lengre vinduer eller hev terskelen når N er liten.
  • Forsinkelse ved vendepunkter. R2 holder seg forhøyet i flere barer etter at en trend er over, fordi vinduet fortsatt inneholder den gamle trenden. Forvent at regimesignaler kommer sent, det ligger i konstruksjonen.
  • Avgrenset resultat, uavgrensede forventninger. Verdien forlater aldri området 0 til 1. Betingelser som R2[20](close) > 5 kan aldri være sanne og deaktiverer stille logikken som avhenger av dem.
  • LinearRegression, verdien av selve den tilpassede regresjonslinjen.
  • LinearRegressionSlope, stigningen til regresjonslinjen, gir retning.
  • STD, standardavvik, spredningsmålet bak SStot.
  • STE, standardfeilen til regresjonsestimatet.
  • TimeSeriesAverage, glidende gjennomsnitt bygget fra regresjonsendepunkter.
  • EndPointAverage, relatert endepunktbasert glatting.
  • ADX, alternativt mål på trendstyrke basert på retningsbevegelse.
  • Average, enkelt glidende gjennomsnitt, ofte brukt som et grunnleggende trendfilter.