Noon Barbari
Docs durchsuchen

Indikatoren

Jeder Indikator, den die Regel-Engine kennt, mit seinen Parametern und Ausgabefeldern.

Ein Indikator wird innerhalb eines Leaf als `{indicator: <kind>, ...params}` referenziert. Jede Art liefert ein oder mehrere Ausgabefelder, die du über `field: <name>` ansprichst (lass `field` weg, um das erste Feld zu nehmen). Multi-Timeframe wird über `timeframe: '4h'` auf jedem Indikator unterstützt.

ArtParameterAusgabefelderTypische Verwendung
emaperiod (>=1)valueTrendfilter. `ema20 > ema50` für Up-Bias.
smaperiod (>=1)valueWie EMA, aber ohne Glättungs-Memory.
rsiperiod (default 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` als Einstieg.
bollingerperiod (20), std_mult (2.0)mid, upper, lowerVolatilitäts-Hülle. `close < lower` für Bounce-Einstiege.
atrperiod (14, >=2)valueStop-Distanz-Sizing. `stop = entry - atr14 * 2`.
atr_smaatr_period (default 14), sma_period (default 14)value (smoothed ATR), atr (raw)Ruhigere Volatilitätsbasis. `atr14 > atr_sma` = Volatilität steigt.
stochasticperiod (14), smooth_d (3)k, d (beide 0–100)Kreuzung der 20-/80-Linien für Mean Reversion.
adxperiod (14)adx, plus_di, minus_di`adx > 25` = im Trend. Mit `plus_di > minus_di` für Up-Bias kombinieren.
vwapanchor (session/day/week/month/rolling), period (20, nur rolling)valueFair-Value-Referenz. `close > vwap` = überdurchschnittlicher Preis.
volume_maperiod (20)valueBreakout-Bestätigung. `volume > volume_ma * 1.5`.
donchianperiod (default 20, >=2)upper, lower, midAusbruchskanal. `close > upper` für Ausbruchs-Einstiege; `mid` als Trendreferenz.
swinglookback (1)last_high, last_low, prev_high, prev_lowBreakout-Einstiege (`close > last_high`) und HH-/HL-Filter.
s_trendlookback (1)value (-1 / 0 / +1)Trendregime im SMC-Stil (BOS/CHoCH) — flippt nach zwei Swing-Breakouts derselben Seite.
blackflag_ftsatr_period (14), atr_factor (1.6), fib_lookback (8)trail, extreme, state, fib1, fib2, fib3SuperTrend-Variante mit Black Flags modifizierter TR und einer 38,2- / 50- / 61,8-Fib-Pullback-Leiter.
super_trendatr_period (10), factor (3.0)trail, stateStandard-SuperTrend auf `hl2`. `state == 1` Long-Regime, `state == -1` Short-Regime.
trend_magiccci_period (20), atr_period (5), atr_mult (1.0)trail, state, cciCCI-gefilterter ATR-Trailing-Stop. Der Stop zieht in Trendrichtung nach, solange der CCI mit dem Regime übereinstimmt.
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_shortZusammengesetztes Long/Short-Einstiegsmodell. `long_signal == 1` für Einstieg bei bestätigtem Rücksetzer.
vfilength (130), coef (0.2), v_coef (2.5), signal (5)vfi, signal, histVolume Flow Indicator. Oszillator — `vfi > 0` Akkumulation, `< 0` Distribution, `hist` für Kreuzungssignale.
market_structureswing_lookback (5)state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_lowSMC-Marktstruktur auf Swing-Pivots. `state` = aktuelles Regime, `bos_signal` / `choch_signal` feuern eine Kerze lang.
fair_value_gapmin_gap_pct (0.0), expire_bars (0 = nie)bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filled3-Kerzen-Imbalance mit Fill-Tracking. Mit `bull_signal` bei FVG-Bildung einsteigen, `bull_filled` zur Verfolgung der Mitigation nutzen.
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_mitigatedLetzte gegenläufige Kerze vor einem BOS. `bull_retest` triggert, wenn der Preis in die Zone zurückkehrt.
equal_highs_lowslookback (10), tolerance_pct (0.05)eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_sweptLiquidity-Pool-Erkennung. `eqh_swept` bestätigt einen Stop-Hunt über gleichen Hochs — ein häufiger Reversal-Trigger.
prior_period_levels(keine Parameter — basiert auf dem Kerzen-Zeitstempel)pdh, pdl, pdo, pdc, pwh, pwl, pwo, pwc, pmh, pml, pmo, pmcVortages-/Vorwochen-/Vormonats-H/L/O/C. `close > pdh` für Momentum-Filter auf Bruch des Vortageshochs.
premium_discount_zonestrailing_lookback (50)trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_top, discount_bottom, current_zoneFib-Zonen-Klassifikation der nachlaufenden Range. `current_zone == 'discount'` für SMC-Long-Bias.

Neuer Indikator-Katalog

Die zehn Indikatoren, die in den Wellen Pine-Port und SMC-Clean-Room hinzugekommen sind. Jede Karte listet Beschreibung, Parameter mit Standardwerten, Ausgabefelder und ein zum Kopieren bereites YAML-Snippet.

Exponential Moving Average (EMA)

ema

Exponentieller gleitender Durchschnitt — eine Trendlinie, die jüngere Kurse stärker gewichtet und daher schneller dreht als ein SMA. Die Steigung zeigt die Richtung; ein schneller über einem langsamen EMA signalisiert Aufwärtsneigung.

Parameter:
period (20)
Felder:
value

YAML

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

Simple Moving Average (SMA)

sma

Einfacher gleitender Durchschnitt — der schlichte Durchschnittsschlusskurs über N Kerzen, eine glatte Trendlinie. Kurs über dem SMA bedeutet Aufwärtsneigung; Kreuzungen zweier SMAs zeigen Trendwechsel.

Parameter:
period (20)
Felder:
value

YAML

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

Relative Strength Index (RSI)

rsi

Relative-Stärke-Index — ein Momentum-Oszillator von 0 bis 100. Klassisch: unter 30 überverkauft (Longs suchen), über 70 überkauft (Shorts suchen), 50 als Trend-Drehpunkt.

Parameter:
period (14)
Felder:
value

YAML

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

MACD

macd

Moving Average Convergence/Divergence — Momentum aus dem Abstand zwischen schnellem und langsamem EMA. Histogramm-Nulldurchgang oder MACD-Linie kreuzt Signallinie markieren Momentum-Wechsel.

Parameter:
fast (12), slow (26), signal (9)
Felder:
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

Ein gleitender Durchschnitt mit Volatilitätsbändern (± N Standardabweichungen). Berührt der Kurs das untere Band, ist eine Gegenbewegung möglich; die Bandbreite zeigt die Volatilität.

Parameter:
period (20), std_mult (2.0)
Felder:
mid, upper, lower

YAML

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

Stochastic Oscillator

stochastic

Stochastik-Oszillator — die Lage des Schlusskurses in der jüngsten Hoch-Tief-Spanne, als %K und geglättetes %D (0–100). Unter 20 überverkauft, über 80 überkauft; %K kreuzt %D als Einstiegstiming.

Parameter:
period (14), smooth_d (3)
Felder:
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 — misst die Trendstärke (nicht die Richtung) von 0 bis 100, mit +DI/−DI für die Richtung. Über ~25 zeigt einen echten Trend; +DI über −DI für Aufwärtsneigung.

Parameter:
period (14)
Felder:
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 — die durchschnittliche Spannweite einer Kerze, also wie stark sich der Kurs üblicherweise bewegt. Dient vor allem dazu, Stops und Ziele an die Volatilität anzupassen (z. B. Stop = Einstieg − 2×ATR).

Parameter:
period (14)
Felder:
value

YAML

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

ATR (smoothed)

atr_sma

Ein geglätteter ATR — der einfache gleitende Durchschnitt des ATR — als ruhigere Volatilitätsbasis. Der Vergleich des rohen ATR damit zeigt, ob die Volatilität steigt oder fällt.

Parameter:
atr_period (14), sma_period (14)
Felder:
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

Volumengewichteter Durchschnittspreis — der nach Volumen gewichtete Durchschnittspreis, verankert an Session, Tag, Woche oder Monat. Über dem VWAP dominieren Käufer; ein verbreiteter Fair-Value-Bezug und Mean-Reversion-Magnet.

Parameter:
anchor (session), period (20)
Felder:
value

YAML

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

Volume Moving Average

volume_ma

Ein gleitender Durchschnitt des Volumens — die Basislinie für 'normale' Beteiligung. Volumen deutlich über dem Durchschnitt (z. B. 1,5×) bestätigt die Überzeugung hinter einem Ausbruch.

Parameter:
period (20)
Felder:
value

YAML

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

Donchian Channel

donchian

Donchian-Kanal — das höchste Hoch und tiefste Tief der letzten N Kerzen. Ein Schluss über dem oberen Band ist ein klassischer Ausbruchs-Einstieg; die Mittellinie dient als Trendreferenz.

Parameter:
period (20)
Felder:
upper, lower, mid

YAML

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

Volume Flow Indicator

vfi

Markos Katsanos' Volume Flow Indicator — ein geglätteter, volumengewichteter Oszillator, der die Vorzeichen über die Nulllinie wechselt, wenn Akkumulation in Distribution übergeht. Kombiniere das Histogramm mit einem Trendfilter für Bestätigungseinstiege.

Parameter:
length (130), coef (0.2), vcoef (2.5), signal_length (5), smooth_vfi (false)
Felder:
vfi, signal, hist

YAML

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

Swing High / Low

swing

Jüngste Swing-Pivots — das letzte bestätigte Hoch und Tief sowie das vorige Paar. Bausteine für Ausbruchs-Einstiege (Schluss über dem letzten Hoch) und Higher-High-/Higher-Low-Trendfilter.

Parameter:
lookback (1)
Felder:
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

Struktureller Trendzustand (+1 auf, −1 ab, 0 neutral) aus bestätigten Swing-Brüchen — er dreht erst nach zwei gleichseitigen Ausbrüchen und filtert so Rauschen. Ein schlanker Regimefilter.

Parameter:
lookback (2)
Felder:
value

YAML

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

SuperTrend

super_trend

Der klassische SuperTrend — ATR-bebänderter Trailing-Stop auf hl2. `state` wechselt zwischen +1 und -1 nur bei einem Close jenseits des gegenüberliegenden Bandes.

Parameter:
atr_period (10), factor (3.0)
Felder:
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

CCI-gefilterter ATR-Trailing-Stop. Der Trail zieht nur dann zum Preis nach, wenn der CCI mit der vorherrschenden Richtung übereinstimmt — ruhiger als SuperTrend in der Seitwärtsphase.

Parameter:
period (20), atr_period (5), coeff (1.0)
Felder:
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

SuperTrend-Variante von Black Flag. Verwendet eine modifizierte True Range und ergänzt eine dreistufige Fibonacci-Pullback-Leiter (38,2 / 50 / 61,8) für Teil-Mitnahmen oder gestaffelte Wiedereinstiege innerhalb eines laufenden Trends.

Parameter:
atr_period (28), atr_factor (5.0), trail_type (modified), fib1 (0.618), fib2 (0.786), fib3 (0.886)
Felder:
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

Ein vollständiges Long-&-Short-Einstiegsmodell: drei EMAs definieren Trend und Regime, dann wartet es auf einen Rücksetzer (innerhalb Toleranz) und einen ATR-gesteuerten Auslöser, bevor long_signal / short_signal feuert.

Parameter:
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)
Felder:
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

Marktstruktur (BOS / CHoCH)

market_structure

Erkennt Pivots und emittiert bei jedem Pivot-Bruch einen Break of Structure oder einen Change of Character. Das `state`-Feld führt das aktuelle Regime, sodass du es als Stateful-Trendfilter nutzen kannst.

Parameter:
swing_length (50)
Felder:
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

Letzte gegenfarbige Kerze vor einem Break of Structure. Der Block bleibt scharf, bis der Preis ihn retestet (`bull_retest`) oder durch ihn hindurchläuft (`bull_mitigated`).

Parameter:
swing_length (10)
Felder:
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

3-Kerzen-Imbalance: eine Lücke zwischen dem Docht von bar[n-2] und dem Docht von bar[n]. Verfolgt die Zone, bis der Preis sie füllt; `bull_signal` feuert bei der Bildung, `bull_filled` feuert, wenn die Lücke geschlossen wird.

Parameter:
min_gap_pct (0)
Felder:
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

Gleiche Hochs / Tiefs

equal_highs_lows

Liquidity-Pool-Detektor. Markiert ein Level, wenn aufeinanderfolgende Hochs (oder Tiefs) innerhalb von `tolerance_pct` voneinander liegen. `eqh_swept` feuert in der Kerze, in der das Level genommen wird — ein häufiger Stop-Hunt-Reversal-Trigger.

Parameter:
swing_length (3), threshold (0.1), atr_period (200)
Felder:
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

Vorperioden-Levels (PDH / PDL / PWH / PWL …)

prior_period_levels

Open / High / Low / Close des Vortages, der Vorwoche und des Vormonats. Wird aus dem Kerzen-Zeitstempel berechnet — keine Parameter. Nützlich für Momentum-Trades auf Bruch der Vorperiode und Mean-Reversion-Trades zum Vortages-Close.

Parameter:
none
Felder:
pdh, pdl, pwh, pwl, pmh, pml

YAML

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

Premium-/Discount-Zonen

premium_discount_zones

Teilt die nachlaufende Range über Fib-Levels in Discount (unteres Drittel), Equilibrium (Mitte) und Premium (oberes Drittel) auf. `current_zone` liefert den aktuellen Zonennamen der Kerze — strikte SMC-Longs feuern ausschließlich im Discount.

Parameter:
lookback (200)
Felder:
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

Füge `timeframe: '4h'` zu einer beliebigen Indikator-Spec hinzu, um sie auf einem höheren Timeframe zu berechnen und den Wert wieder auf die Basis-Bars deiner Strategie zu broadcasten. Die Engine kümmert sich um das Resampling — du schreibst weiterhin Regeln gegen Bars deines gewählten Basis-Intervalls.

Beispiel

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

Warmup & NaN-Handling

Indikatoren liefern NaN, bis sie genug Bars haben, um ehrlich zu sein. Ein Leaf, das NaN trägt, gibt False zurück — es wirft keinen Fehler, es enthält sich. Das heißt, neue Strategien können in den ersten N Bars eines Backtests untätig wirken; das ist korrekt.

Siehe auch