US 30 History Explorer

The three pipelines of the technical summary, on the real hours they were run on. Every number here is the frozen research output; the tool computes no findings of its own.

The question. Can an unsupervised pipeline discover recurring regimes in intraday US 30 price action without labels, and do they carry information about what follows? Put plainly: does a learned representation of an hour find anything more than volatility? The answer. It finds volatility states, because volatility is what a variance-driven compression keeps; every other kind of structure planted into the data was lost or unreadable; a simpler model that could see the planted structure found no trend regime in the 2023 market beyond the clock and volatility.
Data. One-minute US 30 CFD bars from Pepperstone, January 2018 to December 2023: 2.15 million overlapping 60-minute windows, 35,849 non-overlapping hours. Models are fitted on 2018–2022 and scored on 2023; calendar year 2024 is sealed. A second vendor's feed (Dukascopy) is used only to test whether clusters depend on the broker. Full method, tables and pass marks: the technical summary (PDF, 10 pages).

Pipeline 1 · linear baseline (PCA)

Pipeline 1: one-minute bars, four features, four GASF images, PCA to 64 numbers, k-means into 3 clusters, test against the next return

Each hour of 2018–2023 becomes four 60×60 pictures (Gramian angular fields), PCA squeezes the pictures to 64 numbers, and k-means sorts the hours into three groups. The question is whether the groups say anything about what price does next.

The ten experiments, in the order they were run, and where each is on this site
  1. Benchmark check on ten labelled UCR series — passed (not shown here; in the PDF).
  2. PCA baseline — this tab.
  3. Autoencoder baseline — Pipeline 2.
  4. Opening-hour test — null (in the PDF; not shown here).
  5. Five variant configurations, each for PCA and the autoencoder — the scaling switches on this tab and Pipeline 2; the ten-out-of-ten null is in Pipeline 2's verdict.
  6. Cross-vendor refit — technical details on this tab.
  7. Test A, planted wave — Pipeline 2, "Why it could not do more".
  8. Test B, planted trend followed stage by stage — Pipeline 2, same section.
  9. Test C, direct read-out and alternative readers — Pipeline 2, the box after Test B.
  10. Six-feature HMM benchmark — Pipeline 3.

Below: one real hour, its candles and the four pictures the pipeline received. In each picture both axes are the minutes of the hour and each pixel records how two minutes relate: red where they move alike, blue where they oppose. Click any dot on the map to load that hour here.

The result as a map

Two scalings were run. The baseline rescaled every hour to its own range before drawing the pictures, which discards amplitude; the V1 variant keeps one fixed scale fitted on 2018–2022. The switch below swaps between the two runs' clusters.

scaling:
colour by:
zoom: scroll wheel zooms · drag pans when zoomed · click a dot to load that hour above use + / − · drag pans when zoomed · tap a dot to load that hour above

A fair sample of about 3,900 of the 2.15 million overlapping windows, placed by the frozen research output and flattened to two dimensions for display. Separation is measured in the full 64-dimensional space; this map is the illustration, not the measurement.

Verdict. With amplitude kept the three clusters are real and they last: silhouette 0.40 on the run's own sample and space (0.16 with per-window rescaling; when both models are rescored under one comparison protocol, the same 50,000 windows reduced to 64 dimensions, PCA scores 0.24 and the autoencoder 0.067, so the ranking holds), 72% of hours keep their state into the next hour where 40% would by chance, and the clusters largely coincide with a plain sort of hours into low, middle and high thirds of realised volatility (ARI 0.45). They are volatility states tied to the clock: calm (50% of hours, the Asian night, a typical realised volatility of 8 bp), thin (15%, the US lunch hour and the hour after the close, 14 bp), active (35%, the European morning and the New York session, 26 bp). On the next 15 minutes they carry nothing: η² = −0.00005 (baseline) and −0.00003 (V1) against a pre-registered pass mark of 0.06. η² is the share of the spread in next-15-minute returns accounted for by the cluster, chance-corrected, so the value random labels would reach is subtracted and noise scatters around zero, slightly negative as often as positive. One further caution: refitting the autoencoder pipeline on a second vendor's feed of the same index reproduced its clusters only weakly (ARI 0.10), so the states as found are partly a property of the broker's quote engine. Pass marks set in advance: silhouette ≥ 0.20, persistence ≥ 0.50, η² ≥ 0.06; the V1 clusters pass the first two and fail the one that matters. The check below shows the same thing on the raw hours.
Technical details
  • Encoding: 4-channel Gramian angular summation field over 60-bar windows of four stationary series (log return, normalised range, body ratio, causal 60-bar volume z-score). Baseline rescales each window to [−1,1]; V1 uses one scale fitted on 2018–2022.
  • Windows: one starts every minute (2.15 million for fitting); every test and every shuffle null is scored on one window per hour (35,849 non-overlapping hours).
  • Compression and grouping: incremental PCA to 64 components, L2-normalised, k-means with k from {3,5,8,12} by the gap statistic, which chose 3 in every run. Reseeding reproduces the labels (ARI 0.98); refitting the CAE pipeline on a second vendor's feed reproduces its clusters only weakly (ARI 0.10; an exploratory ablation without the tick-count channel gave 0.33).
  • Rule: every threshold committed before its test ran; normalisation fitted on training years only; 2024 sealed.