The four ideas everything else follows from
Explaining is not predicting.
Same-day correlation explains; a forward, non-overlapping test predicts. A factor can explain strongly and predict nothing — that is the normal case, said in words rather than left for a chart to imply.
Refusal is a feature.
Engine Q speaks only where a walk-forward result exists — one cell, measured below. Everywhere else it declines, and says why, rather than guessing to fill the silence.
The denominator is the information.
In Deep dive, the factor board shows all 61 factors, greyed where they have no measured link. One live number read alone claims something; the same number read beside 19 grey ones claims the opposite.
Display and record are different plumbing.
The forming candle is drawn on the chart and lives only in memory — it never touches a store, so no measured path can ever see an unfinished bar. That is architecture, not a rule someone has to remember.
How zones are drawn
Each band on the chart is the union of real rejection wicks, measured from the last 500 bars, the same slice the market's structure is read from. A rejection wick is the span between the extreme a bar reached and the edge of its body: the market traded there and refused to close there. Every swing of the same kind near a level adds its wick, each judged by the volatility at the bar that printed it, not the latest bar's.
A shelf tested many times with violent rejections is a wide band, and nothing caps it. A swing with no wick gets a bare line, because a zone of invented width would look like a measurement. Zones are drawn to be read: the engine's measured record places its stops on the swing price, never on a zone edge. How much to risk near one is your call, and Risk Guard sizes it against your own limits.
We tested 346 relationships. 13 survived every filter. We show you all 346.
Every link that passed the statistics, taken one filter further.
How a relationship is tested
Every factor on the board, from bond yields and the dollar to COT positioning and inflation prints, is measured against each market three ways: on the same day, which can only explain; one step ahead, which is a forecast claim; and one step ahead with a step skipped, which tests that claim. The funnel above follows the forecast claims through the gates.
- Two standard errors. A claim counts only if t = r·√n ≥ 2 in size, with r the correlation and n the number of observations. A fixed correlation floor would be a loose test on a short series and a strict one on a long series; this one means the same everywhere.
- False-discovery control. Testing many pairs at once hands out some passes by chance, so every claim also faces Benjamini–Hochberg control at q = 0.10 across the whole run: no more than one in ten of the links it passes is expected to be false.
- One finding counts once. Neighbouring series that move as one, such as Treasury yields a few years apart, are one finding wearing several hats. Before that control they are collapsed into a family, and the family is tested once.
- No factor built out of the market itself. The dollar index against EUR/USD would measure the euro's own share of the index, so a pair like that is refused before it is scored, and the refusal names its reason instead of showing a number.
- The gap test. Last, the forecast is measured again with one period (a day, a week or a month, by how often the factor is published) skipped between the factor's move and the market's, and it must hold in size and in sign. Only a link that passes every gate may say it predicts.
Moving together on the same day explains a market. It is real, it is the normal case, and on its own it forecasts nothing.
The engine's one measured cell
XAUUSD · 1h
The walk-forward record for this cell is read live from the engine, so it needs JavaScript.
Four bugs found while building, none catchable by statistics
All four were caught by an external anchor — no amount of internal rigour finds an error in what your data means.
The FX clock
The third-party spot-FX prices are labelled a day ahead of every other venue. Caught against a definition, not a correlation: the dollar index is 57.6% EUR, so EURUSD must correlate hard negative with it. Fixing it took gap-test survivors from three to zero.
A scale error correlation can't see
A ten-year yield was stored at one tenth of its true value. Correlation is scale-invariant, so every result on the broken series came back byte-identical to the correct one. Only a second publisher, compared on overlapping dates, caught it.
A mislabelling, where I was wrong
I claimed a COT leg wrongly summed two groups that do not belong together. The agent that owned the file pushed back with arithmetic and was right — and the same exchange found a real bug, a sign flip in the TFF mapping.
A forecast that was a calendar
Gold against German CPI was the board's one forecast. Each monthly figure was dated by the month it describes, so gold's moves in a month were paired with that month's CPI weeks before Destatis published it: look-ahead bias. In a re-run on a copy on , its gap test read t −2.07 dated by reference and t −1.02 dated by release: the cell explains, and no longer passes as a forecast. The anchor was each publisher's own release calendar.
Who makes Tradox
By Mt7 · Last revised