Algostream_analytics.FiltersNoise-filtering / smoothing primitives.
All filters are streaming, mutable, single-writer. None of them block. Numerical contracts:
Sanity.check rejects any non-finite, zero, or negative price/size BEFORE downstream filters can see them — prevents NaN propagation through EWMA/Kalman/Welford.Ewma uses RiskMetrics-style bias correction so early samples are not refused outright but report a ready flag when the bias is no longer load-bearing.Kalman1d is a local-level model (state = true mid, observation = noisy tick); Q and R bootstrap from a warmup window of tick-to-tick log-returns, exposed via signal_to_noise_ratio = Q / R.module Sanity : sig ... endmodule Ewma : sig ... endmodule Ewma_var : sig ... endmodule Kalman1d : sig ... endmodule Median_window : sig ... end