Search Series · No. 2 · Published either way

The same rule, at each market’s own clock, nothing else moved.

Search No. 1 ran the premarket reversion at the index clock on 65 markets and found it only in stock indices. Its first stated limit was that 08:00, 09:30 and 10:15 ET are the wrong hours on most other contracts. This page is the narrowest next question: the same rule, the same 0.40%, the same 45-minute hold, with only the three times moved to where each asset class’s own day starts, one clock per class, read from the files before anything ran. It selects nothing. The clocks, the selection rule and eight predictions were filed before the first run.

31 markets in five classes, one clock per class; REJECTED 26, MARGINAL 5. Shortlist by the declared rule: HO, RB.

The question

Does the premarket reversion exist outside index futures once it is given that class’s own morning? Not “does something like it work on crude” with the threshold retuned; the threshold stays 0.40% because it is the rule, and where a class never moves 0.40% in the ninety minutes before its open, few or no trades is the answer for that class at this rule. A threshold set per class is a different search, and it would be counted as one more look per class.

The rule, as run

Family A, the anchored move, unchanged from Search No. 1 except the three times: reference price at the class anchor; at the class signal, if price has moved at least 0.40% from the reference, trade against the move at the next bar’s open; market out at the class exit, forty-five minutes after the signal. Both directions, one contract, $4.20 round-turn, one tick per side, seen era declared from 2023, version #1, 5,000 coin-flip twins per market on the same seed base as Search No. 1.

How the clocks were read

One pass over all 65 files, volume summed by five-minute slot from 2021 on: the day open is the slot with the largest volume step-up between 06:00 and 12:00 ET, the close the largest step-down between 12:00 and 18:00. The class open is the step shared by the class’s dense members; the anchor is ninety minutes before it and the exit forty-five minutes after, Teardown No. 3’s spacing. What the files said: currencies, rates and metals all step up at the same minute, 08:30 ET, which is the US data-release time and not any exchange open; energy at 09:00; the ICE softs open in the night and their US-hours money starts at 08:00. A file with fewer than half its session minutes carrying a bar is thin and was printed beside its class, not run. Grains carry bars through the overnight and open at 09:30, so Search No. 1’s 08:00 anchor and 09:30 signal already was their own clock; livestock opens at 09:30 with no bar before it, which turned out to matter (the ledger). The full table, every market with its step-up, step-down, fill and first bar, is the declaration in the corpus.

ClassAnchorSignalExitCountedRead only, thin
Currencies07:0008:3009:15A6, B6, E6, J1, MP, DX, E7J7
Rates07:0008:3009:15ZT, ZF, ZN, TN, UB, US
Metals07:0008:3009:15GC, SI, HG, PL, SIL, MGC
Energy07:3009:0009:45CL, HO, RB, BZ, MCL, NG, QG, BHH
Softs06:3008:0008:45KC, SB, CC, CTOJ
Grains, indices, VIX, crypto, NikkeiSearch No. 1’s clock is their clock25 markets, not re-runXC, ZO, ZR
Livestocknot runnable by this family (ledger)LE, HE, GF
UnclassedBR, DC, LBS

Every counted market, by class, sorted by score

Currencies · anchor 07:00, signal 08:30, exit 09:15 ET · 7 markets

MarketTradesSeen tradesSeen netSeen PFSeen net, 2 ticksUnseen tradesUnseen netUnseen pTwinsUnseen yrs +BreakevenScoreVerdictShortlist
J111316−$7360.54−$93697+$2,4550.053265 of 5,0006 of 122.2238REJECTED
E61075−$710.91−$134102+$8590.34361,718 of 5,0006 of 151.5926REJECTED
E711910−$8610.32−$986109+$6860.21841,092 of 5,0006 of 150.020REJECTED
DX572−$3430.00−$36355+$7290.29381,469 of 5,0004 of 121.6817REJECTED · G6
B61617−$7110.13−$798154−$1,2970.32341,617 of 5,0006 of 150.016REJECTED
A61439−$5780.29−$668134−$1,3580.4152,075 of 5,0005 of 120.014REJECTED
MP35254−$6570.69−$1,197298−$3,6040.4062,030 of 5,0005 of 150.013REJECTED

Rates · anchor 07:00, signal 08:30, exit 09:15 ET · 6 markets

MarketTradesSeen tradesSeen netSeen PFSeen net, 2 ticksUnseen tradesUnseen netUnseen pTwinsUnseen yrs +BreakevenScoreVerdictShortlist
TN2710−$1670.82−$48017+$1,4910.1918959 of 5,0001 of 32.5743REJECTED · G6
ZT11+$230inf+$1990+$0n/ano unseen era0 of 08.3740REJECTED · G6
US21341−$2,9220.53−$5,485172−$1,6290.0462231 of 5,0006 of 150.022REJECTED
UB38478−$6,6710.57−$11,546306−$2,8160.134670 of 5,0003 of 130.013REJECTED
ZF31+$160inf+$1442−$3831.05,000 of 5,0000 of 20.013REJECTED · G6
ZN283−$2470.19−$34125−$8860.49462,473 of 5,0004 of 80.09REJECTED · G6

Metals · anchor 07:00, signal 08:30, exit 09:15 ET · 6 markets

MarketTradesSeen tradesSeen netSeen PFSeen net, 2 ticksUnseen tradesUnseen netUnseen pTwinsUnseen yrs +BreakevenScoreVerdictShortlist
PL1,592437−$9,5350.88−$13,9051,155+$10,7040.004623 of 5,00010 of 151.0740MARGINAL
SI1,704271−$39,2630.81−$52,8131,433−$21,8390.017889 of 5,0003 of 150.021REJECTED
HG1,364244−$13,5000.78−$19,6001,120−$9,8220.0528264 of 5,0004 of 150.018REJECTED
GC698100−$41,5300.46−$43,530598−$12,0720.42522,126 of 5,0007 of 150.016REJECTED
MGC42698−$4,2940.46−$4,490328−$1,7120.38481,924 of 5,0005 of 130.013REJECTED
SIL850271−$8,9380.79−$11,648579−$6,6770.32041,602 of 5,0000 of 100.013REJECTED

Energy · anchor 07:30, signal 09:00, exit 09:45 ET · 8 markets

MarketTradesSeen tradesSeen netSeen PFSeen net, 2 ticksUnseen tradesUnseen netUnseen pTwinsUnseen yrs +BreakevenScoreVerdictShortlist
CL2,027410+$5,4181.06−$2,7821,617+$41,1710.00021 of 5,00010 of 152.1579MARGINAL
B1,794351+$4,8061.07−$2,2141,443+$16,4290.00420 of 5,00010 of 151.5965MARGINAL
RB1,613348+$24,8051.36+$21,8821,265+$6,0270.1746873 of 5,0009 of 153.2857MARGINALYES
HO1,484373+$26,6621.30+$23,5281,111+$9,0760.1634817 of 5,0008 of 153.8754MARGINALYES
MCL621412−$1,0890.88−$1,913209+$5670.085425 of 5,0001 of 20.021REJECTED
NG3,078716−$17,9170.83−$32,2372,362−$108,5200.98184,909 of 5,0002 of 150.013REJECTED
QG2,775716−$19,3570.45−$37,2572,059−$70,2980.95664,783 of 5,0000 of 150.013REJECTED
BZ1,264356+$2,8351.04−$4,285908−$4,0740.1422711 of 5,0005 of 140.011REJECTED

Softs · anchor 06:30, signal 08:00, exit 08:45 ET · 4 markets

MarketTradesSeen tradesSeen netSeen PFSeen net, 2 ticksUnseen tradesUnseen netUnseen pTwinsUnseen yrs +BreakevenScoreVerdictShortlist
CC1,708515−$53,2230.71−$63,5231,193−$21,7810.1108554 of 5,0002 of 150.015REJECTED
KC1,814495−$21,3730.87−$39,9351,319−$44,1090.26361,318 of 5,0004 of 150.013REJECTED
SB1,534351−$7,1530.66−$15,0151,183−$36,2280.7843,920 of 5,0001 of 150.013REJECTED
CT594142−$5,1210.63−$6,541452−$9780.1932966 of 5,0004 of 150.011REJECTED

Seen net is 2023 onward, the years anyone would have developed on. Unseen net is 2008 through 2022. Unseen p is the share of 5,000 coin-flip twins, same days, same costs, random direction, that did as well or better on the unseen years. Breakeven is the friction in ticks per side at which the full-window result reaches zero. G6 is the insufficient-sample gate. Records for every row are in the corpus folder for this search.

The shortlist, by the declared rule

Search No. 1’s rule, quoted: on seen-era columns only, seen net above zero, at least 60 seen trades, seen profit factor at least 1.20, and seen net still above zero at two ticks per side. 2 of 31 clear it: HO, RB. The unseen columns were printed for every market and consulted for nothing in this step.

What the batch found

Nothing validated. The five marginals are four energy contracts and platinum, and energy is where the rule shows a pulse at its own clock. CL scored 79: 1 of 5,000 twins as good on the unseen years, 10 of 15 unseen years positive, +$41,171 before 2023. It misses the shortlist on the seen side, +$5,418 at a 1.06 profit factor, under water at two ticks, and it reaches zero at 2.15 ticks per side. Brent, 65, is the same shape with 20 twins ahead. Heating oil and gasoline are the reverse: +$26,662 and +$24,805 on the seen years at profit factors 1.30 and 1.36, still positive at two ticks, so they clear the declared rule, and on the unseen years 817 and 873 of 5,000 twins did as well. The shortlist rule was written to look at the seen era alone, on purpose, and it did; whether those two are anything is the book’s question, not this page’s.

Rates did what the threshold said they would: ZT traded once in eighteen years, ZF three times, ZN and TN under thirty, and only the long end (UB 78 seen trades, US 41) produced a sample, both losing. Every currency and every metal but platinum rejected; platinum’s 40 is 23 of 5,000 on the unseen years with a losing seen era. The softs rejected at the same 08:00 as they did at 09:30. The 08:30 finding stands beside the table: three classes share a clock that is a data release, and a reversion measured from 07:00 into it is partly a bet on the pre-release drift, which is not what the rule measured on NQ.

Cumulative net for one contract of CL after costs, 2,027 trades, ending at $46,589; the seen era from 2023 is shaded.
Exhibit 1 · CL, cumulative net, one contract after costs, 2,027 trades, 2008 to 2026 · seen era shaded from 2023 · ends +$46,589
Histogram of 5,000 coin-flip twin results for CL on the unseen years; the rule's $41,171 is the vertical line; 1 of 5,000 matched or beat it.
Exhibit 2 · CL, 5,000 coin-flip twins on the unseen years, same days, same costs, random direction · the rule is the line at +$41,171 · 1 of 5,000 matched or beat it
Bar chart of CL net by calendar year, one contract after costs; brass bars the unseen years, bone bars the seen era from 2023.
Exhibit 3 · CL, net by calendar year · brass = unseen era, decides the verdict · bone = seen era from 2023 · 10 of 15 unseen years positive

The book, as the second answer

Search No. 2’s declaration binds a shortlisted market to the book. So heating oil and gasoline, at the energy clock, were added to the four indices at the index clock, the six parts summed one contract each, correlations measured before anything was added, 5,000 twins run across the whole, and the five livability numbers from Search No. 1’s declaration applied. Declared with seven predictions on September 7 (Corpus\BOOK-02-PMREV-INDICES-ENERGY-2026-09-07), run the same afternoon, engine_book.py v0.2 unchanged from Book No. 1.

PartClockTradesNetTwins, fullTwins, unseenScoreBreakeven
EWindex clock647+$87,54311392 VALIDATED7.77
RTYindex clock789+$39,55113492 VALIDATED6.01
NQindex clock709+$113,29771590 VALIDATED16.98
ESindex clock545+$45,674141289 VALIDATED4.35
HOenergy clock1,484+$35,73810481754 MARGINAL3.87
RBenergy clock1,613+$30,83214087357 MARGINAL3.28
Bookboth5,787+$352,63400NOT LIVABLE6.22

The correlations are the finding. The two energy rows move together, 0.73 on the 985 days both traded, and move with none of the indices: every energy-index pair sits between -0.06 and 0.13 on shared days, against 0.73 to 0.93 among the indices themselves. They are a second bet. And a second bet did what four correlated ones could not: the book’s longest stretch without a new high fell from Book 01’s 34 months to 23, and it is no longer the 2011 to 2014 shelf, it is a stretch ending 2024-07. Still 5 months outside the limit, and the recoup went the other way, 3.98 median years against Book 01’s 3.85. Energy added 23% to the full-window net and 9% to the unseen years, which is where the two rows are thin.

PairShared daysr, sharedUnion daysr, union
EW · RTY5560.9326220.78
EW · NQ4210.7326220.49
EW · ES4350.8726220.68
EW · HO2850.0826220.02
EW · RB3070.1326220.05
RTY · NQ4430.7926220.57
RTY · ES4340.8826220.67
RTY · HO3380.0226220.01
RTY · RB3590.0526220.02
NQ · ES4450.9226220.75
NQ · HO285-0.012622-0.00
NQ · RB300-0.062622-0.02
ES · HO2450.0126220.00
ES · RB2460.0126220.00
HO · RB9850.7326220.49
MeasureBookLimit
longest stretch without a new equity high, months23< 18FAIL
rolling 12-month windows positive84.5%>= 60%PASS
maximum drawdown recouped, median years3.98< 2.00FAIL
largest single year, share of unseen-era net19.2%<= 40.0%PASS
breakeven friction, ticks per side6.22>= 4.00PASS

Book 02 predictions, scored by this script, 7 hits and 0 misses:

  1. HO and RB, r on the days both traded, at least 0.60 (70%). → HIT: 0.73 on 985 days.
  2. Every energy-index pair, r on shared days, under 0.30 (70%). → HIT: EW-HO 0.08, RTY-HO 0.02, NQ-HO -0.01, ES-HO 0.01, EW-RB 0.13, RTY-RB 0.05, NQ-RB -0.06, ES-RB 0.01.
  3. Longest no-new-high stretch at least 18 months, FAIL as Book 01 (70%). → HIT: 23 months (Book 01: 34).
  4. Drawdown recouped in at least 2 median years, FAIL as Book 01 (65%). → HIT: 3.98 years (Book 01: 3.85).
  5. Twins 0 of 5,000 on both windows (70%). → HIT: 0 full, 0 unseen.
  6. Largest single year at most 40% of unseen net, PASS (75%). → HIT: 19.2% (2021).
  7. Verdict NOT LIVABLE on the same two measures as Book 01; neither failing measure moved inside its limit (65%). → HIT: NOT LIVABLE, on longest stretch without a new equity high and maximum drawdown recouped.

Known limits, stated before the run

  1. Currencies, rates and metals share the 08:30 clock, and 08:30 ET is a data-release minute, not an exchange open.
  2. One clock per class hides members whose own step differs (SI 09:30, HG 09:00, CC 11:45, CT 09:30, NG and QG 10:30). Their rows carry the class clock; a per-market clock is a different search.
  3. Brent’s London morning and the softs’ night opens are clocks this batch did not run.
  4. The 0.40% threshold is a percentage of price, so it is a very different move in ticks across classes; ZT’s whole daily range is under it. That is the rule’s limit, printed, not corrected.
  5. Data quality per file is as the September 3 integrity review found it; the engine’s exclusions and density caution print per file.

Methods honesty — the correction ledger

  1. The engine check written into the declaration, done before the batch: the anchor sets only on a bar whose close-stamp lands within ten minutes after the anchor minute, else the day is skipped. Livestock has no bar before 09:30 since 2021, so Search No. 1’s LE, HE and GF rows traded only on pre-2021 days with a stray overnight bar and have zero seen trades; livestock has not been run at its own clock and cannot be by this family, whose anchor is a clock time and not the prior close. That is an engine item on the board, and the three markets are “not run” above rather than “covered.” Lumber and rice are the same story, no bar before 10:00 and 09:30.
  2. The tick value behind each row’s two-tick column is read back from the record (the gap between its one-tick and two-tick nets over twice the trades) and checked to the cent, or to the 1/128 of a dollar for the treasuries, whose trade log is rounded to the cent on a tick of 1/64 or 1/128 of a point; ZF’s came back at $7.8117 and was read as $7.8125.
  3. The results folder was pulled from the server while cotton, the last market, was still running; its five files were pulled again after the log ended, and the table was built only then. A pull waits for DONE.
  4. ZT produced one trade in eighteen years, in the seen era, so it has no unseen null; its twins column says so instead of a count, and G6 rejects it.
  5. Predictions, filed in the declaration before the run and scored here by the script that built this page, 6 hits and 3 misses on the parts scored:
    1. Rates: every one of the six prints fewer than 60 seen trades at 0.40%; none is shortlisted (80%). → MISS on the count (TN 10, ZT 1, US 41, UB 78, ZF 1, ZN 3), HIT on the shortlist.
    2. Currencies: no market validates; at most one MARGINAL (70%). → HIT: 0 validated, 0 marginal.
    3. Metals: GC and SI both REJECTED; no metal shortlisted (65%). → HIT: GC REJECTED, SI REJECTED, shortlisted none.
    4. Energy: CL, HO, RB, BZ and MCL each over 300 seen trades; at most one of the eight MARGINAL, none VALIDATED (60%). → HIT on the samples (CL 410, HO 373, RB 348, BZ 356, MCL 412); MISS on the count: 4 marginal (CL 79, B 65, RB 57, HO 54), 0 validated.
    5. Softs: none of the four validates (65%). → HIT: CC 15, KC 13, SB 13, CT 11.
    6. The whole batch: zero VALIDATED, the shortlist empty, the finding that the reversion is a stock-index effect at its own clock too (60%). → HIT on validation (0), MISS on the shortlist (HO, RB).
    7. If anything in the batch does validate, it is in energy (55%). → not triggered: nothing validated; the 5 marginals above rejected were PL, CL, HO, RB, B.

What comes next

The book above is the answer the declaration required, and it is not livable; the one thing it changed is on the record, a low-correlation pair shortened the long shelf by eleven months without closing it. The search’s stop rule, three declared batches and then a written verdict, is one batch closer, and the next batch is a different clock, class or rule, not more of this one.

The standing challenge

If you trade a version of this rule on any market above with a different clock, write the clock down in numbers and submit it at thinridge.io. A changed clock is a changed rule, it is scored as one more look, and it will be published beside this table either way.