Summary
InteractingMultipleModelFilter is RTTA's streaming implementation of: Four-regime IMM Kalman tracker that blends low-volatility, high-volatility, trend, and chop models by online probabilities.
Update API
result = rtta.InteractingMultipleModelFilter().update(close)
The update(...) call consumes one observation using close. advance(...)
uses the same inputs when the caller wants to update state without materializing
a Python return value.
Theory Of Operation
InteractingMultipleModelFilter treats the input stream as noisy observations of a latent state. Each call performs the standard predict/update cycle, then projects the updated state into the public scalar or result fields.
Recurrence
Let \(z_t = close_t\) denote the observation consumed by one
update(...) call and let \(\theta\) denote constructor parameters such as
window lengths, thresholds, and smoothing constants.
update(...) returns a result struct with fields value, velocity, low_vol_probability, high_vol_probability, trend_probability, chop_probability.
Implementation Notes
The recurrence is implemented in src/rtta/indicator.cpp in class InteractingMultipleModelFilter.
