Únete hoy
Instrucciones/probuilder · probacktest · proorder · proscreener

cumsum

cumsum en ProBuilder devuelve la suma acumulada de un valor desde el primer bar cargado hasta el bar actual, útil para totales acumulados y medias personalizadas.

Sintaxis

probuilder
cumsum(price)

Parámetros

NombreTipoPor defectoDescripción
precioexpresión numéricaobligatorioEl valor acumulado en cada barra, por ejemplo close, volume, o cualquier cálculo.

Fórmula

Para bar t, con x la expresión acumulada y bar 0 el primer bar cargado:

código
cumsum(x) = x(0) + x(1) + ... + x(t)

Cómo funciona

cumsum suma el valor de su argumento en cada bar, empezando por el bar más antiguo disponible en el historial cargado, y devuelve el total hasta el bar actual incluido. El resultado es una serie que solo puede crecer cuando el argumento es positivo, reducirse cuando es negativo y avanzar en el valor del argumento en cada nuevo bar.

La ventana de acumulación es todo el histórico cargado, no un periodo de retroceso fijo. Esto tiene una consecuencia práctica: el valor depende de cuántos bars haya cargado el gráfico o el backtest. El mismo script sobre el mismo instrumento devuelve valores de cumsum distintos con 5,000 bars de histórico que con 500. Para un total móvil sobre los últimos N bars, Summation[N] es la herramienta adecuada.

El argumento no tiene que ser un precio en bruto. Cualquier expresión funciona, incluidas las comparaciones, que se evalúan como 1 o 0. Eso convierte a cumsum en una forma compacta de contar cuántas veces se ha cumplido una condición desde el inicio de los datos.

Ejemplos

Ejemplo 1, Total acumulado de los precios de cierre (Indicador)

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

Cada bar añade su precio de cierre al total, produciendo una curva que sube de forma monótona para cualquier instrumento con precios positivos.

Ejemplo 2, Media ponderada por volumen sobre todo el historial (Indicador)

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

Dos sumas acumuladas se combinan en una media ponderada por volumen del precio típico sobre todos los bars cargados, una variante del cálculo VWAP para todo el historial.

Ejemplo 3, Operar en torno a la media de largo plazo (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) dividido por el número de bars transcurridos da la media de todos los cierres cargados. La estrategia se pone long cuando el precio cruza por encima de esa media y sale en el cruce de vuelta por debajo.

Errores y trampas habituales

  • Valores dependientes del historial. El total empieza en el primer bar cargado, por lo que cambiar la cantidad de datos precargados cambia todos los valores de cumsum. Los resultados no son comparables entre distintas profundidades de historial.
  • Esperar una suma por ventana. cumsum no tiene parámetro de periodo. cumsum(close) - cumsum(close)[10] o Summation[10](close) es necesario para un total móvil de 10 bars.
  • Crecimiento sin límite. Acumular una serie estrictamente positiva produce un valor que crece sin límite. Escalarlo, por ejemplo por el número de bars o por otra suma acumulada, suele ser necesario antes de trazarlo o compararlo.
  • Se reinicia al interrumpirse los datos. El total acumulado se reinicia si la serie de datos se recarga o se interrumpe, por lo que no debe asumirse que los valores persistidos sobrevivan a un reinicio del gráfico.
  • Summation, suma de una serie sobre un número fijo de bars.
  • Average, media aritmética sobre un periodo fijo.
  • BarIndex, número de bars transcurridos desde el inicio de los datos cargados.
  • Volume, volumen negociado por bar, un argumento habitual de cumsum.
  • OBV, indicador integrado basado en el volumen acumulado con signo.
  • ONCE, inicializa una variable una sola vez, útil junto a acumuladores manuales.
  • RETURN, devuelve la serie calculada de un indicador.