Summary
BearsPower is RTTA's streaming implementation of Alexander Elder's bears
power: the distance of the bar low below an EMA of close. It is the bear
component of ElderRayIndex, exposed as a single scalar for retail-style APIs.
Update API
value = rtta.BearsPower(window=13, fillna=True).update(low, close)
The update(...) call consumes low and close. advance(...) uses the same
inputs without returning a Python value. Scalar batch(low, close) returns a
NumPy array.
Theory Of Operation
Elder models "bears" as how far sellers managed to push the low relative to a
consensus value of close (the EMA). Large negative bears power means the low is
well below the smoothed close; values near zero mean the low is hugging the EMA.
Together with BullsPower, it is the two-sided Elder-ray pressure view.
Recurrence
Let \(c_t\) be close, \(\ell_t\) be low, and \(n\) be window. Let
\(\operatorname{EMA}_n\) be RTTA's exponential moving average of close.
Implementation Notes
The recurrence is implemented in src/rtta/indicator.cpp in class BearsPower.
On the same EMA seed path it matches ElderRayIndex.bear_power.
