Iscriviti ora
Indicatori/probuilder · probacktest · proorder · proscreener

Summation

Summation in ProBuilder restituisce la somma di un prezzo o di una serie sulle ultime N bar, un elemento base per medie e oscillatori personalizzati. Sintassi, esempi.

Sintassi

probuilder
summation[N](price)

Parametri

NomeTipoPredefinitoDescrizione
NinteronessunoNumero di bar incluse nella somma. Non deve superare la quantità di storico caricato.
priceseriechiusuraQualsiasi tipo di prezzo o serie numerica: open, close, high, low, volume, un'espressione booleana o una variabile personalizzata.

Formula

codice
summation[N](price) = price + price[1] + price[2] + ... + price[N-1]

Una somma a finestra mobile: ogni nuova bar aggiunge il valore più recente ed elimina il valore che esce dalla finestra.

Come funziona

Su ogni bar, ProBuilder somma i N valori più recenti della serie indicata e restituisce il totale. A differenza di cumsum, che accumula dalla prima bar caricata e non dimentica mai, summation usa una finestra scorrevole di lunghezza fissa, quindi il risultato riflette solo lo storico recente.

La funzione accetta qualsiasi serie numerica, non solo i prezzi. Da questo derivano due costruzioni ricorrenti. Primo, dividere una sommatoria per il suo periodo riproduce una media mobile semplice, il che rende la funzione utile quando serve il totale intermedio stesso. Secondo, sommare un'espressione booleana conta le occorrenze, perché i confronti valgono 1 quando sono veri e 0 quando sono falsi: summation[20](close > open) restituisce quanti degli ultimi 20 bars hanno chiuso in rialzo.

Le somme di volume sono un terzo uso comune, per filtri di volume relativo che confrontano l'attività di oggi con il totale o la media recenti.

Esempi

Esempio 1, Scarto tra aperture e chiusure sommate (Indicatore)

probuilder
// Total opening and closing prices over the last 10 bars
i1 = summation[10](open)
i2 = summation[10](close)
// Absolute difference between the two totals
RETURN ABS(i1-i2)

Somma le ultime 10 aperture e le ultime 10 chiusure e restituisce la differenza assoluta, una misura approssimativa di quanta deriva netta intrabar si è accumulata nella finestra.

Esempio 2, Contare le bar rialziste come filtro di ingresso (ProOrder)

probuilder
// Count bullish bars among the last 20
upBars = summation[20](close > open)

IF NOT OnMarket THEN
  // Require broad participation before joining the move
  IF upBars >= 14 AND close > Average[50](close) THEN
    BUY 1 CONTRACT AT MARKET
  ENDIF
ELSIF upBars < 10 THEN
  SELL AT MARKET
ENDIF

Usa la sommatoria su una serie booleana per contare le chiusure rialziste: almeno 14 delle ultime 20 bar devono essere rialziste per un ingresso, e la posizione si chiude quando il conteggio diminuisce.

Esempio 3, Scansione del volume relativo (ProScreener)

probuilder
// Today's volume versus the average of the prior 20 bars
avgVol = summation[20](volume[1]) / 20
relVol = volume / avgVol
SCREENER[relVol > 2](relVol AS "Rel volume")

Restituisce gli strumenti che trattano a più del doppio del loro volume medio a 20 bar, con il rapporto mostrato nella colonna dei risultati.

Interpretazione

Summation è una primitiva di calcolo più che un generatore di segnali, quindi l'interpretazione dipende interamente da ciò che viene sommato:

  • Prezzi. Una somma mobile dei prezzi segue la stessa forma di una media mobile scalata per N; è utile soprattutto come quantità intermedia.
  • Booleani. La somma è un conteggio, leggibile come ampiezza o persistenza: quante delle ultime N bars hanno soddisfatto una condizione.
  • Volume. I totali mobili di volume sono alla base delle misure di volume relativo e di tipo accumulazione.

Errori e insidie comuni

  • Finestra che supera lo storico caricato. Se N è maggiore del numero di barre disponibili, la parte iniziale del grafico o del backtest viene calcolata su dati incompleti. Mantieni N ben all'interno del range caricato, oppure scarta le bar iniziali.
  • Summation contro cumsum. summation[N] è una finestra scorrevole; cumsum accumula tutto a partire dalla prima bar e dipende da quanto storico è caricato. Scambiare l'uno con l'altro cambia i risultati silenziosamente.
  • Dimenticare lo scostamento nei confronti. summation[20](volume) include la bar corrente. Per una baseline che esclude la bar in formazione, somma la serie spostata, come in summation[20](volume[1]).
  • Precisione su finestre ampie. Sommare prezzi elevati su centinaia di bar produce totali molto grandi; preferisci rapporti o medie derivate alle somme grezze quando mostri i risultati, per mantenere leggibili le scale.
  • cumsum, somma cumulata dalla prima bar caricata.
  • Average, media mobile semplice, pari a una sommatoria divisa per il suo periodo.
  • WeightedAverage, media con termini pesati linearmente.
  • Highest, valore massimo su una finestra, un altro aggregato mobile.
  • Lowest, valore minimo su una finestra.
  • ABS, valore assoluto, usato con somme di quantità con segno.
  • Momentum, differenza su una finestra invece di un totale.
  • OBV, bilancio cumulato del volume, una somma progressiva con segno.