Agreement Streak Analyzer [FibonacciFlux]

2 618
An experiment about multi-timeframe agreement, published with the result it actually produced - which is a negative one.

snapshot

The frame above is 6-10 August on BTCUSDT 15m, chosen because it contains one of the longest runs in the sample: eight consecutive bars of four-timeframe agreement, which is two hours. The longest anywhere in the 62 days measured is nine. Both labels land on it, and the shaded band between the two thresholds is visible there precisely because the two percentiles briefly differ - most of the time they do not.

WHAT IT DOES

Inside each of four timeframes (15m, 1H, 4H, 1D by default) it computes a Stochastic %K and its %D, and takes the sign of %K minus %D as that timeframe's direction. When all four point the same way, the chart bar counts as an agreement bar. The indicator plots the length of the current run of agreement bars, stores every completed run in a rolling array (200 by default), and scores the live run against that array by empirical percentile. Labels mark a run longer than the 90th percentile of its own history (RARE), a run longer than the 95th while the fast timeframe sits in an extreme zone (EXH), and a run longer than every stored run (REC). An audit table shows each timeframe's raw %K, %D and direction, the current run in bars and in elapsed time, its percentile, the sample count, and both thresholds.

THE MEASUREMENT, AND WHY IT IS A NEGATIVE RESULT

The premise worth testing is whether agreement runs are a property of the market or a property of the construction. The test is a circular shift: shift each timeframe's direction series against the others, which preserves each series' own distribution and its autocorrelation and destroys only the alignment between them.

De-aligned copies of these four sensors agree MORE than the real ones.

- Real all-four agreement: 5.72% of bars on BTCUSDT, 6.67% on ETHUSDT
- Circular-shift null, median of 200 draws: 12.4% and 12.5%
- Analytic independence baseline: 12.43% and 12.47%
- Empirical p in both cases: 0.0050, the resolution floor of 200 draws

The null lands on the independence baseline, so four coin flips would agree about twice as often as these four timeframes do. Read at the same bar without the confirmed-mode lag, agreement rises to 13.2% and 13.6% - indistinguishable from chance. The rarity being scored is mostly manufactured by staggering the four sensors in time, not detected in the market.

Runs are short and the distribution is coarse. Median completed run 2 bars (30 min), mean 2.58, longest observed 9 bars (2h15m) on BTCUSDT and 8 on ETHUSDT, over 133 completed runs in 62 days. The streak line reads 0 on 94.3% of bars. Because the run lengths are small integers, the 90th and 95th percentiles are equal on 82.8% of scored bars on BTCUSDT - the shaded "rare zone" between them has zero height most of the time, and is drawn only where it has width.

No edge is claimed and none was found. The 4-hour forward return after a continuation event was significantly positive on BTCUSDT and significantly negative on ETHUSDT over the same window. That is what a non-effect looks like when it is measured twice.

All figures: Binance spot, 15m chart, 6000 bars ending 2026-08-18, default inputs, both symbols measured identically.

HOW THE NUMBERS WERE CHECKED

The logic was reimplemented outside Pine and cross-checked against this chart's Data Window bar by bar. On seven deliberately chosen bars - runs of 0, 3, 4, 5, 6, 7 and 8 bars, including one bar carrying a RARE label and one carrying an EXH label - the reimplementation matched the chart exactly, thresholds included.

One caveat that a reader can hit: the two percentile thresholds depend on how many completed runs the chart has loaded, not only on the symbol. A chart whose stored array has saturated at 200 samples can put a threshold at 5.0 where a shorter history puts it at 4.5, and because the test is "run longer than the threshold", a run of exactly 5 bars is a label in one case and not in the other. Label counts are not portable between charts with different history depth.

SETTINGS THAT DO AND DO NOT MATTER

Measured, not assumed. The timeframe set is by far the strongest control: dropping the daily leg moves agreement from 5.7% to 18.8% of bars, and using only 15m and 1H gives 46.0%. The sensor lengths and the percentiles are load-bearing. The four agreement weights are not - the test is unanimity, so they change no threshold and no label, and they scale only the optional agreement mass line. The colour mid percentile only tints the line.

WHAT IS FIXED IN THIS VERSION

Nine defects found by adversarial review of the previous private version, each verified against the code before it was fixed. %D smoothing could be set to 1, which made every direction exactly zero and the whole indicator permanently blank; a minimum-samples value above the array cap did the same. The rarity alert compared the percentile rank to the percentile input while the label compared the run to the interpolated quantile, so it fired one bar early on three of five labels and four more times with no label at all - alerts now fire on exactly the booleans that draw the labels. The pane colour used that same second rule and painted exhaustion red on runs one bar shorter than any run that could carry a verdict. An "extreme membership softness" input was algebraically a no-op across its whole range and has been removed in favour of the comparison it actually performed. The exhaustion percentile can no longer sit below the continuation percentile and invert the zone. The streak line is blanked during sensor warm-up instead of drawing a confident flat zero. Draw order was changed so the thresholds and the band no longer cover the line they describe. The audit table promised by the previous version's settings did not exist; it does now.

Every one of these fixes is either display-only or a guard on a setting the defaults do not use, so none of them moves a plotted number at default settings. That was not left as an argument: the same bar was read off the chart before and after the rewrite, and the run length, both thresholds and all three event series came back identical.

Open source under MPL 2.0. Nothing here is a forecast, a signal service, or a claim of profitability.

Aviso legal

As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.