Files

31 lines
1006 B
Plaintext

// Licensed under the Apache License, Version 2.0
// © mihakralj
//@version=6
indicator("Volume Accumulation (VA)", "VA", overlay=false)
//@function Calculates Volume Accumulation
//@param h High price series
//@param l Low price series
//@param c Close price series
//@param vol Volume series
//@returns Cumulative Volume Accumulation value
//@optimized for performance and dirty data
va(series float h=high, series float l=low, series float c=close, series float vol=volume) =>
float high_price = nz(h, close), float low_price = nz(l, close)
float close_price = nz(c, close), float volume_val = nz(vol, 0.0)
float midpoint = (high_price + low_price) / 2.0
float va_period = volume_val * (close_price - midpoint)
var float va_cumulative = 0.0
va_cumulative += va_period
va_cumulative
// ---------- Main loop ----------
// No inputs required - uses standard OHLC and volume data
// Calculation
va_value = va()
// Plot
plot(va_value, "VA", color=color.yellow, linewidth=2)