OHLCV indicators

Multi-series technical indicators that need more than the close — High/Low (atr, adx, williams_r) or Volume (obv, vwap).

Each takes the raw aligned arrays (the primary API) or a single OHLCV container as the first argument. All are causal (the value at t uses only data[..t]); the rolling loops are Numba @njit kernels.

atr(high[, low, close, w])

Average True Range (Wilder), causal.

adx(high[, low, close, w])

Average Directional Index (Wilder), causal.

williams_r(high[, low, close, w])

Williams %R over a trailing window, causal.

obv(close[, volume])

On-Balance Volume, causal.

vwap(high[, low, close, volume, w])

Volume-Weighted Average Price of the typical price, causal.