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.
| Type | Paramètres | Champs de sortie | Usage typique |
|---|---|---|---|
| ema | period (>=1) | value | Filtre de tendance. `ema20 > ema50` pour un biais haussier. |
| sma | period (>=1) | value | Comme EMA mais sans mémoire de lissage. |
| rsi | period (par défaut 14, >=2) | value (0–100) | Mean reversion. `rsi < 30` long, `rsi > 70` short. |
| macd | fast (12), slow (26), signal (9); fast < slow | line, signal, hist | Momentum. `hist crosses_above 0` comme entrée. |
| bollinger | period (20), std_mult (2.0) | mid, upper, lower | Enveloppe de volatilité. `close < lower` pour des entrées de rebond. |
| atr | period (14, >=2) | value | Sizing de la distance au stop. `stop = entry - atr14 * 2`. |
| stochastic | period (14), smooth_d (3) | k, d (les deux 0–100) | Croisement des lignes 20 / 80 pour mean reversion. |
| adx | period (14) | adx, plus_di, minus_di | `adx > 25` = en tendance. À combiner avec `plus_di > minus_di` pour un biais haussier. |
| vwap | period (20, fenêtre glissante) | value | Référence de juste valeur. `close > vwap` = prix au-dessus de la moyenne. |
| volume_ma | period (20) | value | Confirmation de breakout. `volume > volume_ma * 1.5`. |
| trend | period (50), slope_lookback (5) | value (-1 / 0 / +1) | Filtre de tendance catégoriel. `trend == 1` pour hausse, `== -1` pour baisse. |
| swing | lookback (1) | last_high, last_low, prev_high, prev_low | Entrées sur breakout (`close > last_high`) et filtres HH / HL. |
| s_trend | lookback (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é. |
| s_trend_valid | lookback (1) | value (-1 / 0 / +1) | Comme s_trend, mais chaque breakout doit être confirmé par la clôture de la bougie suivante. |
| blackflag_fts | atr_period (14), atr_factor (1.6), fib_lookback (8) | trail, extreme, state, fib1, fib2, fib3 | Variante du SuperTrend avec le True Range modifié de Black Flag et une échelle de pullbacks Fibonacci 38,2 / 50 / 61,8. |
| super_trend | atr_period (10), factor (3.0) | trail, state | SuperTrend standard sur `hl2`. `state == 1` régime haussier, `state == -1` régime baissier. |
| trend_magic | cci_period (20), atr_period (5), atr_mult (1.0) | trail, state, cci | Cliquet ATR validé par CCI. Le stop avance dans la direction de la tendance tant que le CCI confirme le régime. |
| vfi | length (130), coef (0.2), v_coef (2.5), signal (5) | vfi, signal, hist | Volume Flow Indicator. Oscillateur — `vfi > 0` accumulation, `< 0` distribution, `hist` pour les signaux de croisement. |
| market_structure | swing_lookback (5) | state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_low | Structure de marché SMC sur les pivots de swing. `state` = régime courant, `bos_signal` / `choch_signal` se déclenchent sur une bougie. |
| fair_value_gap | min_gap_pct (0.0), expire_bars (0 = jamais) | bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filled | Déséquilibre 3 bougies avec suivi de comblement. Utilise `bull_signal` pour entrer à la formation du FVG, `bull_filled` pour suivre la mitigation. |
| order_block | swing_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 | Dernière bougie de sens inverse avant un BOS. `bull_retest` se déclenche quand le prix revient dans la zone. |
| equal_highs_lows | lookback (10), tolerance_pct (0.05) | eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_swept | Dé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, pmc | Niveaux 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_zones | trailing_lookback (50) | trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_top, discount_bottom, current_zone | Classification 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.
Black Flag Futures Trading System
blackflag_ftsVariante 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 (14), atr_factor (1.6), fib_lookback (8)
- 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: longSuperTrend
super_trendLe 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: longTrend Magic
trend_magicTrailing 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:
- cci_period (20), atr_period (5), atr_mult (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: longVolume Flow Indicator
vfiLe 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), v_coef (2.5), signal (5)
- Champs:
- vfi, signal, hist
YAML
leaf:
lhs: { indicator: vfi, length: 130, field: hist }
op: crosses_above
rhs: { value: 0 }
dir: longStructure de marché (BOS / CHoCH)
market_structureDé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_lookback (5)
- Champs:
- 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: longFair Value Gap (FVG)
fair_value_gapDé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.0), expire_bars (0 = jamais)
- Champs:
- 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: longOrder block
order_blockDerniè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_lookback (5), retest_tolerance_pct (0.1)
- Champs:
- 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: longEqual highs / lows
equal_highs_lowsDé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:
- lookback (10), tolerance_pct (0.05)
- Champs:
- 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: shortNiveaux de période précédente (PDH / PDL / PWH / PWL …)
prior_period_levelsOpen / 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:
- (aucun)
- Champs:
- 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: longMulti-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: longWarmup 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.