AroonOscillator

Incremental, causal technical analysis documentation

Summary

AroonOscillator is RTTA's streaming implementation of: Difference between Aroon Up and Aroon Down.

Update API

result = rtta.AroonOscillator().update(high, low)

The update(...) call consumes one observation using high, low. advance(...) uses the same inputs when the caller wants to update state without materializing a Python return value.

Theory Of Operation

AroonOscillator normalizes recent directional movement into an oscillator. The implementation keeps only causal rolling or smoothed state and maps that state into the current oscillator value.

Recurrence

Let \(z_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.

\[U_t,D_t = \operatorname{directional\_components}(z_t,z_{t-1})\]
\[y_t = 100\frac{\operatorname{smooth}(U_t)} {\operatorname{smooth}(U_t)+\operatorname{smooth}(D_t)}\]

The return value is the current scalar indicator value.

Implementation Notes

The recurrence is implemented in src/rtta/indicator.cpp in class AroonOscillator.

Reference