Summary
OrderFlowImbalanceRegimeDetector is RTTA's streaming implementation of: EWMA order-flow imbalance regime detector with buy/sell pressure hysteresis.
Update API
result = rtta.OrderFlowImbalanceRegimeDetector().update(bid_price, bid_size, ask_price, ask_size)
The update(...) call consumes one observation using bid_price, bid_size, ask_price, ask_size. advance(...)
uses the same inputs when the caller wants to update state without materializing
a Python return value.
Theory Of Operation
OrderFlowImbalanceRegimeDetector first constructs a scalar market-state metric from the current observation and compact streaming state, then passes that metric through explicit entry/exit hysteresis. The metric is named in the recurrence below; the hysteresis keeps the output stable until the metric crosses the opposite exit band.
Recurrence
Let \(z_t = (bid_price_t, bid_size_t, ask_price_t, ask_size_t)\) denote the observation consumed by one
update(...) call and let \(\theta\) denote constructor parameters such as
window lengths, thresholds, and smoothing constants.
The entry/exit constants satisfy \(\ell_e < \ell_x \le u_x < u_e\).
The return value is the current scalar indicator value.
Implementation Notes
The recurrence is implemented in src/rtta/indicator.cpp in class OrderFlowImbalanceRegimeDetector.
