Discussing the article: "Online False Discovery Rate Control: Putting an Error Budget on a Live Signal Stream"

Check out the new article: Online False Discovery Rate Control: Putting an Error Budget on a Live Signal Stream.

The article addresses online false discovery rate control for streaming signals, where fixed thresholds inflate noise discoveries. We port LORD3, LORD++ and SAFFRON into MQL5, construct a causal bootstrap p‑value source without a resolution floor, and verify correctness before market data. Dependence stress tests, a budget/level indicator and a two-arm Strategy Tester show how to configure, monitor and throttle streams to keep the acted-on noise fraction within target.

Open a multi-timeframe scanner across 28 symbols and 7 timeframes and you have asked the market 196 questions. If each cell reports "significant at 5%", then on pure noise, with no edge anywhere on the board, roughly ten of those cells light up. Every sweep. Run it weekly and the scanner hands you five hundred confident signals a year that were never there.

The same arithmetic runs inside a single Expert Advisor. A rule that fires forty times a month at a 5% threshold produces two false alarms a month by construction, and the ones that looked strongest are the ones you deploy. When they die, the rule did not stop working. It never worked: you were reading the tail of a distribution you generated yourself.

This is the multiple testing problem, and it has a mature literature. Most of that literature is offline: gather all N results, sort them, correct once. The Deflated Sharpe Ratio and the backtest-overfitting batteries work this way, and they are excellent at the question they answer. They fit this one only with a compromise, because they need N in advance and assume every decision can be revisited after the whole batch is in. Re-running them over rolling or fixed batches works for research that can wait, but not for a decision that has to be made the moment a signal arrives. A live signal stream has no N: it never ends, the questions arrive one at a time, and each answer is acted on before the next question exists.

Online false discovery rate control is designed for this setting. Instead of a fixed threshold it maintains an error budget, spends a little on every hypothesis it examines, and is refunded on every discovery. The guarantee is specific: provided the p-values are valid, among the signals you acted on, the expected fraction that were noise stays below a level you chose. It can be checked directly only where the truth is known, which is why every procedure here is tested on synthetic data before it meets a market.

In this article we port three procedures from that literature into pure MQL5: LORD3, LORD++ and SAFFRON. Alongside them we build the machinery they need on a chart: a bank of signal rules that produce a genuine stream, a causal bootstrap p-value source, benches that establish correctness before any market data is involved, an indicator that draws the budget as it drains, and an Expert Advisor that runs the gate against its own control arm. Along the way we will find two ways this fails silently while looking healthy, and measure exactly where the guarantee stops holding.


Author: Muhammad Minhas Qamar