R2
R2 en ProBuilder devuelve el coeficiente R-cuadrado de una regresión lineal sobre N bars, una medida de la fuerza de la tendencia de 0 a 1. Sintaxis, fórmula, ejemplos resueltos.
Sintaxis
R2[N](price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
N | entero | ninguno | Número de bars en la ventana de regresión. Los valores habituales son de 14 a 30. Las ventanas cortas reaccionan más rápido pero señalan muchas tendencias falsas. |
price | fuente de precio | close | La serie a la que se ajusta la regresión. Normalmente close, también acepta open, high, low, o una variable personalizada. |
Fórmula
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 es el coeficiente de determinación de la recta de mínimos cuadrados ajustada a las últimas N valores de price. Es igual a la correlación al cuadrado entre precio y tiempo en la ventana, por lo que está acotado entre 0 y 1.
Cómo funciona
En cada bar, ProBuilder ajusta una línea recta a las últimas N puntos de precio y mide qué parte de la variación del precio explica esa recta. Si los puntos quedan casi exactamente sobre la recta, los residuos son mínimos y R2 se acerca a 1. Si el precio vaga aleatoriamente en torno a su media, la recta explica poco y R2 se acerca a 0.
R2 es ciego a la dirección. Una tendencia alcista perfecta y una tendencia bajista perfecta devuelven ambas valores cercanos a 1, por lo que R2 indica cuán tendencial es el mercado, no en qué dirección lo hace. Para la dirección, combínalo con LinearRegressionSlope o comparar consecutivos LinearRegression valores, como en el primer ejemplo.
Una regla general habitual considera las lecturas por encima de aproximadamente 0.4 a 0.6, según N, como tendencias estadísticamente significativas y las lecturas inferiores como ruido. Como el R2 se calcula sobre una ventana móvil, cae rápidamente cuando una tendencia limpia entra en consolidación, lo que lo hace útil como filtro de régimen que activa y desactiva la lógica seguidora de tendencia.
Ejemplos
Ejemplo 1, Fuerza de la tendencia con detección de dirección (Indicador)
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, bearishEl R2 aporta la prueba de fuerza y el cambio en la línea de regresión aporta la dirección. Ambas salidas se mantienen en 0 cuando el ajuste es demasiado débil para fiarse de él, filtrando los periodos laterales.
Ejemplo 2, Filtro de régimen para un sistema seguidor de tendencia (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
ENDIFLas entradas requieren tanto un ajuste fuerte como una pendiente positiva. La salida se activa solo por la calidad de la tendencia, cerrando la posición en cuanto el precio deja de comportarse de forma lineal, independientemente de la dirección.
Ejemplo 3, Buscar las tendencias alcistas más ordenadas (ProScreener)
fit = R2[20](close)
slope = LinearRegressionSlope[20](close)
SCREENER[fit > 0.7 AND slope > 0](fit AS "R-Squared")Lista los instrumentos cuyos últimos 20 cierres se ajustan a una línea recta ascendente con un R-cuadrado superior a 0.7, ordenados por la columna del ajuste.
Interpretación
| Rango de R2 | Lectura |
|---|---|
| 0.7 a 1.0 | Tendencia lineal fuerte. El precio sigue de cerca su línea de regresión. |
| 0.4 a 0.7 | Tendencia moderada. Existe sesgo direccional pero con un ruido significativo. |
| 0.0 a 0.4 | Tendencia débil o inexistente. Predomina el comportamiento de mean reversion. |
Los umbrales exactos dependen de N. Las ventanas más cortas producen valores de R2 más altos por azar, así que una lectura de 0.7 sobre 10 bars es mucho menos significativa que 0.7 sobre 50 bars. El R2 se lee mejor como medidor de régimen: si cruza un umbral al alza sugiere que la lógica de tendencia debería estar activa; si lo cruza a la baja, sugiere lógica de rango.
Errores y trampas habituales
- Sin información de dirección. Un R2 cercano a 1 se da tanto en tendencias alcistas fuertes como en tendencias bajistas fuertes. Operar long basándose solo en un R2 alto compra en pleno desplome. Combínalo siempre con una comparación de pendiente o de precio.
- Las ventanas cortas inflan la lectura. Unos pocos puntos se ajustan razonablemente bien a una línea, por lo que
R2[5]muestra con regularidad valores altos en puro ruido. Usa ventanas más largas o eleva el umbral cuandoNes pequeño. - Retardo en los puntos de giro. El R2 se mantiene elevado durante varias bars después de que termine una tendencia porque la ventana todavía contiene la tendencia antigua. Espera que las señales de régimen lleguen tarde por diseño.
- Salida acotada, expectativas sin acotar. El valor nunca sale del rango de 0 a 1. Condiciones como
R2[20](close) > 5nunca pueden ser ciertas y desactivan en silencio la lógica que depende de ellas.
Instrucciones relacionadas
LinearRegression, valor de la propia línea de regresión ajustada.LinearRegressionSlope, pendiente de la línea de regresión, aporta la dirección.STD, desviación típica, la medida de dispersión que hay detrás de SStot.STE, error típico de la estimación de la regresión.TimeSeriesAverage, media móvil construida a partir de los extremos de la regresión.EndPointAverage, suavizado relacionado basado en los extremos.ADX, medidor alternativo de la fuerza de la tendencia basado en el movimiento direccional.Average, media móvil simple, a menudo combinada como filtro de tendencia de referencia.