Bli medlem idag
Instruktioner/probuilder · probacktest · proorder · proscreener

cumsum

cumsum i ProBuilder returnerar den kumulativa summan av ett värde från den första inlästa baren till den aktuella baren, användbart för löpande summor och egna medelvärden.

Syntax

probuilder
cumsum(price)

Parametrar

NamnTypStandardBeskrivning
prisnumeriskt uttryckobligatoriskVärdet som ackumuleras på varje bar, till exempel close, volume, eller någon beräkning.

Formel

För bar t, med x det ackumulerade uttrycket och bar 0 den först inlästa baren:

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

Så fungerar det

cumsum adderar värdet av sitt argument på varje bar, med start från den äldsta tillgängliga baren i den inlästa historiken, och returnerar summan till och med den aktuella baren. Resultatet är en serie som bara kan växa när argumentet är positivt, krympa när det är negativt och stega med argumentets värde på varje ny bar.

Ackumuleringsfönstret är hela den inlästa historiken, inte en fast tillbakablick. Det har en praktisk konsekvens: värdet beror på hur många barer diagrammet eller backtesten har läst in. Samma skript på samma instrument returnerar andra cumsum-värden med 5,000 barer historik än med 500. För en rullande summa över de senaste N barerna, Summation[N] är rätt verktyg.

Argumentet behöver inte vara ett rent pris. Vilket uttryck som helst fungerar, inklusive jämförelser, som utvärderas till 1 eller 0. Det gör cumsum till ett kompakt sätt att räkna hur många gånger ett villkor har varit sant sedan datans början.

Exempel

Exempel 1, Löpande summa av stängningspriser (Indikator)

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

Varje bar lägger sitt stängningspris till totalen, vilket ger en monotont stigande kurva för alla instrument med positiva priser.

Exempel 2, Volymviktat medelvärde över hela historiken (Indikator)

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

Två kumulativa summor kombineras till ett volymviktat medelvärde av det typiska priset över alla inlästa barer, en helhistorikvariant av VWAP-beräkningen.

Exempel 3, Handel kring det långsiktiga medelvärdet (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) dividerat med antalet förflutna barer ger medelvärdet av alla inlästa stängningskurser. Strategin går long när priset korsar över det medelvärdet och stänger vid korsningen tillbaka under.

Vanliga fel och fallgropar

  • Historikberoende värden. Summan börjar vid den första inlästa baren, så om du ändrar mängden förinläst data ändras varje cumsum-värde. Resultat är inte jämförbara mellan olika historikdjup.
  • Att förvänta sig en fönstersumma. cumsum har ingen periodparameter. cumsum(close) - cumsum(close)[10] eller Summation[10](close) krävs för en rullande 10-barssumma.
  • Obegränsad tillväxt. Att ackumulera en strikt positiv serie ger ett värde som växer utan gräns. Att skala det, till exempel med antalet barer eller med en annan kumulativ summa, är vanligtvis nödvändigt innan det ritas upp eller jämförs.
  • Nollställs vid avbrott i data. Den löpande summan börjar om ifall dataserien laddas om eller avbryts, så man ska inte utgå från att sparade värden överlever en återställning av diagrammet.
  • Summation, summan av en serie över ett fast antal barer.
  • Average, aritmetiskt medelvärde över en fast period.
  • BarIndex, antal barer som gått sedan början av de inlästa data.
  • Volume, omsatt volym per bar, ett vanligt cumsum-argument.
  • OBV, inbyggd indikator baserad på kumulativ volym med tecken.
  • ONCE, initierar en variabel en enda gång, användbart tillsammans med manuella ackumulatorer.
  • RETURN, returnerar den beräknade serien från en indikator.