Indicatori
Ogni indicatore conosciuto dal motore di regole, con parametri e campi di output.
Un indicatore si referenzia dentro un leaf come `{indicator: <kind>, ...params}`. Ogni tipo espone uno o più campi di output indirizzabili tramite `field: <name>` (ometti `field` per il primo). Il multi-timeframe è supportato con `timeframe: '4h'` su qualsiasi indicatore.
| Tipo | Parametri | Campi di output | Uso tipico |
|---|---|---|---|
| ema | period (>=1) | value | Filtro di trend. `ema20 > ema50` per bias rialzista. |
| sma | period (>=1) | value | Come EMA ma senza memoria di smoothing. |
| rsi | period (default 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` come ingresso. |
| bollinger | period (20), std_mult (2.0) | mid, upper, lower | Inviluppo di volatilità. `close < lower` per ingressi di rimbalzo. |
| atr | period (14, >=2) | value | Sizing della distanza di stop. `stop = entry - atr14 * 2`. |
| stochastic | period (14), smooth_d (3) | k, d (entrambi 0–100) | Incrocio delle linee 20 / 80 per mean reversion. |
| adx | period (14) | adx, plus_di, minus_di | `adx > 25` = in trend. Abbinato a `plus_di > minus_di` per bias rialzista. |
| vwap | period (20, finestra rolling) | value | Riferimento di fair value. `close > vwap` = prezzo sopra la media. |
| volume_ma | period (20) | value | Conferma del breakout. `volume > volume_ma * 1.5`. |
| trend | period (50), slope_lookback (5) | value (-1 / 0 / +1) | Filtro di trend categoriale. `trend == 1` per up, `== -1` per down. |
| swing | lookback (1) | last_high, last_low, prev_high, prev_low | Ingressi su breakout (`close > last_high`) e filtri HH / HL. |
| s_trend | lookback (1) | value (-1 / 0 / +1) | Regime di trend stile SMC (BOS / CHoCH) — cambia dopo due breakout di swing sullo stesso lato. |
| s_trend_valid | lookback (1) | value (-1 / 0 / +1) | Come s_trend, ma ogni breakout dev'essere confermato dalla chiusura della barra successiva. |
| blackflag_fts | atr_period (14), atr_factor (1.6), fib_lookback (8) | trail, extreme, state, fib1, fib2, fib3 | Variante del SuperTrend con il TR modificato di Black Flag e una scaletta di pullback Fibonacci 38,2 / 50 / 61,8. |
| super_trend | atr_period (10), factor (3.0) | trail, state | SuperTrend classico su `hl2`. `state == 1` regime long, `state == -1` regime short. |
| trend_magic | cci_period (20), atr_period (5), atr_mult (1.0) | trail, state, cci | Trailing ATR filtrato dal CCI. Lo stop avanza nella direzione del trend solo quando il CCI conferma il regime. |
| vfi | length (130), coef (0.2), v_coef (2.5), signal (5) | vfi, signal, hist | Volume Flow Indicator. Oscillatore — `vfi > 0` accumulazione, `< 0` distribuzione, `hist` per segnali di incrocio. |
| market_structure | swing_lookback (5) | state, bos_signal, choch_signal, pivot_high, pivot_low, last_pivot_high, last_pivot_low | Struttura di mercato SMC sui pivot di swing. `state` = regime corrente, `bos_signal` / `choch_signal` si attivano per una barra. |
| fair_value_gap | min_gap_pct (0.0), expire_bars (0 = mai) | bull_top, bull_bottom, bear_top, bear_bottom, bull_signal, bear_signal, bull_filled, bear_filled | Squilibrio a 3 barre con tracciamento della chiusura. Usa `bull_signal` per entrare alla formazione del FVG, `bull_filled` per seguire la mitigazione. |
| 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 | Ultima candela opposta prima di un BOS. `bull_retest` si attiva quando il prezzo rientra nella zona. |
| equal_highs_lows | lookback (10), tolerance_pct (0.05) | eqh_level, eql_level, eqh_signal, eql_signal, eqh_swept, eql_swept | Rilevamento dei pool di liquidità. `eqh_swept` conferma uno stop hunt sopra gli equal highs — trigger di inversione frequente. |
| prior_period_levels | (nessun parametro — si basa sul timestamp della barra) | pdh, pdl, pdo, pdc, pwh, pwl, pwo, pwc, pmh, pml, pmo, pmc | Massimi / minimi / open / close del giorno, della settimana e del mese precedenti. `close > pdh` per filtri di momentum di rottura del massimo del giorno precedente. |
| premium_discount_zones | trailing_lookback (50) | trailing_top, trailing_bottom, premium_top, premium_bottom, equilibrium_top, equilibrium_bottom, discount_top, discount_bottom, current_zone | Classificazione del range in zone Fibonacci. `current_zone == 'discount'` per bias long SMC. |
Nuovo catalogo indicatori
I dieci indicatori aggiunti nelle ondate di port da Pine e SMC implementati da zero. Ogni scheda elenca descrizione, parametri con valori predefiniti, campi di output e uno snippet YAML copia-incollabile.
Black Flag Futures Trading System
blackflag_ftsVariante del SuperTrend di Black Flag. Usa un True Range modificato e aggiunge una scaletta di pullback Fibonacci a tre livelli (38,2 / 50 / 61,8) per take parziali o rientri scalati all’interno di un trend in corso.
- Parametri:
- atr_period (14), atr_factor (1.6), fib_lookback (8)
- Campi:
- 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_trendIl SuperTrend da manuale — trailing stop a bande ATR su hl2. `state` cambia tra +1 e -1 solo su una chiusura oltre la banda opposta.
- Parametri:
- atr_period (10), factor (3.0)
- Campi:
- 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 ATR filtrato dal CCI. Il trail avanza verso il prezzo solo quando il CCI concorda con la direzione prevalente — più silenzioso del SuperTrend nei mercati laterali.
- Parametri:
- cci_period (20), atr_period (5), atr_mult (1.0)
- Campi:
- 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
vfiIl Volume Flow Indicator di Markos Katsanos — un oscillatore lisciato e ponderato per volume che cambia segno attraverso lo zero quando l’accumulazione si trasforma in distribuzione. Abbina l’istogramma a un filtro di trend per ottenere ingressi confermati.
- Parametri:
- length (130), coef (0.2), v_coef (2.5), signal (5)
- Campi:
- vfi, signal, hist
YAML
leaf:
lhs: { indicator: vfi, length: 130, field: hist }
op: crosses_above
rhs: { value: 0 }
dir: longStruttura di mercato (BOS / CHoCH)
market_structureRileva i pivot ed emette un Break of Structure o un Change of Character a ogni rottura di pivot. Il campo `state` mantiene il regime corrente, così puoi usarlo come filtro di trend con stato.
- Parametri:
- swing_lookback (5)
- Campi:
- 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_gapSquilibrio a 3 barre: un gap tra l’ombra della barra [n-2] e quella della barra [n]. Traccia la zona finché il prezzo non la riempie; `bull_signal` si attiva alla formazione, `bull_filled` quando il gap viene chiuso.
- Parametri:
- min_gap_pct (0.0), expire_bars (0 = mai)
- Campi:
- 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_blockUltima candela di colore opposto prima di un Break of Structure. Il blocco resta armato finché il prezzo non lo ritesta (`bull_retest`) o non lo attraversa (`bull_mitigated`).
- Parametri:
- swing_lookback (5), retest_tolerance_pct (0.1)
- Campi:
- 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_lowsRilevatore di pool di liquidità. Segna un livello quando massimi (o minimi) consecutivi si trovano entro `tolerance_pct` l’uno dall’altro. `eqh_swept` si attiva nella barra in cui il livello viene preso — trigger di inversione tipico da stop hunt.
- Parametri:
- lookback (10), tolerance_pct (0.05)
- Campi:
- 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: shortLivelli di periodo precedente (PDH / PDL / PWH / PWL …)
prior_period_levelsOpen / high / low / close del giorno, della settimana e del mese precedenti. Calcolati dal timestamp della barra — senza parametri. Utili per trade di momentum sulla rottura del periodo precedente e di ritorno alla media verso la chiusura precedente.
- Parametri:
- (nessuno)
- Campi:
- 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-timeframe
Aggiungi `timeframe: '4h'` a qualsiasi spec di indicatore per calcolarlo su un timeframe superiore e ribrodcastare il valore sulle barre base della tua strategia. Il motore gestisce il resampling — continui a scrivere regole contro le barre del tuo intervallo base.
Esempio
leaf:
lhs: { indicator: rsi, period: 14, timeframe: '4h' }
op: lt
rhs: { value: 35 }
dir: longWarmup e gestione NaN
Gli indicatori emettono NaN finché non hanno abbastanza barre per essere onesti. Un leaf che porta un NaN restituisce False — non genera errore, si astiene. Quindi nuove strategie possono restare ferme per le prime N barre di un backtest; è corretto.