Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

R2

R2 in ProBuilder restituisce il coefficiente R-Squared di una regressione lineare su N barre, una misura della forza della tendenza da 0 a 1. Sintassi, formula, esempi svolti.

Sintassi

probuilder
R2[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteronessunoNumero di barre nella finestra di regressione. I valori comuni sono da 14 a 30. Le finestre corte reagiscono più rapidamente ma segnalano molte tendenze false.
pricefonte di prezzochiusuraLa serie su cui è adattata la regressione. Di solito close, accetta anche open, high, low, o una variabile personalizzata.

Formula

codice
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 è il coefficiente di determinazione della retta dei minimi quadrati adattata alle ultime N valori di price. È uguale alla correlazione al quadrato tra prezzo e tempo sulla finestra, quindi è limitata tra 0 e 1.

Come funziona

Su ogni bar, ProBuilder adatta una retta agli ultimi N punti di prezzo e misura quanta parte della variazione di prezzo quella linea spiega. Se i punti si collocano quasi esattamente sulla linea, i residui sono minimi e R2 si avvicina a 1. Se il prezzo oscilla casualmente attorno alla sua media, la linea spiega poco e R2 si avvicina a 0.

R2 è cieco alla direzione. Un trend rialzista perfetto e un trend ribassista perfetto restituiscono entrambi valori vicini a 1, quindi R2 dice quanto il mercato sia direzionale, non in quale direzione vada. Per la direzione, abbinalo a LinearRegressionSlope o confrontare consecutivi LinearRegression valori, come nel primo esempio.

Una regola empirica comune considera le letture sopra circa da 0.4 a 0.6, a seconda di N, come trend statisticamente significativi e le letture inferiori come rumore. Poiché R2 è calcolato su una finestra mobile, scende rapidamente quando un trend pulito entra in consolidamento, il che lo rende utile come filtro di regime che attiva e disattiva la logica trend-following.

Esempi

Esempio 1, Forza della tendenza con rilevamento della direzione (Indicatore)

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 fornisce il test di forza e la variazione della linea di regressione fornisce la direzione. Entrambi gli output restano a 0 quando l'adattamento è troppo debole per essere affidabile, filtrando i periodi laterali.

Esempio 2, Filtro di regime per un sistema trend-following (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

Gli ingressi richiedono sia un adattamento forte sia una pendenza positiva. L'uscita si attiva sulla sola qualità della tendenza, chiudendo la posizione quando il prezzo smette di comportarsi in modo lineare, indipendentemente dalla direzione.

Esempio 3, Ricerca delle tendenze rialziste più ordinate (ProScreener)

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

Elenca gli strumenti le cui ultime 20 chiusure si adattano a una retta ascendente con R-Squared superiore a 0.7, ordinati per la colonna dell'adattamento.

Interpretazione

Intervallo di R2Lettura
Da 0.7 a 1.0Tendenza lineare forte. Il prezzo segue da vicino la sua linea di regressione.
Da 0.4 a 0.7Tendenza moderata. Esiste un bias direzionale ma con rumore significativo.
Da 0.0 a 0.4Tendenza debole o assente. Domina il comportamento di mean reversion.

Le soglie esatte dipendono da N. Finestre più brevi producono per caso valori di R2 più alti, quindi una lettura di 0.7 su 10 bar è molto meno significativa di 0.7 su 50 bar. R2 si legge meglio come misuratore di regime: un suo superamento di una soglia al rialzo suggerisce che la logica di trend dovrebbe essere attiva, un attraversamento al ribasso suggerisce una logica da fase laterale.

Errori e insidie comuni

  • Nessuna informazione sulla direzione. Un R2 vicino a 1 si verifica sia nelle tendenze rialziste forti sia in quelle ribassiste forti. Operare long sul solo R2 elevato significa comprare durante i crolli. Combinalo sempre con un confronto sulla pendenza o sul prezzo.
  • Le finestre corte gonfiano la lettura. Pochi punti si adattano abbastanza bene a una linea, quindi R2[5] produce regolarmente valori elevati nel puro rumore. Usa finestre più lunghe o alza la soglia quando N è piccolo.
  • Ritardo ai punti di svolta. R2 resta elevato per diverse barre dopo la fine di una tendenza perché la finestra contiene ancora la vecchia tendenza. Aspettati che i segnali di regime arrivino in ritardo per costruzione.
  • Output limitato, aspettative illimitate. Il valore non esce mai dall'intervallo da 0 a 1. Condizioni come R2[20](close) > 5 non possono mai essere vere e disattivano silenziosamente la logica che dipende da esse.
  • LinearRegression, valore della linea di regressione stimata stessa.
  • LinearRegressionSlope, pendenza della linea di regressione, fornisce la direzione.
  • STD, deviazione standard, la misura di dispersione dietro SStot.
  • STE, errore standard della stima di regressione.
  • TimeSeriesAverage, media mobile costruita dai punti finali della regressione.
  • EndPointAverage, smoothing correlato basato sul punto finale.
  • ADX, misuratore alternativo della forza di tendenza basato sul movimento direzionale.
  • Average, media mobile semplice, spesso abbinata come filtro di tendenza di riferimento.