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

Repulse

Repulse en ProBuilder mide la presión alcista o bajista ejercida sobre cada vela a lo largo de n bars, oscilando alrededor de cero. Sintaxis, fórmula, ejemplos.

Sintaxis

probuilder
Repulse[n](price)

Parámetros

NombreTipoPor defectoDescripción
nenteroningunoNúmero de bars analizadas. Los valores pequeños como 1 a 5 leen la presión de velas individuales, los valores mayores como 15 o más describen la onda más amplia.
pricefuente de preciocloseLa serie de precios utilizada en el cálculo. Normalmente close, también acepta open, high, o low.

Fórmula

La definición citada habitualmente compara una fuerza al alza con una fuerza a la baja, cada una expresada como porcentaje del cierre y suavizada exponencialmente:

código
up   = 100 * (3 * close - 2 * lowest low over n - open) / close
down = 100 * (open + 2 * highest high over n - 3 * close) / close
Repulse = ExponentialAverage[5n](up) - ExponentialAverage[5n](down)

La fuerza al alza crece cuando el cierre se sitúa muy por encima de los mínimos recientes, la fuerza a la baja crece cuando el cierre se sitúa muy por debajo de los máximos recientes. Su diferencia suavizada oscila alrededor de cero.

Cómo funciona

Repulse intenta responder numéricamente a una pregunta de velas: en los últimos n bars, quién empujó más fuerte, los compradores o los vendedores. Una vela que abre bajo y cierra cerca de la parte alta de su rango reciente muestra a los compradores absorbiendo oferta, lo que eleva el componente alcista. El caso contrario eleva el componente bajista. Compensar ambos produce una única línea cuyo signo resume qué lado va ganando.

El indicador se comporta como otros osciladores centrados en cero. El signo da el sesgo, la pendiente da el cambio de presión, y las divergencias contra el precio avisan de que al movimiento actual le quedan pocos participantes. Como el periodo de suavizado escala con n (cinco veces la ventana de análisis), mayores n valores producen líneas notablemente más lentas y suaves.

Una técnica habitual ejecuta varias instancias a la vez, por ejemplo Repulse[1], Repulse[5] y Repulse[15], para leer ondas de presión cortas, intermedias y más largas en el mismo gráfico. La alineación de las tres al mismo lado del cero se considera una lectura de mayor convicción que cualquier línea aislada.

Ejemplos

Ejemplo 1, Marcas de presión alcista y bajista (Indicador)

probuilder
i1 = Repulse[10](close)
IF i1 > 0 THEN
  bullish = 1
  bearish = 0
ELSIF i1 < 0 THEN
  bullish = 0
  bearish = 1
ENDIF
RETURN bullish coloured(127,255,0), bearish coloured(255,64,64)

Convierte el Repulse de 10 barras en dos indicadores binarios, dibujados en verde para la presión alcista y en rojo para la bajista. Ten en cuenta que cuando i1 es exactamente cero, ambos flags conservan sus valores anteriores porque las variables persisten entre bars.

Ejemplo 2, Entrada por cruce de cero con filtro de tendencia (ProOrder)

probuilder
DEFPARAM CumulateOrders = false

pressure = Repulse[5](close)
trend    = Average[100](close)

// Buy when pressure turns positive in an established uptrend
IF NOT LongOnMarket AND close > trend AND pressure CROSSES OVER 0 THEN
  BUY 1 CONTRACT AT MARKET
ENDIF

// Exit when pressure flips negative
IF LongOnMarket AND pressure CROSSES UNDER 0 THEN
  SELL AT MARKET
ENDIF

La media de 100 bars mantiene las entradas del lado de la tendencia, y el cruce de cero de Repulse ajusta la entrada al momento en que la presión compradora retoma el control.

Ejemplo 3, Alineación de presión multiperiodo (ProScreener)

probuilder
shortP = Repulse[1](close)
midP   = Repulse[5](close)
longP  = Repulse[15](close)
aligned = shortP > 0 AND midP > 0 AND longP > 0
SCREENER[aligned](midP AS "Repulse 5")

Devuelve instrumentos donde las lecturas de Repulse de 1, 5 y 15 bars son todas positivas, la condición de alineación que se usa a menudo como confirmación alcista.

Interpretación

LecturaSignificado
Repulse > 0Presión alcista neta en la ventana.
Repulse < 0Presión bajista neta en la ventana.
Cruzando 0 al alzaLos compradores toman el control, cambio de momentum al alza.
Cruzando 0 a la bajaLos vendedores toman el control, cambio de momentum a la baja.
Divergencia frente al precioNuevo extremo de precio sin un nuevo extremo del oscilador, la presión detrás del movimiento se está debilitando.

Las lecturas de Repulse son relativas, no acotadas, por lo que los valores extremos difieren según el instrumento y según n. Normalmente se lee por su signo, su pendiente y sus divergencias más que por su nivel absoluto, y se confirma con el volumen o con el contexto de soportes y resistencias.

Errores y trampas habituales

  • El suavizado escala con el periodo. El suavizado exponencial interno usa un múltiplo de n, así que duplicar n más que duplica el retardo. Un Repulse[15] la línea reacciona mucho más tarde de lo que sugiere la intuición basada en un lookback de 15 bars.
  • Sin límites fijos. A diferencia del RSI o del Stochastic no hay niveles universales de sobrecompra o sobreventa. Umbrales como > 20 debe calibrarse por instrumento y marco temporal.
  • Whipsaw en el cruce de cero con n pequeño. Repulse[1] cambia de signo con frecuencia en mercados tranquilos. Operar los cruces del cero en bruto sin un filtro de tendencia genera una serie continua de operaciones perdedoras.
  • Caso de igualdad no contemplado. En una lógica de ramas como el Ejemplo 1, un valor exactamente cero no coincide ni con > 0 ni < 0, por lo que las variables de tipo flag conservan silenciosamente el valor del bar anterior. Añade un ELSE rama cuando se requiere un estado definido en cada bar.
  • RepulseMM, variante de media móvil que toma los parámetros de corto plazo, largo plazo y suavizado.
  • SmoothedRepulse, versión previamente suavizada del mismo concepto.
  • RSI, oscilador de momentum acotado con escala fija de 0 a 100.
  • Stochastic, oscilador acotado que sitúa el close dentro de su rango reciente.
  • CCI, oscilador de desviación respecto a la media con una lectura centrada en cero comparable.
  • Momentum, diferencia bruta de precio en N bars.
  • ROC, tasa de variación porcentual del precio.
  • ExponentialAverage, el método de suavizado utilizado dentro de Repulse.