cumsum
cumsum en ProBuilder renvoie la somme cumulée d'une valeur depuis le premier bar chargé jusqu'au bar courant, utile pour les totaux cumulés et les moyennes personnalisées.
Syntaxe
cumsum(price)Paramètres
| Nom | Type | Par défaut | Description |
|---|---|---|---|
| prix | expression numérique | requis | La valeur accumulée sur chaque bar, par exemple close, volume, ou tout autre calcul. |
Formule
Pour le bar t, avec x l'expression cumulée et le bar 0 le premier bar chargé :
cumsum(x) = x(0) + x(1) + ... + x(t)Comment ça marche
cumsum ajoute la valeur de son argument à chaque bar, en partant du bar le plus ancien disponible dans l'historique chargé, et renvoie le total jusqu'au bar courant inclus. Le résultat est une série qui ne peut que croître lorsque l'argument est positif, diminuer lorsqu'il est négatif, et avancer de la valeur de l'argument à chaque nouveau bar.
La fenêtre d'accumulation est l'historique chargé dans son ensemble, pas une profondeur fixe. Cela a une conséquence pratique : la valeur dépend du nombre de bars chargés par le graphique ou le backtest. Le même script sur le même instrument renvoie des valeurs de cumsum différentes avec 5,000 bars d'historique qu'avec 500. Pour un total glissant sur les N derniers bars, Summation[N] est l'outil approprié.
L'argument n'a pas besoin d'être un prix brut. Toute expression fonctionne, y compris les comparaisons, qui valent 1 ou 0. Cela fait de cumsum un moyen compact de compter combien de fois une condition a été vraie depuis le début des données.
Exemples
Exemple 1, Total cumulé des cours de clôture (Indicateur)
// Accumulate every close from the first loaded bar onward
cumulativeClose = cumsum(close)
RETURN cumulativeClose AS "cumulative close"Chaque bar ajoute son cours de clôture au total, produisant une courbe croissante de façon monotone pour tout instrument dont les prix sont positifs.
Exemple 2, Moyenne pondérée par le volume sur tout l'historique (Indicateur)
// Divide cumulative price-volume by cumulative volume
vwap = cumsum(TypicalPrice * Volume) / cumsum(Volume)
RETURN vwap AS "history-wide VWAP"Deux sommes cumulées se combinent en une moyenne pondérée par le volume du prix typique sur tous les bars chargés, une variante du calcul du VWAP sur l'historique complet.
Exemple 3, Trading autour de la moyenne de long terme (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) divisé par le nombre de bars écoulés donne la moyenne de toutes les clôtures chargées. La stratégie passe long lorsque le prix croise au-dessus de cette moyenne et sort lors du croisement de retour en dessous.
Erreurs et pièges courants
- Valeurs dépendantes de l'historique. Le total démarre au premier bar chargé, donc modifier la quantité de données préchargées modifie chaque valeur de cumsum. Les résultats ne sont pas comparables entre différentes profondeurs d'historique.
- S'attendre à une somme sur une fenêtre. cumsum n'a pas de paramètre de période.
cumsum(close) - cumsum(close)[10]ouSummation[10](close)est nécessaire pour un total glissant sur 10 bars. - Croissance non bornée. Accumuler une série strictement positive produit une valeur qui croît sans limite. La mettre à l'échelle, par exemple par le nombre de bars ou par une autre somme cumulée, est généralement nécessaire avant de la tracer ou de la comparer.
- Réinitialisation lors des coupures de données. Le total cumulé repart à zéro si la série de données est rechargée ou interrompue ; il ne faut donc pas supposer que les valeurs conservées survivent à une réinitialisation du graphique.
Instructions liées
Summation, somme d'une série sur un nombre fixe de bars.Average, moyenne arithmétique sur une période fixe.BarIndex, nombre de bars écoulées depuis le début des données chargées.Volume, volume échangé par bar, un argument courant de cumsum.OBV, indicateur intégré basé sur le volume signé cumulé.ONCE, initialise une variable une seule fois, utile avec des accumulateurs manuels.RETURN, renvoie la série calculée d'un indicateur.