Summary
AverageDirectionalMovementIndex is RTTA's streaming implementation of: ADX trend-strength indicator.
Update API
result = rtta.AverageDirectionalMovementIndex().update(close, high, low)
The update(...) call consumes one observation using close, high, low. advance(...)
uses the same inputs when the caller wants to update state without materializing
a Python return value.
Theory Of Operation
AverageDirectionalMovementIndex is part of Wilder's directional-movement system. The update compares today's high/low extension with the previous bar, smooths directional movement and true range, and then reports either a directional component, a normalized directional imbalance, or an additional Wilder-smoothed trend-strength rating.
Recurrence
Let \(z_t = (close_t, high_t, low_t)\) denote the observation consumed by one
update(...) call and let \(\theta\) denote constructor parameters such as
window lengths, thresholds, and smoothing constants.
PlusDirectionalIndicator returns \(DI^+_t\), MinusDirectionalIndicator
returns \(DI^-_t\), DirectionalMovementIndex returns \(DX_t\),
AverageDirectionalMovementIndex returns \(ADX_t\), and
AverageDirectionalMovementIndexRating returns \(ADXR_t\).
The return value is the current scalar indicator value.
Composed Primitives
Implementation Notes
The recurrence is implemented in src/rtta/indicator.cpp in class AverageDirectionalMovementIndex.
