Jetzt beitreten
Befehle/probuilder · probacktest · proorder · proscreener

cumsum

cumsum in ProBuilder gibt die kumulative Summe eines Werts vom ersten geladenen Bar bis zum aktuellen Bar zurück, nützlich für laufende Summen und eigene Durchschnitte.

Syntax

probuilder
cumsum(price)

Parameter

NameTypStandardBeschreibung
Kursnumerischer AusdruckerforderlichDer an jedem Bar akkumulierte Wert, zum Beispiel close, volume, oder eine beliebige Berechnung.

Formel

Für Bar t, mit x der akkumulierte Ausdruck und Bar 0 der erste geladene Bar:

Code
cumsum(x) = x(0) + x(1) + ... + x(t)

So funktioniert es

cumsum addiert auf jedem Bar den Wert seines Arguments, beginnend beim ältesten in der geladenen Historie verfügbaren Bar, und gibt die Summe bis einschließlich zum aktuellen Bar zurück. Das Ergebnis ist eine Reihe, die nur wachsen kann, wenn das Argument positiv ist, schrumpfen kann, wenn es negativ ist, und auf jedem neuen Bar um den Wert des Arguments springt.

Das Akkumulationsfenster ist die gesamte geladene Historie, kein fester Rückblick. Das hat eine praktische Folge: Der Wert hängt davon ab, wie viele Bars der Chart oder der Backtest geladen hat. Dasselbe Skript auf demselben Instrument liefert mit 5,000 Bars Historie andere cumsum-Werte als mit 500. Für eine rollierende Summe über die letzten N Bars Summation[N] ist das passende Werkzeug.

Das Argument muss kein reiner Kurs sein. Jeder Ausdruck funktioniert, einschließlich Vergleichen, die zu 1 oder 0 ausgewertet werden. Damit ist cumsum eine kompakte Möglichkeit zu zählen, wie oft eine Bedingung seit dem Beginn der Daten erfüllt war.

Beispiele

Beispiel 1, Laufende Summe der Schlusskurse (Indikator)

probuilder
// Accumulate every close from the first loaded bar onward
cumulativeClose = cumsum(close)
RETURN cumulativeClose AS "cumulative close"

Jeder Bar addiert seinen Schlusskurs zur Summe, wodurch für jedes Instrument mit positiven Kursen eine monoton steigende Kurve entsteht.

Beispiel 2, Volumengewichteter Durchschnitt über die gesamte Historie (Indikator)

probuilder
// Divide cumulative price-volume by cumulative volume
vwap = cumsum(TypicalPrice * Volume) / cumsum(Volume)
RETURN vwap AS "history-wide VWAP"

Zwei kumulative Summen ergeben zusammen einen volumengewichteten Durchschnitt des typischen Kurses über alle geladenen Bars, eine Variante der VWAP-Berechnung über die gesamte Historie.

Beispiel 3, Trading um den langfristigen Mittelwert (ProBacktest)

probuilder
// 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
ENDIF

cumsum(close) geteilt durch die Anzahl der vergangenen Bars ergibt den Mittelwert aller geladenen Schlusskurse. Die Strategie geht long, wenn der Kurs über diesen Mittelwert kreuzt, und steigt beim Rückkreuzen darunter aus.

Häufige Fehler und Stolperfallen

  • Historienabhängige Werte. Die Summe beginnt beim ersten geladenen Bar, daher ändert eine Änderung der Menge der vorgeladenen Daten jeden cumsum-Wert. Ergebnisse sind über unterschiedliche Historientiefen hinweg nicht vergleichbar.
  • Eine Summe über ein Fenster erwarten. cumsum hat keinen Perioden-Parameter. cumsum(close) - cumsum(close)[10] oder Summation[10](close) ist für eine rollierende Summe über 10 Bars erforderlich.
  • Unbegrenztes Wachstum. Die Akkumulation einer streng positiven Reihe erzeugt einen Wert, der unbegrenzt wächst. Eine Skalierung, zum Beispiel über die Anzahl der bars oder über eine andere kumulative Summe, ist vor dem Darstellen oder Vergleichen meist erforderlich.
  • Setzt sich bei Datenunterbrechungen zurück. Die laufende Summe beginnt neu, wenn die Datenreihe neu geladen oder unterbrochen wird. Es sollte daher nicht angenommen werden, dass gespeicherte Werte einen Chart-Reset überdauern.
  • Summation, Summe einer Reihe über eine feste Anzahl von bars.
  • Average, arithmetisches Mittel über eine feste Periode.
  • BarIndex, Anzahl der bars seit dem Beginn der geladenen Daten.
  • Volume, gehandeltes Volumen pro Bar, ein gängiges cumsum-Argument.
  • OBV, integrierter Indikator auf Basis des kumulierten vorzeichenbehafteten Volumens.
  • ONCE, initialisiert eine Variable ein einziges Mal, nützlich neben manuellen Akkumulatoren.
  • RETURN, gibt die berechnete Reihe eines Indikators aus.