Noon Barbari
Explorar la documentación

Indicadores

Cada indicador que conoce el motor de reglas, con sus parámetros y campos de salida.

Un indicador se referencia dentro de un leaf como `{indicator: <kind>, ...params}`. Cada tipo expone uno o más campos de salida direccionables con `field: <name>` (omite `field` para el primero). El multi-timeframe se soporta con `timeframe: '4h'` en cualquier indicador.

TipoParámetrosCampos de salidaUso típico
emaperiod (>=1)valueFiltro de tendencia. `ema20 > ema50` para sesgo alcista.
smaperiod (>=1)valueComo EMA pero sin memoria de suavizado.
rsiperiod (por defecto 14, >=2)value (0–100)Reversión a la media. `rsi < 30` largo, `rsi > 70` corto.
macdfast (12), slow (26), signal (9); fast < slowline, signal, histMomentum. `hist crosses_above 0` como entrada.
bollingerperiod (20), std_mult (2.0)mid, upper, lowerEnvoltura de volatilidad. `close < lower` para entradas de rebote.
atrperiod (14, >=2)valueSizing de distancia al stop. `stop = entry - atr14 * 2`.
atr_smaatr_period (default 14), sma_period (default 14)value (smoothed ATR), atr (raw)Base de volatilidad más estable. `atr14 > atr_sma` = volatilidad creciente.
stochasticperiod (14), smooth_d (3)k, d (ambos 0–100)Cruce de las líneas 20 / 80 para reversión a la media.
adxperiod (14)adx, plus_di, minus_di`adx > 25` = en tendencia. Combina con `plus_di > minus_di` para sesgo alcista.
vwapanchor (session/day/week/month/rolling), period (20, solo rolling)valueReferencia de valor justo. `close > vwap` = precio por encima del promedio.
volume_maperiod (20)valueConfirmación de breakout. `volume > volume_ma * 1.5`.
donchianperiod (default 20, >=2)upper, lower, midCanal de ruptura. `close > upper` para entradas de ruptura; `mid` como referencia de tendencia.
swinglookback (1)last_high, last_low, prev_high, prev_lowEntradas por breakout (`close > last_high`) y filtros HH / HL.
s_trendlookback (1)value (-1 / 0 / +1)Régimen de tendencia estilo SMC (BOS / CHoCH) — cambia tras dos breakouts de swing del mismo lado.
blackflag_ftsatr_period (14), atr_factor (1.6), fib_lookback (8)trail, extreme, state, fib1, fib2, fib3Variante de SuperTrend con el TR modificado de Black Flag y una escalera de pullbacks Fib 38,2 / 50 / 61,8.
super_trendatr_period (10), factor (3.0)trail, stateSuperTrend estándar sobre `hl2`. `state == 1` régimen alcista, `state == -1` régimen bajista.
trend_magiccci_period (20), atr_period (5), atr_mult (1.0)trail, state, cciTrinquete ATR filtrado por CCI. El stop avanza en la dirección de la tendencia mientras el CCI concuerda con el régimen.
ema_pullbackema_fast (100), ema_slow (200), ema_regime (500), atr_period (14), …long_signal, short_signal, ema_fast, ema_slow, ema_regime, atr, wait_long, wait_shortModelo compuesto de entrada largo/corto. `long_signal == 1` para entrar en un retroceso confirmado.
vfilength (130), coef (0.2), v_coef (2.5), signal (5)vfi, signal, histVolume Flow Indicator. Oscilador — `vfi > 0` acumulación, `< 0` distribución, `hist` para señales de cruce.
market_structureswing_lookback (5)state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_lowEstructura de mercado SMC sobre pivotes de swing. `state` = régimen actual, `bos_signal` / `choch_signal` se disparan durante una barra.
fair_value_gapmin_gap_pct (0.0), expire_bars (0 = nunca)bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filledImbalance de 3 barras con seguimiento de relleno. Usa `bull_signal` para entrar en la formación del FVG y `bull_filled` para rastrear su mitigación.
order_blockswing_lookback (5), retest_tolerance_pct (0.1)bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_retest, bear_retest, bull_mitigated, bear_mitigatedÚltima vela opuesta antes de un BOS. `bull_retest` se dispara cuando el precio vuelve a la zona.
equal_highs_lowslookback (10), tolerance_pct (0.05)eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_sweptDetección de pools de liquidez. `eqh_swept` confirma una caza de stops por encima de los máximos iguales — disparador habitual de reversión.
prior_period_levels(sin parámetros — se calcula a partir del timestamp de la barra)pdh, pdl, pdo, pdc, pwh, pwl, pwo, pwc, pmh, pml, pmo, pmcMáximos / mínimos / aperturas / cierres del día, semana y mes previos. `close > pdh` para filtros de momentum de ruptura del máximo del día anterior.
premium_discount_zonestrailing_lookback (50)trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_top, discount_bottom, current_zoneClasificación del rango trailing por zonas Fib. `current_zone == 'discount'` para sesgo largo SMC.

Nuevo catálogo de indicadores

Los diez indicadores añadidos en las olas de port desde Pine y SMC implementadas desde cero. Cada tarjeta incluye descripción, parámetros con valores por defecto, campos de salida y un snippet YAML listo para copiar y pegar.

Exponential Moving Average (EMA)

ema

Media móvil exponencial — una línea de tendencia que pondera más los precios recientes, por lo que gira antes que una SMA. Su pendiente marca la dirección; una EMA rápida sobre una lenta indica sesgo alcista.

Parámetros:
period (20)
Campos:
value

YAML

leaf:
  lhs: { price: close }
  op: gt
  rhs: { indicator: ema, period: 50, field: value }
  dir: long

Simple Moving Average (SMA)

sma

Media móvil simple — el promedio de cierres sobre N velas, una línea de tendencia suave. Precio por encima de la SMA indica sesgo alcista; los cruces de dos SMA señalan cambios de tendencia.

Parámetros:
period (20)
Campos:
value

YAML

leaf:
  lhs: { price: close }
  op: gt
  rhs: { indicator: sma, period: 200, field: value }
  dir: long

Relative Strength Index (RSI)

rsi

Índice de fuerza relativa — un oscilador de momentum de 0 a 100. Lecturas clásicas: bajo 30 sobreventa (buscar largos), sobre 70 sobrecompra (buscar cortos), y 50 como pivote de tendencia.

Parámetros:
period (14)
Campos:
value

YAML

leaf:
  lhs: { indicator: rsi, period: 14, field: value }
  op: lt
  rhs: { value: 30 }
  dir: long

MACD

macd

Convergencia/divergencia de medias móviles — momentum a partir de la diferencia entre una EMA rápida y una lenta. El histograma cruzando cero, o la línea MACD cruzando su señal, marcan cambios de momentum.

Parámetros:
fast (12), slow (26), signal (9)
Campos:
line, signal, hist, fast_ema, slow_ema

YAML

leaf:
  lhs: { indicator: macd, field: hist }
  op: crosses_above
  rhs: { value: 0 }
  dir: long

Bollinger Bands

bollinger

Una media móvil envuelta en bandas de volatilidad (± N desviaciones estándar). El precio tocando la banda inferior puede señalar un estiramiento listo para rebotar; el ancho de banda muestra la volatilidad.

Parámetros:
period (20), std_mult (2.0)
Campos:
mid, upper, lower

YAML

leaf:
  lhs: { price: close }
  op: lt
  rhs: { indicator: bollinger, period: 20, field: lower }
  dir: long

Stochastic Oscillator

stochastic

Oscilador estocástico — dónde se sitúa el cierre dentro del rango máximo–mínimo reciente, como %K y %D suavizado (0–100). Bajo 20 sobreventa, sobre 80 sobrecompra; %K cruzando %D temporiza las entradas.

Parámetros:
period (14), smooth_d (3)
Campos:
k, d

YAML

leaf:
  lhs: { indicator: stochastic, field: k }
  op: crosses_above
  rhs: { indicator: stochastic, field: d }
  dir: long

Average Directional Index (ADX)

adx

Average Directional Index — mide la fuerza de la tendencia (no la dirección) de 0 a 100, con +DI/−DI para la dirección. Sobre ~25 señala una tendencia real; +DI sobre −DI para sesgo alcista.

Parámetros:
period (14)
Campos:
adx, plus_di, minus_di

YAML

leaf:
  lhs: { indicator: adx, period: 14, field: adx }
  op: gt
  rhs: { value: 25 }
  dir: long

Average True Range (ATR)

atr

Average True Range — el tamaño medio del rango de una vela, es decir, cuánto se mueve normalmente el precio. Se usa sobre todo para dimensionar stops y objetivos según la volatilidad (p. ej. stop = entrada − 2×ATR).

Parámetros:
period (14)
Campos:
value

YAML

# ATR is typically used for stop sizing, e.g.
risk:
  stop: { anchor: atr, indicator: atr14, mult: 2.0 }

ATR (smoothed)

atr_sma

Un ATR suavizado — la media móvil simple del ATR — que da una base de volatilidad más estable. Compara el ATR bruto con ella para distinguir la volatilidad creciente de la decreciente.

Parámetros:
atr_period (14), sma_period (14)
Campos:
value, atr

YAML

leaf:
  lhs: { indicator: atr, period: 14, field: value }
  op: gt
  rhs: { indicator: atr_sma, atr_period: 14, sma_period: 14, field: value }
  dir: long

Volume-Weighted Average Price (VWAP)

vwap

Precio medio ponderado por volumen — el precio medio pagado, ponderado por volumen y anclado a una sesión, día, semana o mes. Por encima del VWAP mandan los compradores; una referencia de valor justo e imán de reversión a la media.

Parámetros:
anchor (session), period (20)
Campos:
value

YAML

leaf:
  lhs: { price: close }
  op: gt
  rhs: { indicator: vwap, anchor: session, field: value }
  dir: long

Volume Moving Average

volume_ma

Una media móvil del volumen — tu base de participación 'normal'. Volumen muy por encima de su media (p. ej. 1,5×) confirma la convicción tras una ruptura.

Parámetros:
period (20)
Campos:
value

YAML

leaf:
  lhs: { price: volume }
  op: gt
  rhs: { indicator: volume_ma, period: 20, field: value }
  dir: long

Donchian Channel

donchian

Canal de Donchian — el máximo más alto y el mínimo más bajo de las últimas N velas. Un cierre sobre la banda superior es una entrada de ruptura clásica; la línea media sirve de referencia de tendencia.

Parámetros:
period (20)
Campos:
upper, lower, mid

YAML

leaf:
  lhs: { price: close }
  op: gt
  rhs: { indicator: donchian, period: 20, field: upper }
  dir: long

Volume Flow Indicator

vfi

El Volume Flow Indicator de Markos Katsanos — un oscilador suavizado y ponderado por volumen que cambia de signo al cruzar la línea cero conforme la acumulación se convierte en distribución. Combina el histograma con un filtro de tendencia para entradas confirmadas.

Parámetros:
length (130), coef (0.2), vcoef (2.5), signal_length (5), smooth_vfi (false)
Campos:
vfi, signal, hist

YAML

leaf:
  lhs: { indicator: vfi, length: 130, field: hist }
  op: crosses_above
  rhs: { value: 0 }
  dir: long

Swing High / Low

swing

Pivotes de swing recientes — el último máximo y mínimo confirmados más el par anterior. Piezas para entradas de ruptura (cierre sobre el último máximo) y filtros de tendencia higher-high / higher-low.

Parámetros:
lookback (1)
Campos:
last_high, last_low, prev_high, prev_low

YAML

leaf:
  lhs: { price: close }
  op: gt
  rhs: { indicator: swing, lookback: 5, field: last_high }
  dir: long

Structural Trend

s_trend

Estado de tendencia estructural (+1 alza, −1 baja, 0 neutro) derivado de rupturas de swing confirmadas — solo cambia tras dos rupturas del mismo lado, filtrando ruido. Un filtro de régimen ligero.

Parámetros:
lookback (2)
Campos:
value

YAML

leaf:
  lhs: { indicator: s_trend, lookback: 2, field: value }
  op: eq
  rhs: { value: 1 }
  dir: long

SuperTrend

super_trend

El SuperTrend de manual — trailing stop ATR sobre hl2. `state` cambia entre +1 y -1 únicamente con un cierre más allá de la banda opuesta.

Parámetros:
atr_period (10), factor (3.0)
Campos:
trail, state

YAML

leaf:
  lhs: { indicator: super_trend, atr_period: 10, factor: 3.0, field: state }
  op: eq
  rhs: { value: 1 }
  dir: long

Trend Magic

trend_magic

Trailing stop ATR con trinquete filtrado por CCI. El trail solo avanza hacia el precio cuando el CCI concuerda con la dirección dominante — más silencioso que SuperTrend en lateral.

Parámetros:
period (20), atr_period (5), coeff (1.0)
Campos:
trail, state, cci

YAML

leaf:
  lhs: { bar: close }
  op: gt
  rhs: { indicator: trend_magic, atr_period: 5, atr_mult: 1.0, field: trail }
  dir: long

Black Flag Futures Trading System

blackflag_fts

Variante de SuperTrend de Black Flag. Usa un True Range modificado y añade una escalera de pullbacks Fibonacci de tres pasos (38,2 / 50 / 61,8) para tomas parciales o reentradas escalonadas dentro de una tendencia en curso.

Parámetros:
atr_period (28), atr_factor (5.0), trail_type (modified), fib1 (0.618), fib2 (0.786), fib3 (0.886)
Campos:
trail, extreme, state, fib1, fib2, fib3

YAML

leaf:
  lhs: { indicator: blackflag_fts, atr_period: 14, atr_factor: 1.6, field: state }
  op: eq
  rhs: { value: 1 }
  dir: long

EMA Pullback

ema_pullback

Un modelo de entrada completo en largo y corto: tres EMA fijan la tendencia y el régimen, luego espera un retroceso (dentro de tolerancia) y un disparador filtrado por ATR antes de emitir long_signal / short_signal.

Parámetros:
ema_fast (100), ema_slow (200), ema_regime (500), atr_period (14), atr_sma (50), atr_mult_long (1.0), atr_mult_short (1.5), pullback_tol_pct (0.1), max_wait_bars (50)
Campos:
long_signal, short_signal, ema_fast, ema_slow, ema_regime, atr, wait_long, wait_short

YAML

leaf:
  lhs: { indicator: ema_pullback, field: long_signal }
  op: eq
  rhs: { value: 1 }
  dir: long

Estructura de mercado (BOS / CHoCH)

market_structure

Detecta pivotes y emite un Break of Structure o Change of Character con cada ruptura de pivote. El campo `state` indica el régimen actual, por lo que puedes usarlo como filtro de tendencia con estado.

Parámetros:
swing_length (50)
Campos:
state, bos_signal, choch_signal, pivot_high, pivot_low

YAML

leaf:
  lhs: { indicator: market_structure, swing_lookback: 5, field: bos_signal }
  op: eq
  rhs: { value: 1 }
  dir: long

Order block

order_block

Última vela de color opuesto antes de un Break of Structure. El bloque queda armado hasta que el precio lo retestea (`bull_retest`) o lo barre (`bull_mitigated`).

Parámetros:
swing_length (10)
Campos:
bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal

YAML

leaf:
  lhs: { indicator: order_block, swing_lookback: 5, field: bull_retest }
  op: eq
  rhs: { value: 1 }
  dir: long

Fair Value Gap (FVG)

fair_value_gap

Imbalance de 3 barras: un hueco entre la mecha de bar[n-2] y la mecha de bar[n]. Hace seguimiento de la zona hasta que el precio la rellena; `bull_signal` se dispara en la formación y `bull_filled` cuando el gap se cierra.

Parámetros:
min_gap_pct (0)
Campos:
bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal

YAML

leaf:
  lhs: { indicator: fair_value_gap, min_gap_pct: 0.1, field: bull_signal }
  op: eq
  rhs: { value: 1 }
  dir: long

Máximos / mínimos iguales

equal_highs_lows

Detector de pools de liquidez. Marca un nivel cuando máximos (o mínimos) consecutivos están dentro de `tolerance_pct` entre sí. `eqh_swept` se dispara en la barra en la que se rompe el nivel — disparador habitual de reversión por caza de stops.

Parámetros:
swing_length (3), threshold (0.1), atr_period (200)
Campos:
eqh_level, eql_level, eqh_signal, eql_signal

YAML

leaf:
  lhs: { indicator: equal_highs_lows, lookback: 10, field: eqh_swept }
  op: eq
  rhs: { value: 1 }
  dir: short

Niveles de periodos previos (PDH / PDL / PWH / PWL …)

prior_period_levels

Apertura / máximo / mínimo / cierre del día, la semana y el mes previos. Se calcula a partir del timestamp de la barra — sin parámetros. Útil para operativa de ruptura de niveles de periodos previos y reversión a la media hacia el cierre previo.

Parámetros:
none
Campos:
pdh, pdl, pwh, pwl, pmh, pml

YAML

leaf:
  lhs: { bar: close }
  op: gt
  rhs: { indicator: prior_period_levels, field: pdh }
  dir: long

Zonas de premium / discount

premium_discount_zones

Divide el rango trailing en discount (tercio inferior), equilibrio (medio) y premium (tercio superior) mediante niveles Fib. `current_zone` devuelve el nombre de la zona actual de la barra — el sesgo SMC estricto largo solo se dispara en discount.

Parámetros:
lookback (200)
Campos:
premium_top, equilibrium_top, discount_bottom, current_zone

YAML

leaf:
  lhs: { indicator: premium_discount_zones, trailing_lookback: 50, field: current_zone }
  op: eq
  rhs: { value: 'discount' }
  dir: long

Multi-timeframe

Añade `timeframe: '4h'` a cualquier spec de indicador para calcularlo en un marco temporal mayor y rebroadcastear el valor sobre las velas base de tu estrategia. El motor maneja el resampling — sigues escribiendo reglas contra las velas de tu intervalo base.

Ejemplo

leaf:
  lhs: { indicator: rsi, period: 14, timeframe: '4h' }
  op: lt
  rhs: { value: 35 }
  dir: long

Warmup y manejo de NaN

Los indicadores emiten NaN hasta que tienen suficientes velas para ser honestos. Un leaf con NaN devuelve False — no produce error, se abstiene. Por eso, las estrategias nuevas pueden quedarse paradas durante las primeras N velas de un backtest; es lo correcto.

Véase también