RocnRoll
RocnRoll en ProBuilder devuelve señales de trading discretas, 1 alcista, 2 bajista, -1 salida, construidas a partir de la tasa de variación y medias exponenciales. Sintaxis, ejemplos.
Sintaxis
RocnRoll(price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
price | fuente de precio | close | La serie de precios sobre la que se calcula la señal, normalmente close, también open, high, o low. |
Fórmula
RocnRoll es un generador de señales compuesto en lugar de un oscilador continuo. Internamente combina la tasa de variación de la serie de precios con medias móviles exponenciales para clasificar la bar actual en uno de tres estados. Los periodos exactos y la lógica de combinación están fijados por la plataforma y no se exponen como parámetros. La correspondencia de salida es:
1 = bullish signal
2 = bearish signal
-1 = exit signalCómo funciona
La mayoría de los indicadores de momentum devuelven un valor que hay que interpretar. RocnRoll, en cambio, devuelve un código de decisión, lo que lo acerca más a una línea de señal lista para usar que a una medición en bruto. En cada barra la lógica interna evalúa el momentum, mediante la tasa de cambio, frente a su contexto de media exponencial y emite uno de los tres estados.
En un gráfico el indicador se muestra convencionalmente como un histograma, barras verdes para el estado 1, barras rojas para el estado 2 y barras azules para el estado -1. En el código los estados se consumen con simples comprobaciones de igualdad, lo que mantiene corta la lógica de la estrategia, a costa de la transparencia, ya que los umbrales internos no se pueden ajustar.
Un detalle que importa al probar los estados: la señal bajista es 2, no -1 ni 0. El valor negativo está reservado para el estado de salida, así que condiciones como RocnRoll(close) < 0 coinciden solo con la señal de salida, no con bars bajistas.
Ejemplos
Ejemplo 1, Histograma de señales (Indicador)
// Compute the RocnRoll state for the closing price
myRocnRoll = RocnRoll(close)
// Display the raw state codes as a histogram
RETURN myRocnRoll STYLE(histogram) AS "RocnRoll signal"Aplica RocnRoll al precio de cierre y dibuja los códigos de estado como un histograma, barras en 1 para alcista, 2 para bajista y -1 para señales de salida.
Ejemplo 2, Sistema solo largos impulsado por códigos de estado (ProOrder)
DEFPARAM CumulateOrders = false
s = RocnRoll(close)
// Enter on the bullish state
IF NOT LongOnMarket AND s = 1 THEN
BUY 1 CONTRACT AT MARKET
ENDIF
// Close the position on the exit state or a bearish flip
IF LongOnMarket AND (s = -1 OR s = 2) THEN
SELL AT MARKET
ENDIFLos tres estados se corresponden directamente con la lógica de órdenes, el estado 1 abre el long, el estado -1 o 2 lo cierra. No hay que definir umbrales ni cruces.
Ejemplo 3, Buscando señales alcistas recientes (ProScreener)
s = RocnRoll(close)
// State is bullish now and was not bullish on the previous bar
newSignal = s = 1 AND s[1] <> 1
SCREENER[newSignal](close AS "Last price")Lista los instrumentos cuyo estado de RocnRoll cambió a alcista en la bar actual, descartando aquellos que ya llevan muchas bars en el estado 1.
Interpretación
| Valor | Señal | Visualización convencional |
|---|---|---|
| 1 | Alcista, se cumplen las condiciones de momentum al alza | Histograma verde |
| 2 | Bajista, se cumplen las condiciones de momentum a la baja | Histograma rojo |
| -1 | Salida, abandonar el mercado | Histograma azul |
El indicador da una opinión categórica, no una medida de fuerza. Dos bars alcistas consecutivas no son más fuertes que una, y no hay una magnitud que comparar entre instrumentos. Se usa normalmente como disparador dentro de un marco más amplio, con los filtros de tendencia y la gestión de riesgo aportados por separado.
Errores y trampas habituales
- Bajista es 2, no un número negativo. Probar
RocnRoll(close) < 0capta solo el estado de salida. Las bars bajistas deben comprobarse con= 2explícitamente. - Sin parámetros ajustables. La instrucción solo acepta la fuente de precio. Los periodos y los umbrales internos son fijos, por lo que la señal no se puede hacer más rápida ni más lenta. Las diferencias de comportamiento deben venir del marco temporal.
- Tratar el estado como una magnitud. Promediar o sumar los códigos, por ejemplo
Average[10](RocnRoll(close)), produce números que mezclan las etiquetas 1, 2 y -1 en una aritmética sin sentido. Compara solo con igualdad. - Lógica opaca. Como la fórmula interna no está expuesta, los resultados del backtest no pueden descomponerse en las condiciones subyacentes de ROC y de la media. Validar la señal en el instrumento y el marco temporal objetivo antes de usarla en real es esencial.
Instrucciones relacionadas
ROC, el oscilador de tasa de variación que subyace a la señal.RSI, oscilador de momentum acotado para construir señales manualmente.MACD, momentum de media exponencial con señales de cruce.ExponentialAverage, el componente de suavizado de la lógica interna.Momentum, diferencia bruta de precio de N bars.Stochastic, oscilador de posición en el rango con sus propias convenciones de señal.Supertrend, indicador de estado de tendencia, otra señal de tipo categórico.SAR, puntos de stop and reverse, un generador alternativo de entradas y salidas.