cumsum
cumsum in ProBuilder restituisce la somma cumulativa di un valore dalla prima bar caricata alla bar corrente, utile per totali progressivi e medie personalizzate.
Sintassi
cumsum(price)Parametri
| Nome | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| prezzo | espressione numerica | obbligatorio | Il valore accumulato su ogni bar, per esempio close, volume, o qualsiasi calcolo. |
Formula
Per bar t, con x l'espressione accumulata e il bar 0 il primo bar caricato:
cumsum(x) = x(0) + x(1) + ... + x(t)Come funziona
cumsum somma il valore del suo argomento su ogni bar, partendo dalla bar più vecchia disponibile nello storico caricato, e restituisce il totale fino alla bar corrente inclusa. Il risultato è una serie che può solo crescere quando l'argomento è positivo, diminuire quando è negativo, e muoversi a gradini del valore dell'argomento a ogni nuova bar.
La finestra di accumulazione è l'intero storico caricato, non un lookback fisso. Questo ha una conseguenza pratica: il valore dipende da quanti bar sono stati caricati dal grafico o dal backtest. Lo stesso script sullo stesso strumento restituisce valori di cumsum diversi con 5,000 bar di storico rispetto a 500. Per un totale mobile sugli ultimi N bar, Summation[N] è lo strumento appropriato.
L'argomento non deve essere necessariamente un prezzo grezzo. Qualsiasi espressione funziona, comprese le comparazioni, che restituiscono 1 o 0. Questo rende cumsum un modo compatto per contare quante volte una condizione è stata vera dall'inizio dei dati.
Esempi
Esempio 1, Totale progressivo dei prezzi di chiusura (Indicatore)
// Accumulate every close from the first loaded bar onward
cumulativeClose = cumsum(close)
RETURN cumulativeClose AS "cumulative close"Ogni bar aggiunge il proprio prezzo di chiusura al totale, producendo una curva monotonicamente crescente per qualsiasi strumento con prezzi positivi.
Esempio 2, Media ponderata per il volume sull'intero storico (Indicatore)
// Divide cumulative price-volume by cumulative volume
vwap = cumsum(TypicalPrice * Volume) / cumsum(Volume)
RETURN vwap AS "history-wide VWAP"Due somme cumulative si combinano in una media ponderata per il volume del prezzo tipico su tutte le bar caricate, una variante sull'intero storico del calcolo VWAP.
Esempio 3, Trading intorno alla media di lungo periodo (ProBacktest)
// Average of every loaded close: cumulative sum divided by bar count
longRunMean = cumsum(close) / (BarIndex + 1)
IF close CROSSES OVER longRunMean AND NOT ONMARKET THEN
BUY 1 CONTRACT AT MARKET
ELSIF close CROSSES UNDER longRunMean AND LONGONMARKET THEN
SELL AT MARKET
ENDIFcumsum(close) diviso per il numero di bar trascorse dà la media di tutte le chiusure caricate. La strategia va long quando il prezzo incrocia al rialzo quella media ed esce all'incrocio di ritorno al ribasso.
Errori e insidie comuni
- Valori dipendenti dallo storico. Il totale parte dalla prima bar caricata, quindi cambiare la quantità di dati precaricati cambia ogni valore di cumsum. I risultati non sono comparabili tra profondità di storico diverse.
- Aspettarsi una somma su finestra. cumsum non ha un parametro di periodo.
cumsum(close) - cumsum(close)[10]oSummation[10](close)è necessario per un totale mobile a 10 bar. - Crescita illimitata. Accumulare una serie strettamente positiva produce un valore che cresce senza limite. Normalizzarlo, per esempio per il numero di bar o per un'altra somma cumulativa, è di solito necessario prima di tracciarlo o confrontarlo.
- Si azzera alle interruzioni dei dati. Il totale progressivo riparte se la serie di dati viene ricaricata o interrotta, quindi non si deve presumere che i valori accumulati sopravvivano a un reset del grafico.
Istruzioni correlate
Summation, somma di una serie su un numero fisso di bar.Average, media aritmetica su un periodo fisso.BarIndex, numero di bar trascorse dall'inizio dei dati caricati.Volume, volume scambiato per bar, un argomento comune di cumsum.OBV, indicatore integrato basato sul volume cumulativo con segno.ONCE, inizializza una variabile una sola volta, utile insieme ad accumulatori manuali.RETURN, restituisce in output la serie calcolata da un indicatore.