Summation
Summation en ProBuilder devuelve la suma de un precio o una serie en los últimos N bars, un bloque de construcción para medias y osciladores personalizados. Sintaxis, ejemplos.
Sintaxis
summation[N](price)Parámetros
| Nombre | Tipo | Por defecto | Descripción |
|---|---|---|---|
N | entero | ninguno | Número de bars incluidos en la suma. No debe superar la cantidad de historial cargado. |
price | serie | close | Cualquier tipo de precio o serie numérica: open, close, high, low, volume, una expresión booleana o una variable personalizada. |
Fórmula
summation[N](price) = price + price[1] + price[2] + ... + price[N-1]Una suma de ventana móvil: cada nuevo bar añade el valor más reciente y descarta el valor que sale de la ventana.
Cómo funciona
En cada bar, ProBuilder suma los N valores más recientes de la serie dada y devuelve el total. A diferencia de cumsum, que acumula desde la primera bar cargada y nunca olvida, summation usa una ventana deslizante de longitud fija, por lo que el resultado refleja solo el histórico reciente.
La función acepta cualquier serie numérica, no solo precios. De ahí se derivan dos usos habituales. Primero, dividir una suma por su periodo reproduce una media móvil simple, lo que hace útil la función cuando se necesita el total intermedio en sí. Segundo, sumar una expresión booleana cuenta apariciones, porque las comparaciones valen 1 cuando son ciertas y 0 cuando son falsas: summation[20](close > open) devuelve cuántas de las últimas 20 barras cerraron al alza.
Las sumas de volumen son un tercer uso habitual, para filtros de volumen relativo que comparan la actividad de hoy con el total o la media recientes.
Ejemplos
Ejemplo 1, Diferencia entre aperturas y cierres sumados (Indicador)
// Total opening and closing prices over the last 10 bars
i1 = summation[10](open)
i2 = summation[10](close)
// Absolute difference between the two totals
RETURN ABS(i1-i2)Suma las últimas 10 aperturas y los últimos 10 cierres y devuelve la diferencia absoluta, una medida aproximada de cuánta deriva neta intrabar se acumuló a lo largo de la ventana.
Ejemplo 2, Contar bars alcistas como filtro de entrada (ProOrder)
// Count bullish bars among the last 20
upBars = summation[20](close > open)
IF NOT OnMarket THEN
// Require broad participation before joining the move
IF upBars >= 14 AND close > Average[50](close) THEN
BUY 1 CONTRACT AT MARKET
ENDIF
ELSIF upBars < 10 THEN
SELL AT MARKET
ENDIFUsa una sumatoria sobre una serie booleana para contar cierres al alza: al menos 14 de los últimos 20 bars deben ser alcistas para una entrada, y la posición se cierra cuando el recuento se reduce.
Ejemplo 3, Búsqueda por volumen relativo (ProScreener)
// Today's volume versus the average of the prior 20 bars
avgVol = summation[20](volume[1]) / 20
relVol = volume / avgVol
SCREENER[relVol > 2](relVol AS "Rel volume")Devuelve los instrumentos que cotizan con más del doble de su volumen medio de 20 bars, con el ratio mostrado en la columna de resultados.
Interpretación
Summation es una primitiva de cálculo más que un generador de señales, así que su interpretación depende por completo de lo que se esté sumando:
- Precios. Una suma móvil de precios sigue la misma forma que una media móvil escalada por
N; es útil sobre todo como cantidad intermedia. - Booleanos. La suma es un recuento, interpretable como amplitud o persistencia: cuántos de los últimos
Nbars cumplieron una condición. - Volumen. Los totales de volumen móviles sustentan las medidas de volumen relativo y de tipo acumulación.
Errores y trampas habituales
- Ventana que excede el historial cargado. Si
Nes mayor que el número de bars disponibles, la parte inicial del gráfico o del backtest se calcula con datos incompletos. ManténNbien dentro del rango cargado, o descarta las bars iniciales. - Summation frente a cumsum.
summation[N]es una ventana deslizante;cumsumacumula todo desde el primer bar y depende de cuánto histórico esté cargado. Cambiar uno por otro altera los resultados de forma silenciosa. - Olvidar el desplazamiento en las comparaciones.
summation[20](volume)incluye el bar actual. Para una línea base que excluya el bar en formación, suma la serie desplazada, como ensummation[20](volume[1]). - Precisión en ventanas grandes. Sumar precios grandes a lo largo de cientos de bars produce totales muy altos; prefiere ratios o medias derivadas antes que sumas en bruto al mostrar resultados, para mantener las escalas legibles.
Instrucciones relacionadas
cumsum, suma acumulada desde el primer bar cargado.Average, media móvil simple, igual a una sumatoria dividida por su periodo.WeightedAverage, media con términos ponderados linealmente.Highest, valor máximo en una ventana, otro agregado móvil.Lowest, valor mínimo en una ventana.ABS, valor absoluto, utilizado con sumas de cantidades con signo.Momentum, diferencia a lo largo de una ventana en lugar de un total.OBV, balance de volumen acumulado, una suma corrida con signo.