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

CROSSES UNDER

CROSSES UNDER en ProBuilder devuelve verdadero en el bar en el que una serie pasa de estar por encima a estar por debajo de otra, el disparador estándar de las señales de cruce bajista.

Sintaxis

probuilder
a CROSSES UNDER b

Parámetros

NombreTipoPor defectoDescripción
aserie numéricaobligatorioLa serie que se comprueba en busca de un cruce a la baja.
bserie numérica o constanteobligatorioLa serie o el nivel fijo que a debe cruzar hacia abajo.

Fórmula

a CROSSES UNDER b es verdadero cuando ambas condiciones se cumplen en el mismo bar:

código
a[1] >= b[1]  and  a < b

En el bar anterior a estaba en o por encima de b, y en el bar actual a es estrictamente inferior a b.

Cómo funciona

CROSSES UNDER compara dos valores en bars consecutivos y devuelve un booleano. La expresión es cierta solo en el único bar en el que la relación pasa de estar por encima a estar por debajo. En bars posteriores en los que a solo permanece por debajo de b, devuelve falso. Por tanto detecta el propio evento de cruce, a diferencia de la comparación de estado a < b, que permanece true mientras la condición se mantenga.

Cualquiera de los dos operandos puede ser una expresión numérica de cualquier tipo: la salida de un indicador, una constante de precio como close, una variable o un número simple. Cruzar niveles fijos es un patrón frecuente, por ejemplo Stochastic[14,3](close) CROSSES UNDER 80.

Como el bar actual participa en la prueba, un cruce a la baja detectado en un bar en vivo puede desaparecer si los precios se recuperan antes de que el bar cierre. Probar valores desplazados, como a[1] CROSSES UNDER b[1], restringe la comprobación a bars completados y produce señales estables un bar más tarde.

Ejemplos

Ejemplo 1, Cruce de EMA a la baja (Indicador)

probuilder
a = ExponentialAverage[20](close)
b = ExponentialAverage[50](close)
signal = 0
// Evaluate the crossing on completed bars only
IF a[1] CROSSES UNDER b[1] THEN
  signal = -1
ELSE
  signal = 0
ENDIF
RETURN signal AS "Bearish Signal"

El indicador imprime -1 en el bar siguiente a que la EMA de 20 periodos caiga por debajo de la EMA de 50 periodos, y 0 en caso contrario. Ambos operandos se desplazan un bar para que la comprobación utilice datos cerrados.

Ejemplo 2, Cerrar una posición long (ProOrder)

probuilder
fast = Average[20](close)
slow = Average[50](close)
// Enter on the upward cross, exit on the downward cross
IF fast CROSSES OVER slow AND NOT LONGONMARKET THEN
  BUY 1 CONTRACT AT MARKET
ENDIF
IF fast CROSSES UNDER slow AND LONGONMARKET THEN
  SELL AT MARKET
ENDIF

CROSSES UNDER actúa como disparador de salida: la posición long abierta con el cruce alcista se cierra en el bar en el que la media rápida vuelve a caer por debajo de la lenta.

Ejemplo 3, Estocástico saliendo de la zona de sobrecompra (ProScreener)

probuilder
myStoch = Stochastic[14, 3](close)
// Match instruments where %K has just dropped below 80
cond = myStoch CROSSES UNDER 80
SCREENER[cond] (myStoch AS "Stochastic")

El screener devuelve los instrumentos cuyo %K estocástico cruzó por debajo del nivel 80 en el bar actual, un patrón de salida por sobrecompra habitual.

Errores y trampas habituales

  • Evento de un solo bar, no un estado. La expresión es cierta solo en la bar del cruce. La lógica que necesita "sigue por debajo" debe comprobar a < b por separado, o la señal desaparecerá silenciosamente en el siguiente bar.
  • Inestabilidad del bar en curso. En una bar en formación, el cruce puede activarse y luego desactivarse antes del cierre. Usa a[1] CROSSES UNDER b[1] cuando solo deben contar los cruces confirmados.
  • Se requiere desigualdad estricta. Una serie que cae exactamente hasta el nivel de b sin bajar por debajo de ella no activa la condición, porque la comparación de la bar actual es estricta.
  • Orden de operandos invertido. a CROSSES UNDER b y b CROSSES UNDER a describen eventos opuestos. Intercambiar los operandos por accidente invierte la señal sin ninguna advertencia del compilador.
  • CROSSES OVER, el operador espejo para los cruces al alza.
  • IF, bloque condicional que suele envolver una comprobación de cruce.
  • THEN, obligatorio entre la condición y el cuerpo del bloque.
  • ExponentialAverage, serie EMA que habitualmente se combina en sistemas de cruces.
  • Average, media móvil simple, otra entrada frecuente para cruces.
  • AND, combina el cruce con condiciones de posición o de filtro.
  • NOT, niega un booleano, útil para comprobaciones de posición junto con los cruces.
  • BarsSince, cuenta los bars transcurridos desde que una condición, como un cruce, fue verdadera.