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
Repulse[n](price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
n | entero | ninguno | Nú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. |
price | fuente de precio | close | La 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:
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)
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)
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
ENDIFLa 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)
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
| Lectura | Significado |
|---|---|
| Repulse > 0 | Presión alcista neta en la ventana. |
| Repulse < 0 | Presión bajista neta en la ventana. |
| Cruzando 0 al alza | Los compradores toman el control, cambio de momentum al alza. |
| Cruzando 0 a la baja | Los vendedores toman el control, cambio de momentum a la baja. |
| Divergencia frente al precio | Nuevo 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 duplicarnmás que duplica el retardo. UnRepulse[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
> 20debe 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
> 0ni< 0, por lo que las variables de tipo flag conservan silenciosamente el valor del bar anterior. Añade unELSErama cuando se requiere un estado definido en cada bar.
Instrucciones relacionadas
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.