Noon Barbari
Parcourir la documentation

Indicateurs

Chaque indicateur connu du moteur de règles, avec ses paramètres et champs de sortie.

Un indicateur est référencé dans un leaf comme `{indicator: <kind>, ...params}`. Chaque type expose un ou plusieurs champs de sortie adressables via `field: <name>` (omets `field` pour prendre le premier). Le multi-timeframe est supporté via `timeframe: '4h'` sur n'importe quel indicateur.

TypeParamètresChamps de sortieUsage typique
emaperiod (>=1)valueFiltre de tendance. `ema20 > ema50` pour un biais haussier.
smaperiod (>=1)valueComme EMA mais sans mémoire de lissage.
rsiperiod (par défaut 14, >=2)value (0–100)Mean reversion. `rsi < 30` long, `rsi > 70` short.
macdfast (12), slow (26), signal (9); fast < slowline, signal, histMomentum. `hist crosses_above 0` comme entrée.
bollingerperiod (20), std_mult (2.0)mid, upper, lowerEnveloppe de volatilité. `close < lower` pour des entrées de rebond.
atrperiod (14, >=2)valueSizing de la distance au stop. `stop = entry - atr14 * 2`.
atr_smaatr_period (default 14), sma_period (default 14)value (smoothed ATR), atr (raw)Base de volatilité plus stable. `atr14 > atr_sma` = volatilité croissante.
stochasticperiod (14), smooth_d (3)k, d (les deux 0–100)Croisement des lignes 20 / 80 pour mean reversion.
adxperiod (14)adx, plus_di, minus_di`adx > 25` = en tendance. À combiner avec `plus_di > minus_di` pour un biais haussier.
vwapanchor (session/day/week/month/rolling), period (20, rolling uniquement)valueRéférence de juste valeur. `close > vwap` = prix au-dessus de la moyenne.
volume_maperiod (20)valueConfirmation de breakout. `volume > volume_ma * 1.5`.
donchianperiod (default 20, >=2)upper, lower, midCanal de cassure. `close > upper` pour les entrées en cassure ; `mid` comme référence de tendance.
swinglookback (1)last_high, last_low, prev_high, prev_lowEntrées sur breakout (`close > last_high`) et filtres HH / HL.
s_trendlookback (1)value (-1 / 0 / +1)Régime de tendance style SMC (BOS / CHoCH) — bascule après deux breakouts de swing du même côté.
blackflag_ftsatr_period (14), atr_factor (1.6), fib_lookback (8)trail, extreme, state, fib1, fib2, fib3Variante du SuperTrend avec le True Range modifié de Black Flag et une échelle de pullbacks Fibonacci 38,2 / 50 / 61,8.
super_trendatr_period (10), factor (3.0)trail, stateSuperTrend standard sur `hl2`. `state == 1` régime haussier, `state == -1` régime baissier.
trend_magiccci_period (20), atr_period (5), atr_mult (1.0)trail, state, cciCliquet ATR validé par CCI. Le stop avance dans la direction de la tendance tant que le CCI confirme le régime.
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_shortModèle d'entrée composite long/short. `long_signal == 1` pour entrer sur un repli confirmé.
vfilength (130), coef (0.2), v_coef (2.5), signal (5)vfi, signal, histVolume Flow Indicator. Oscillateur — `vfi > 0` accumulation, `< 0` distribution, `hist` pour les signaux de croisement.
market_structureswing_lookback (5)state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_lowStructure de marché SMC sur les pivots de swing. `state` = régime courant, `bos_signal` / `choch_signal` se déclenchent sur une bougie.
fair_value_gapmin_gap_pct (0.0), expire_bars (0 = jamais)bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filledDéséquilibre 3 bougies avec suivi de comblement. Utilise `bull_signal` pour entrer à la formation du FVG, `bull_filled` pour suivre la mitigation.
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_mitigatedDernière bougie de sens inverse avant un BOS. `bull_retest` se déclenche quand le prix revient dans la zone.
equal_highs_lowslookback (10), tolerance_pct (0.05)eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_sweptDétection de pools de liquidité. `eqh_swept` confirme une chasse aux stops au-dessus des Equal Highs — déclencheur courant de retournement.
prior_period_levels(sans paramètre — calculé à partir du timestamp de la bougie)pdh, pdl, pdo, pdc, pwh, pwl, pwo, pwc, pmh, pml, pmo, pmcNiveaux H/L/O/C du jour, semaine et mois précédents. `close > pdh` pour des filtres de momentum sur cassure du plus-haut du jour précédent.
premium_discount_zonestrailing_lookback (50)trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_top, discount_bottom, current_zoneClassification en zones Fibonacci du range glissant. `current_zone == 'discount'` pour un biais long SMC.

Nouveau catalogue d'indicateurs

Les dix indicateurs ajoutés lors des vagues de port Pine et de SMC clean-room. Chaque carte liste description, paramètres et valeurs par défaut, champs de sortie et un snippet YAML à copier-coller.

Exponential Moving Average (EMA)

ema

Moyenne mobile exponentielle — une ligne de tendance qui pondère davantage les prix récents, donc plus réactive qu'une SMA. Sa pente donne la direction ; une EMA rapide au-dessus d'une lente indique un biais haussier.

Paramètres:
period (20)
Champs:
value

YAML

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

Simple Moving Average (SMA)

sma

Moyenne mobile simple — la moyenne des clôtures sur N bougies, une ligne de tendance lisse. Le prix au-dessus de la SMA indique un biais haussier ; les croisements de deux SMA signalent les changements de tendance.

Paramètres:
period (20)
Champs:
value

YAML

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

Relative Strength Index (RSI)

rsi

Indice de force relative — un oscillateur de momentum de 0 à 100. Lectures classiques : sous 30 survendu (chercher des longs), au-dessus de 70 suracheté (chercher des shorts), 50 comme pivot de tendance.

Paramètres:
period (14)
Champs:
value

YAML

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

MACD

macd

Convergence/divergence de moyennes mobiles — momentum lu dans l'écart entre une EMA rapide et lente. Le passage de l'histogramme à zéro, ou la ligne MACD croisant sa ligne de signal, marque les changements de momentum.

Paramètres:
fast (12), slow (26), signal (9)
Champs:
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

Une moyenne mobile encadrée par des bandes de volatilité (± N écarts-types). Le prix touchant la bande inférieure peut signaler un excès propice à un rebond ; la largeur des bandes indique la volatilité.

Paramètres:
period (20), std_mult (2.0)
Champs:
mid, upper, lower

YAML

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

Stochastic Oscillator

stochastic

Oscillateur stochastique — la position de la clôture dans la plage haut–bas récente, en %K et %D lissé (0–100). Sous 20 survendu, au-dessus de 80 suracheté ; %K croisant %D rythme les entrées.

Paramètres:
period (14), smooth_d (3)
Champs:
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 — mesure la force de la tendance (pas la direction) de 0 à 100, avec +DI/−DI pour la direction. Au-dessus de ~25 indique une vraie tendance ; +DI au-dessus de −DI pour un biais haussier.

Paramètres:
period (14)
Champs:
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 — l'amplitude moyenne d'une bougie, c.-à-d. de combien le prix bouge habituellement. Sert surtout à dimensionner stops et objectifs selon la volatilité (ex. stop = entrée − 2×ATR).

Paramètres:
period (14)
Champs:
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 lissé — la moyenne mobile simple de l'ATR — pour une base de volatilité plus stable. Comparez l'ATR brut à celle-ci pour distinguer volatilité croissante et décroissante.

Paramètres:
atr_period (14), sma_period (14)
Champs:
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

Prix moyen pondéré par le volume — le prix moyen payé, pondéré par le volume et ancré à une session, un jour, une semaine ou un mois. Au-dessus du VWAP, les acheteurs dominent ; une référence de juste valeur et un aimant de retour à la moyenne.

Paramètres:
anchor (session), period (20)
Champs:
value

YAML

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

Volume Moving Average

volume_ma

Une moyenne mobile du volume — votre référence de participation « normale ». Un volume bien au-dessus de sa moyenne (ex. 1,5×) confirme la conviction derrière une cassure.

Paramètres:
period (20)
Champs:
value

YAML

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

Donchian Channel

donchian

Canal de Donchian — le plus haut et le plus bas des N dernières bougies. Une clôture au-dessus de la bande supérieure est une entrée de cassure classique ; la ligne médiane sert de référence de tendance.

Paramètres:
period (20)
Champs:
upper, lower, mid

YAML

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

Volume Flow Indicator

vfi

Le Volume Flow Indicator de Markos Katsanos — un oscillateur lissé et pondéré par le volume qui change de signe en franchissant la ligne zéro quand l'accumulation devient distribution. Combine l'histogramme avec un filtre de tendance pour des entrées confirmées.

Paramètres:
length (130), coef (0.2), vcoef (2.5), signal_length (5), smooth_vfi (false)
Champs:
vfi, signal, hist

YAML

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

Swing High / Low

swing

Pivots de swing récents — les derniers haut et bas confirmés et la paire précédente. Briques de base pour les entrées en cassure (clôture au-dessus du dernier haut) et les filtres de tendance higher-high / higher-low.

Paramètres:
lookback (1)
Champs:
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

État de tendance structurel (+1 hausse, −1 baisse, 0 neutre) issu des cassures de swing confirmées — il ne bascule qu'après deux cassures du même côté, filtrant le bruit. Un filtre de régime léger.

Paramètres:
lookback (2)
Champs:
value

YAML

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

SuperTrend

super_trend

Le SuperTrend de manuel — trailing stop sur bandes ATR autour de hl2. `state` ne bascule entre +1 et -1 que sur une clôture au-delà de la bande opposée.

Paramètres:
atr_period (10), factor (3.0)
Champs:
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 à cliquet ATR validé par le CCI. Le trail n'avance vers le prix que lorsque le CCI confirme la direction dominante — plus calme que le SuperTrend en range.

Paramètres:
period (20), atr_period (5), coeff (1.0)
Champs:
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 du SuperTrend par Black Flag. Utilise un True Range modifié et ajoute une échelle de pullbacks Fibonacci en trois marches (38,2 / 50 / 61,8) pour des prises partielles ou des ré-entrées échelonnées dans une tendance en cours.

Paramètres:
atr_period (28), atr_factor (5.0), trail_type (modified), fib1 (0.618), fib2 (0.786), fib3 (0.886)
Champs:
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 modèle d'entrée complet long et short : trois EMA fixent la tendance et le régime, puis il attend un repli (dans la tolérance) et un déclencheur filtré par l'ATR avant d'émettre long_signal / short_signal.

Paramètres:
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)
Champs:
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

Structure de marché (BOS / CHoCH)

market_structure

Détecte les pivots et émet un Break of Structure ou un Change of Character à chaque cassure de pivot. Le champ `state` porte le régime courant, ce qui te permet de l'utiliser comme filtre de tendance avec état.

Paramètres:
swing_length (50)
Champs:
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

Dernière bougie de couleur opposée avant un Break of Structure. Le bloc reste armé jusqu'à ce que le prix le retest (`bull_retest`) ou le balaye (`bull_mitigated`).

Paramètres:
swing_length (10)
Champs:
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

Déséquilibre sur trois bougies : un écart entre la mèche de la bougie[n-2] et celle de la bougie[n]. Suit la zone jusqu'à ce que le prix la comble ; `bull_signal` se déclenche à la formation, `bull_filled` quand le gap est refermé.

Paramètres:
min_gap_pct (0)
Champs:
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

Equal highs / lows

equal_highs_lows

Détecteur de pools de liquidité. Marque un niveau quand des plus-hauts (ou plus-bas) consécutifs se situent dans une tolérance `tolerance_pct` l'un de l'autre. `eqh_swept` se déclenche la bougie où le niveau est cassé — déclencheur classique de retournement sur chasse aux stops.

Paramètres:
swing_length (3), threshold (0.1), atr_period (200)
Champs:
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

Niveaux de période précédente (PDH / PDL / PWH / PWL …)

prior_period_levels

Open / high / low / close du jour, de la semaine et du mois précédents. Calculés à partir du timestamp de la bougie — sans paramètre. Utiles pour les trades de cassure de période précédente et de retour à la clôture précédente.

Paramètres:
none
Champs:
pdh, pdl, pwh, pwl, pmh, pml

YAML

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

Zones Premium / Discount

premium_discount_zones

Découpe le range glissant en discount (tiers bas), équilibre (milieu) et premium (tiers haut) selon des niveaux Fibonacci. `current_zone` renvoie le nom de la zone courante de la bougie — en SMC strict, les longs ne se prennent qu'en discount.

Paramètres:
lookback (200)
Champs:
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-unités de temps

Ajoute `timeframe: '4h'` à n'importe quelle spec d'indicateur pour le calculer sur une unité de temps supérieure et rediffuser la valeur sur les bougies de base de ta stratégie. Le moteur gère le ré-échantillonnage — tu continues d'écrire des règles sur les bougies de ton intervalle de base.

Exemple

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

Warmup et gestion des NaN

Les indicateurs émettent NaN tant qu'ils n'ont pas assez de bougies pour être honnêtes. Un leaf porteur de NaN retourne False — il n'erreur pas, il s'abstient. Donc des stratégies neuves peuvent rester inactives pendant les N premières bougies d'un backtest ; c'est normal.

Voir aussi