Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

LinearRegressionSlope

LinearRegressionSlope in ProBuilder restituisce la pendenza di una retta di regressione ai minimi quadrati su N bar, misurando direzione e forza del trend. Esempi.

Sintassi

probuilder
LinearRegressionSlope[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteroobbligatorioNumero di bar nella finestra di regressione. Valori piccoli reagiscono rapidamente ma cambiano segno spesso; valori più grandi descrivono il trend prolungato.
pricefonte di prezzochiusuraSerie su cui la linea viene adattata. Di solito close; open, high, low, o anche una variabile personalizzata funzionano.

Formula

codice
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

dove x è l'indice del bar all'interno della finestra e y il prezzo. Il risultato è espresso in unità di prezzo per bar.

Come funziona

Mentre LinearRegression restituisce il livello della retta adattata, LinearRegressionSlope restituisce la sua direzione. A ogni bar, la funzione ricalcola la retta sugli ultimi N prezzi e restituisce il coefficiente b: di quanto la retta interpolata sale o scende per ogni bar. Un valore di 0.5 su un grafico giornaliero significa che il trend della regressione sale di mezzo punto al giorno.

Poiché l'adattamento considera ogni punto della finestra e non solo il primo e l'ultimo, la pendenza è meno sensibile a una singola barra rumorosa di una semplice N-bar della differenza di prezzo. È in effetti un tasso di variazione smussato, ed è per questo che funge anche da misura di momentum.

La linea dello zero è il punto di riferimento naturale. Gli attraversamenti da negativo a positivo segnalano un possibile passaggio a un trend rialzista, quelli in senso opposto un possibile trend ribassista. Abbinare la pendenza a R2 filtra questi segnali, poiché una pendenza ripida su dati che si adattano male è meno affidabile di una pendenza moderata su un trend pulito.

Esempi

Esempio 1, Segnali di incrocio dello zero della pendenza (Indicatore)

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

Segna con un valore di 1 la bar in cui la pendenza a 10 bar diventa positiva e con -1 la bar in cui diventa negativa, un rilevatore compatto di cambio di trend.

Esempio 2, Scansione di trend filtrata per qualità (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")

Restituisce gli strumenti con pendenza a 20 bar positiva il cui R quadrato supera 0.8, mantenendo solo i trend che sono sia in salita sia ben definiti.

Esempio 3, Pendenza come filtro di ingresso (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

Richiede che la pendenza di regressione di medio termine sia positiva prima di accettare un breakout a 20 bar, e chiude la posizione quando la pendenza gira al ribasso.

Interpretazione

Il segno dà la direzione: pendenza positiva, trend rialzista; pendenza negativa, trend ribassista. La magnitudine dà l'inclinazione, ma in unità di prezzo assolute, quindi va giudicata rispetto alla scala propria dello strumento. Una pendenza di 2 è ripida su uno strumento che quota a 50 e trascurabile su uno che quota a 5000.

Il comportamento della pendenza descrive anche la maturità del trend. Una pendenza crescente significa che il trend sta accelerando, una pendenza calante ma ancora positiva significa un trend rialzista che perde momentum, uno schema che spesso precede l'effettiva inversione del prezzo.

Errori e insidie comuni

  • Non confrontabile tra strumenti diversi. La pendenza grezza dipende dalla scala di prezzo. Per gli screener che coprono molti strumenti, normalizzala, per esempio 100 * LinearRegressionSlope[20](close) / close, per ottenere la percentuale per bar.
  • Whipsaw attorno allo zero. Nei mercati laterali la pendenza oscilla vicino allo zero e cambia segno frequentemente. Una logica di attraversamento dello zero senza una soglia di ampiezza o un R2 filtro genera un flusso di segnali falsi.
  • Tipo di parentesi errato. LinearRegressionSlope(10, close) non compila. Periodo tra parentesi quadre, fonte di prezzo tra parentesi tonde.
  • Ripido non significa affidabile. Una pendenza elevata su dati dispersi riflette qualche outlier, non un trend. Verifica la qualità dell'adattamento con R2 prima di agire sul valore.
  • LinearRegression, il livello della stessa retta interpolata.
  • R2, qualità dell'interpolazione della regressione, il filtro complementare naturale.
  • ROC, tasso di variazione, una misura di momentum più semplice.
  • Momentum, differenza di prezzo grezza su N barre.
  • Average, media mobile la cui pendenza serve a uno scopo simile.
  • ADX, forza del trend senza direzione, un filtro alternativo.
  • STE, errore standard della stima di regressione.
  • TimeSeriesAverage, livellamento del prezzo basato sulla regressione.