Autonomous 24-hour BTC profit-mining research loop — a long/flat trend base plus an 8h momentum overlay, using the 15-minute Binance archive only. Every number below comes from an engine that reconciles exactly to the project’s reference daily backtester, and every idea is pre-registered before it is run. Killed = failed a pre-registered DEV or control condition, never promoted. Promoted = beat the incumbent on DEV and held up on a VAL look. Click a row’s ▸ for the full reasoning.
Iteration 8 complete · 11.4 h elapsed of 24 · 1 VAL look used · promotion bar: Calmar +0.10 (base bar) · last updated 2026-09-07 09:12 UTC
DEV 2017-01-01–2022-12-31 (archive opens 2017-08-17) · VAL 2023-01-01–2024-12-31 · LOCKBOX 2025-01-01–archive end, opened only at hour 12 and hour 24. All figures 8 bps/side.
Leaderboard
| # | id | description | DEV CAGR | DEV DD | DEV Calmar | DEV Sharpe | VAL CAGR | VAL DD | VAL Calmar | VAL Sharpe | status |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | INC | Incumbent: EMA-50 long/flat base (exit close<SMA-50) + 8h momentum overlay, always allowed | 72.9% | -63.2% | 1.15 | 1.14 | 154.1% | -29.1% | 5.29 | 2.19 | Incumbent |
| 2 | INC-flat | Same, overlay only while the base is flat | 69.9% | -62.0% | 1.13 | 1.19 | — | — | — | — | Variant |
| 2= | INC-L050 | Incumbent at the survival leverage (Q04): identical book, every position x0.50 | 40.4% | -37.9% | 1.06 | 1.19 | — | — | — | — | Standing decision |
| 3 | BASE | EMA-50 long/flat base, 1x, no overlay (anchor 00:00) | 56.6% | -60.7% | 0.93 | 1.12 | 102.6% | -29.2% | 3.51 | 1.95 | Reference |
| — | MLC | Matched-leverage control for INC (1.11x base) | 53.1% | -68.0% | 0.78 | 1.04 | — | — | — | — | Control |
| — | D-001 | Tranched base 00/08/16 (killed iter 1) | 62.3% | -58.1% | 1.07 | 1.20 | 93.7% | -29.3% | 3.20 | 1.85 | Killed |
| — | D-002 | Horizon ensemble EMA 20/30/50/75 (killed iter 2) | 45.9% | -58.2% | 0.79 | 1.03 | — | — | — | — | KilledwhyD-002's row is on the warm-up-matched basis (every config forced flat until period 94, common start ~2017-11-19) and is NOT comparable to the rows above it. Its own control, the identical anchor-0 base, scores 39.8% / -60.7% / 0.66 / 0.92 on that basis versus 56.6% / -60.7% / 0.93 / 1.12 on the leaderboard basis. See the start-date standing fact below. |
| — | D-003 | Overlay-when-flat as its own module, best cell s=1.5 / h=64 (killed iter 3) | 84.1% | -53.4% | 1.58 | 1.20 | — | — | — | — | Killed |
| — | INC-M057 | Incumbent composite at its continuous survival multiplier m*=0.573 (iter 5; the continuous form of INC-L050) | 45.3% | -42.3% | 1.07 | 1.17 | — | — | — | — | Reference |
| — | D-004 | Vol-targeted composite s=clip(0.30/vol20d,0,2) at its survival multiplier m*=1.262 (killed iter 5) | 65.6% | -46.7% | 1.40 | 1.31 | — | — | — | — | Killed |
All iterations (8)
| iter | idea | status | details | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 8 | Q39 (+Q15) — does the incumbent overlay clear its own ENTRY null? | Passed — certified | expandHypothesis: The champion overlay's entry rule (52-bar momentum >= 2.6816% and volume z-score >= 3.7206) carries measurable information about forward returns. If it does, the incumbent composite must score above the 95th percentile of 200 random-entry schedules that are matched on trade count, base-state mix and every other champion mechanic. If it does not, the entry half of the champion genome is, on DEV, indistinguishable from a coin flip — which is what iteration 7's finding 6 already showed for its exit half (the incumbent sits at the 43rd percentile of the exit null it kills challengers with). DEV verdict: **PASS — the champion overlay's entry rule carries measured information, and this is the first positive certification in the loop's history.** The pre-registered PASS branch required the incumbent to clear the null's 95th percentile on both scorings; it cleared on both at the 99.5th percentile, by 13.17 sd of the bar on Calmar and 14.66 sd on CAGR-at-matched-survival, with a match guard that came in at 0.0% and a null that was deliberately built stronger than a pure information-free control (the null's trades still pyramid on the champion's own momentum/volume add rule, so the bar it sets is conservative). Three qualifications travel with the verdict and are not softened: (i) on DEV_H2 alone the incumbent does not clear this bar (0.762 vs 0.823), so what is certified is a full-DEV effect with a 4.69:1 H1 lean; (ii) the null randomises the *initial entry trigger* only — the add rule, stop, hold ceiling and sizing are the champion's, so this certifies the entry trigger in the context of the rest of the genome, not in isolation; (iii) nothing here is a promotion, because Q39 proposed no configuration. Read against iteration 7's finding 6, the two results together are the substantive finding: the champion genome's information is in its entries, not its exits. Same book, same window, same style of null — entry side 99.5th percentile, exit side 43rd percentile (below the median of its own null). The GA found an entry rule and, as far as DEV can measure, a coin flip for an exit. VAL: not run. No VAL look was taken, under any outcome, exactly as pre-registered. Outcome: PASS — the incumbent's entry rule is certified. Q39 done, Q15 done.
Nothing was promoted and nothing was killed: | |||||||||||||||||||||||||
| 7 | Q40 minimum-detectable-effect audit | Done — no verdict | expandHypothesis: Each of the loop's four standing nulls imposes a minimum detectable effect (MDE) — the smallest true edge an idea must carry before it reliably clears that null's bar — and those floors are larger than the effects most queued ideas can plausibly produce. If so, the iteration-6 synthesis's central claim ("the measurement noise floor exceeds the effects the loop is hunting") stops being a rhetorical summary of three near misses and becomes a number, and the remaining queue can be re-ranked by expected effect against it. DEV verdict: INCONCLUSIVE — by construction, and the audit is complete. Q40 is a measurement of the loop's instruments, not a strategy test: it cannot promote or kill any configuration, and it did neither. Its deliverables — the MDE table and the mechanical queue re-rank — are both produced. The pre-registered self-falsification test did not fire (answer FALSE), so the iteration-6 synthesis's central claim stands as written. VAL: not run. No VAL look was taken, under any outcome, exactly as pre-registered. Outcome: Q40 done. Nothing promoted, nothing killed, | |||||||||||||||||||||||||
| 6 | CONSOLIDATION (section 4, step 10) | Consolidation | expandHypothesis: None — this is the loop's first consolidation pass, not a test. Section 4
step 10 requires that every 6th iteration re-read the full ledger, prune the queue, write five
new hypotheses of which at least two are structurally new, and put a 10-line synthesis at the
top of DEV verdict: N/A — consolidation pass, nothing promoted and nothing killed. The
substantive output is the synthesis now at the top of VAL: none (consolidation — no window opened). Outcome: Consolidation complete. All six pre-registered deliverables met:
(a) full ledger re-read (iters 1-5, 1064 lines); (b) queue pruned — Q23/Q27/Q30/Q34 moved
| |||||||||||||||||||||||||
| 5 | Q08 vol targeting under the survival criterion | Killed | expandHypothesis: A time-varying leverage path that targets constant realized volatility (the vt50/vt70 family of trend_study test 4, which D-000e killed on Calmar) survives Q04's block-bootstrap criterion at a higher CAGR than flat de-levering does — i.e. at matched survival (bootstrap 95th-percentile DD better than -60%), vol targeting buys back some of the 32.5 CAGR points that constant de-levering to L* = 0.50 costs. If it does not, the "shape" of the leverage path is worth nothing and only its level matters. DEV verdict: KILL. Three of the four pre-registered primary conditions pass, two of
them by wide margins — (a) +44.7% relative CAGR at matched survival against a +10% bar,
(c) a flat parameter surface, (d) same-signed in both halves — and **(b), the scale-alignment
null, fails at the 94th percentile against a >95th requirement.**
This is the third time in four test iterations (2, 3 and 5) that a pre-registered control,
not the incumbent, is the single binding constraint. The reading:
- The null is a genuine near-miss, not a formality, and the honest statement cuts both ways.
Unlike iter 3 — where the null's median draw (1.19 Calmar) already beat the incumbent
(1.15), so the rule was doing nothing — here the null's median draw scores 37.5% against
constant leverage's 45.3%: a randomly re-timed leverage path with the identical marginal
distribution is, more often than not, worse than not varying leverage at all (only
26% of the 200 draws beat B0). So leverage-path timing clearly carries information.
What the test says is narrower and still decisive: **5.5% of random re-timings match or beat
the chosen cell**, and the pre-registered bar was 5%. The effect is not separated from the
lottery at the confidence level fixed in advance. Section 10 forbids moving the threshold
after the run started, and the miss is one percentile.
- And the 94th percentile is before any multiple-comparison penalty. The chosen cell is the
max of 9, selected after seeing all 9. A null-percentile computed on a max-of-9 statistic is
optimistic; correcting for the selection can only push it further below the bar.
- *C3's plateau is partly an artefact of the VAL: not run (primary failed). Outcome: KILL, logged as D-004 — a separate entry from D-000e, which killed
vol targeting on the base signal under a Calmar rule. Not promoted to the leaderboard.
Post-verdict diagnostics ( | |||||||||||||||||||||||||
| 4 | Q04 leverage by survival | Done — no verdict | expandHypothesis: The incumbent composite's portfolio leverage of 1x was never chosen — it is the engine's default. Choosing it instead by a survival criterion (block-bootstrap 95th-percentile drawdown better than -60%) yields a leverage L* that is defensible out of sample, and if L* != 1 it re-levels every row on the leaderboard. DEV verdict: **the primary question is answered — L* = 0.50 — and the secondary
(leaderboard) conditions FAIL, exactly as the pre-registration anticipated.** Condition (b)
requires the candidate's CAGR not to be lower than the incumbent's; de-levering to 0.5x takes
DEV CAGR from 72.9% to 40.4%, so (b) fails by 32.5 points and (a) fails too (Calmar 1.06 vs
the incumbent's 1.15, i.e. -0.09, not +0.10). Conditions (c), (d), (e) and (f) all pass —
the drawdown is 25.3 points better, it beats matched leverage 1.06 vs 0.76, the plateau is
flat, and both DEV halves de-lever.
Per the pre-registered rule this is therefore recorded as a **standing leverage decision and
risk statement, NOT a promotion, and no VAL look is taken. VAL: none. Not run, by the pre-registered rule. Outcome: Q04 DONE, deliverable produced. Not a kill (nothing was falsified) and
not a promotion. Added to | |||||||||||||||||||||||||
| 3 | Q03 overlay-when-flat as its own module | Killed | expandHypothesis: The base's LONG periods and its FLAT periods are different regimes for the 8h momentum overlay (section 0: most of the overlay's value arrives while the base is flat, in bear-market rallies), so giving the flat regime its own overlay exit rule — wider stop and a hold ceiling extended from 8h to as much as 24h — raises composite DEV Calmar by at least 0.10 over the incumbent, which uses one config in both regimes. DEV verdict: KILL. Seven of the eight pre-registered conditions pass — (a) +0.42 vs
the +0.10 bar, (b) CAGR +11.2 points, (c) drawdown 9.8 points better, (d) beats matched
leverage 1.58 vs 0.77, (e) a real plateau, (f) same-signed in both DEV halves, (h) positive at
4/4 base anchors — and **(g), the exit-rule null, fails: 83rd percentile against a >95th
requirement.**
That single failure is the whole result, and it is not a technicality:
- The null holds every flat-regime overlay trade for a random number of bars with the same
mean as the chosen cell and no stop at all. Its median draw scores Calmar 1.19,
already above the incumbent's 1.15 — so simply *holding flat-regime overlay trades ~2x
longer* recovers most of the story, with no rule at all. And its spread is enormous
(0.59 to 2.37): flat-regime exit timing alone moves DEV Calmar by ~1.8 points. A +0.42
edge cannot be distinguished from that noise, which is exactly what section 5's control
exists to detect.
- Read together with the grid, the surface says the same thing: the effect is driven by the
hold ceiling, not by the stop. At a fixed stop, h = 32 -> 64 is worth +0.24 on its own;
the stop multiplier adds at most +0.15 by itself; and h = 96 gives most of it back in every
stop column (+0.08 / -0.03 / +0.00). "Wider stop AND longer hold" is not the mechanism.
- C6 makes it worse: +1.24 Calmar in DEV_H1 versus +0.12 in DEV_H2, where the CAGR delta is
actually negative. The condition tests the sign and the sign held, but a 10:1 split is
a one-period result wearing a two-period sign.
No VAL look taken. VAL: not run Outcome: KILL, logged as D-003. Not promoted to the leaderboard. | |||||||||||||||||||||||||
| 2 | Q02 horizon ensemble | Killed | expandHypothesis: Replacing the base's single EMA-50 long/flat gate with the equal-weighted mean of four EMA-n long/flat gates (n = 20/30/50/75, continuous 0-1 position) diversifies away part of the single-horizon lottery and raises Calmar without costing CAGR — and, unlike Q01's tranching, does so on the anchor-mean basis Q18 demands, not just at anchor 0. DEV verdict: KILL — six of the seven pre-registered conditions pass, but **(e), the
Q18 anchor-mean bar, fails**: +0.079 against a +0.10 requirement. Per section 10 the threshold
cannot be moved after the run started, and this condition is the entire reason the iteration
was framed this way, so the narrow miss is decisive. No VAL look taken; VAL: not run (DEV failed). Outcome: KILL, logged as D-002. Not promoted to the leaderboard. | |||||||||||||||||||||||||
| 1 | Q01 tranched base | Killed | expandHypothesis: Splitting the base's signal timing across three anchors (00/08/16 UTC) at 1/3 weight each removes most of the inherited 13.4-CAGR-point signal-hour lottery and raises Calmar without costing CAGR. DEV verdict: PROMOTE — all six pre-registered conditions met (a) +0.14 >= +0.10, (b) +5.7 >= 0, (c) DD 2.6 points better, (d) beats matched leverage, (e) same sign in both halves, (f) 6/8 triples. Recorded caveat, written before the VAL look: the chosen triple {0,8,16} is the best of the 8, and the family mean is only +0.03 over anchor-0 — so most of the +0.14 is the anchor-0 lottery reappearing, not a generic tranching effect. The cell was fixed by section 7's seed text before any result was seen, which is the only reason +0.14 is admissible at all. VAL: run — see table below
Outcome: KILL. The DEV edge (+0.14 Calmar, stable across both DEV halves) reverses on VAL (-0.32) — tranching loses to its own single-anchor control out of sample, and both sit far below the incumbent composite's VAL Calmar of 5.29. Combined with the control-5 family mean of +0.03, the conclusion is that the anchor lottery, not tranching, produced the DEV result. Split-stability across two DEV halves was not sufficient to predict VAL here — worth remembering. |
Inherited dead ideas from before this loop started (5) — never retested
| id | idea | reason |
|---|---|---|
| D-000a | Any short-side mechanic (daily or intraday) | Inherited: short leg negative in 6/6 up years; Calmar never beat long/flat. |
| D-000b | 8h momentum overlay as a standalone strategy | Inherited: only viable layered on the base. |
| D-000c | 3-day trend filters | Inherited: no edge. |
| D-000d | Hour-of-day filters on the overlay | Inherited: did not replicate across DEV year halves. |
| D-000e | Vol targeting scored on Calmar (vt50/vt70, cap 1.5/2.0) | Inherited test 4: best cell Calmar 0.88 vs 1x 0.85, lost to matched-exposure control 0.95. (Queue item 8 revisits ONLY under the bootstrap-survival criterion — different decision rule, not a requeue… |