Noon Barbari
Registrarse
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`.
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.
vwapperiod (20, ventana rolling)valueReferencia de valor justo. `close > vwap` = precio por encima del promedio.
volume_maperiod (20)valueConfirmación de breakout. `volume > volume_ma * 1.5`.
trendperiod (50), slope_lookback (5)value (-1 / 0 / +1)Filtro de tendencia categórico. `trend == 1` para alza, `== -1` para baja.
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.
s_trend_validlookback (1)value (-1 / 0 / +1)Como s_trend, pero cada breakout debe confirmarse por el cierre de la siguiente vela.
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.
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.

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 (14), atr_factor (1.6), fib_lookback (8)
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

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:
cci_period (20), atr_period (5), atr_mult (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

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), v_coef (2.5), signal (5)
Campos:
vfi, signal, hist

YAML

leaf:
  lhs: { indicator: vfi, length: 130, field: hist }
  op: crosses_above
  rhs: { value: 0 }
  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_lookback (5)
Campos:
state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_low

YAML

leaf:
  lhs: { indicator: market_structure, swing_lookback: 5, field: bos_signal }
  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.0), expire_bars (0 = nunca)
Campos:
bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filled

YAML

leaf:
  lhs: { indicator: fair_value_gap, min_gap_pct: 0.1, field: bull_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_lookback (5), retest_tolerance_pct (0.1)
Campos:
bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_retest, bear_retest, bull_mitigated, bear_mitigated

YAML

leaf:
  lhs: { indicator: order_block, swing_lookback: 5, field: bull_retest }
  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:
lookback (10), tolerance_pct (0.05)
Campos:
eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_swept

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:
(ninguno)
Campos:
pdh, pdl, pdo, pdc, pwh, pwl, pwo, pwc, pmh, pml, pmo, pmc

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:
trailing_lookback (50)
Campos:
trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_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.