Únete hoy
Indicadores/probuilder · probacktest · proorder · proscreener

LinearRegressionSlope

LinearRegressionSlope en ProBuilder devuelve la pendiente de una línea de regresión por mínimos cuadrados sobre N bars, midiendo la dirección y la fuerza de la tendencia. Ejemplos.

Sintaxis

probuilder
LinearRegressionSlope[N](price)

Parámetros

NombreTipoPor defectoDescripción
NenteroobligatorioNúmero de bars en la ventana de regresión. Los valores pequeños reaccionan rápido pero cambian de signo con frecuencia; los valores mayores describen la tendencia sostenida.
pricefuente de preciocloseSerie a la que se ajusta la línea. Normalmente close; open, high, low, o una variable personalizada también funcionan.

Fórmula

código
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

donde x es el índice del bar dentro de la ventana y y el precio. El resultado se expresa en unidades de precio por bar.

Cómo funciona

Mientras LinearRegression devuelve el nivel de la línea ajustada, LinearRegressionSlope devuelve su dirección. En cada bar, la función reajusta la línea sobre las últimas N precios y devuelve el coeficiente b: cuánto sube o baja la recta ajustada por bar. Una lectura de 0.5 en un gráfico diario significa que la tendencia de la regresión asciende medio punto al día.

Como el ajuste considera todos los puntos de la ventana y no solo el primero y el último, la pendiente es menos sensible a un único bar ruidoso que una simple N-bar de diferencia de precio. En la práctica es una tasa de cambio suavizada, por lo que sirve también como medida de momentum.

La línea cero es el pivote natural. Los cruces de negativo a positivo señalan una posible transición a tendencia alcista; los cruces en sentido contrario, una posible tendencia bajista. Emparejar la pendiente con R2 filtra estas señales, ya que una pendiente pronunciada sobre datos con mal ajuste es menos fiable que una pendiente moderada sobre una tendencia limpia.

Ejemplos

Ejemplo 1, Señales de cruce de cero de la pendiente (Indicador)

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

Marca el bar donde la pendiente de 10 bars se vuelve positiva con un valor de 1 y el bar donde se vuelve negativa con -1, un detector compacto de cambio de tendencia.

Ejemplo 2, Escaneo de tendencia filtrado por calidad (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")

Devuelve los instrumentos con una pendiente de 20 bars positiva cuyo R cuadrado supera 0.8, conservando solo las tendencias que son al mismo tiempo ascendentes y bien definidas.

Ejemplo 3, La pendiente como filtro de entrada (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

Exige que la pendiente de regresión de medio plazo sea positiva antes de aceptar un breakout de 20 bars, y cierra la posición cuando la pendiente gira a la baja.

Interpretación

El signo da la dirección: pendiente positiva, tendencia alcista; pendiente negativa, tendencia bajista. La magnitud da la inclinación, pero en unidades absolutas de precio, por lo que debe juzgarse frente a la propia escala del instrumento. Una pendiente de 2 es pronunciada en un instrumento que cotiza a 50 y despreciable en uno que cotiza a 5000.

El comportamiento de la pendiente también describe la madurez de la tendencia. Una pendiente creciente significa que la tendencia se está acelerando, una pendiente decreciente pero aún positiva significa una tendencia alcista que pierde momentum, un patrón que a menudo precede al giro real del precio.

Errores y trampas habituales

  • No comparable entre instrumentos. La pendiente bruta depende de la escala de precios. Para screeners que cubren muchos instrumentos, normalízala, por ejemplo 100 * LinearRegressionSlope[20](close) / close, para obtener el porcentaje por bar.
  • Whipsaws alrededor de cero. En mercados laterales la pendiente se mantiene cerca de cero y cambia de signo con frecuencia. La lógica de cruce del cero sin un umbral de magnitud o un R2 filtro genera un flujo de señales falsas.
  • Tipo de corchete incorrecto. LinearRegressionSlope(10, close) no compila. Periodo entre corchetes, fuente de precio entre paréntesis.
  • Pronunciada no significa fiable. Una pendiente grande sobre datos dispersos refleja unos pocos valores atípicos, no una tendencia. Comprueba la calidad del ajuste con R2 antes de actuar sobre el valor.
  • LinearRegression, el nivel de la misma línea ajustada.
  • R2, calidad del ajuste de la regresión, el filtro complementario natural.
  • ROC, tasa de cambio, una medida de momentum más simple.
  • Momentum, diferencia de precio bruta sobre N barras.
  • Average, media móvil cuya pendiente cumple una función similar.
  • ADX, fuerza de la tendencia sin dirección, un filtro alternativo.
  • STE, error típico de la estimación de la regresión.
  • TimeSeriesAverage, suavizado del precio basado en regresión.