Thirty-eight findings. Thirty-one method rules. One designated strategy. Zero orders placed — and that last number is still the point.
Most trading systems are built to find edges. This one is built to destroy them and keep only what survives. Around 145 rules have been tested and one is still standing. Four of the thirty-eight findings are retractions of earlier findings in the same file — including two that were wrong for a fortnight before this platform caught itself, and one where the statistical null being used to reject ideas turned out to be a number the analyst had simply chosen.
Open the live terminal Learn the method Practise the rule How to run everything
| Component | State | Detail |
|---|---|---|
| Order-book recorder | running | ~240 MB/day · ~45 GB per six months |
| Universe rule | single definition | Lona.Rules · recorder and planner call the same code |
| Per-market watchdog | live | one silent feed out of thirty now raises an alarm |
| Status file | live | status.json · answers when nothing is running |
| Market archives | complete | Hyperliquid 3 yr · OKX 6.6 · Binance 6.6 · BitMEX 10.25 |
| Funding archives | complete | 1.9M hourly (HL) · 6 yr (Binance) · 11,188 prints (BitMEX) |
| Risk engine | tested | every limit ships with a case that proves it blocks something |
| Paper ledger | live | equity curve derived from the append-only plan journal |
| Daily plan (the forward record) | stalled | last run 16 Aug · its scheduled task is not installed on the machine yet |
| Execution pipeline | dry run | signer built · payload never spoken to the venue |
| Live trading | not started | gated on the forward record, not on the code |
The designated strategy now reads t = 2.4 on 6.6 years of Binance including its delisted contracts, and t = 2.39 on 10.25 years of BitMEX bitcoin. Those are the first two t-statistics above 2 this project has produced, and both are genuinely out of sample: the 50/5 parameters were fixed on Hyperliquid and no search was run on either venue.
That is much better than a hint and still not a live result. Every figure on this page is a backtest. The only test that cannot be searched is the one that has not happened yet, which is what the forward record and the order-book tape are for, and they are ten days old.
And the forward record is currently stopped. An update on 16 August replaced a launcher script and silently deleted a hook that lived only on the recording machine, so the daily plan has not run since. The order-book tape never stopped and is unaffected. Those missing days are gone for good — a recomputed entry is a backtest, not a forward record — and the fix is to give the plan its own scheduled task so it can never again depend on a script doing an unrelated job. That is written and tested; it needs someone at the machine to install it.
Two of those figures have since been re-examined by their own authors. Finding 036 replaced the statistical null used to reject variants — it had been a number chosen by the analyst rather than derived from the data — and every previous verdict survived, because the invented bar was the harsher one. Finding 037 priced the survivorship tax at +6.2 points of CAGR with an interval that never crosses zero. Neither correction was prompted by a bad result. Both were prompted by someone asking a question the project had not asked itself.
One rule: rank the perpetuals by trailing 30-day dollar volume, re-rank weekly, take the top 20; when one closes strictly above every close of the preceding 49 days, hold it five days at 1/20 of capital, otherwise cash. Every row below is net of fees and net of the actual funding paid.
| Dataset | Span | Dead names | CAGR | Sharpe | Worst DD | t |
|---|---|---|---|---|---|---|
| Binance archive · 742 perps, crypto only | 6.6 yr | kept | +32.4% | +1.22 | −28% | +2.4 |
| BitMEX · XBTUSD alone | 10.25 yr | n/a | +27.7% | +0.88 | −54% | +2.39 |
| OKX · 356 perps, crypto only | 6.6 yr | absent | +26.1% | +1.03 | −35% | +2.1 |
| Hyperliquid · 232 perps | 3.0 yr | kept | +20.9% | +1.02 | −14% | +1.5 |
Four venues, three decades of instrument history, and the four Sharpe ratios land between 0.88 and 1.22. More venues is not more evidence — the same rule on Bybit over the same years would correlate about 0.95 with the Binance run. Only new time or new information moves a standard error, which is why BitMEX was worth pulling and Bybit was not.
The obvious killer objection, and it went unmeasured for ten days until an outside reviewer demanded the table. Daily returns of the book regressed on bitcoin, on every dataset that produced a headline:
| Book | Beta to BTC | R² | Alpha/yr | Avg deployment |
|---|---|---|---|---|
| finding 008, the traded rule | +0.17 | 16.5% | +22.4% | 17% |
| hold all 20 instead | +1.145 | 63.1% | −22.3% | 97% |
Beta tracks deployment. The selection does not find low-beta names — it holds ordinary high-beta crypto and sits in cash 84% of the time. Owning the whole universe is beta 1.14 and loses 22% a year; selecting from it is beta 0.17 and makes 22%. Same markets, same days, same costs. Alpha comes out at +22.4%, +22.9% and +22.6% on three separate datasets that were not tuned to agree.
Two things against it. Against simply holding bitcoin at the same 17% exposure, the rule wins on return and Sharpe on every dataset — and loses on drawdown on every dataset, roughly 3.8× the return for 1.4× the hole. And its beta is higher when bitcoin falls (+0.206) than when it rises (+0.141): the diversification is weakest exactly when it is needed. Finding 034.
The obvious next move is to find a venue that goes back further, and we went looking. Bitfinex serves daily bars from March 2013 and still serves its delisted pairs — 50 of 50 tested. It is the best-preserved archive in crypto. And it is no use for this, because of what is in those years:
| Year | Bitfinex markets clearing $1m a day | Coins clearing $1m a day, whole market |
|---|---|---|
| 2014 | 1 | — |
| 2015 | 1 | — |
| Jan 2016 | 1 | 2 |
| Jul 2016 | 1 | 5 |
| Jan 2017 | 7 | 13 |
| Jul 2017 | 7 | 20+ |
| 2018 | 14 | far more |
The rule ranks a cross-section and holds the top twenty. You cannot pick twenty out of one. On 3 January 2016 exactly two coins on earth traded a million dollars a day; twenty was not reached anywhere until around the middle of 2017, and our Binance spot archive starts that August. This project's data begins within weeks of the earliest date the test can exist at all. The ceiling is the market's, not ours.
One venue is worse than useless. Poloniex had the deepest altcoin cross-section of 2016–2017 and has since deleted 29 of the 30 delisted markets we tested — no listing, no candles, nothing. A backtest on it would look beautiful and would be measuring only which coins are still alive in 2026. Finding 032.
One stretch of this project had only ever been seen through a single venue: August 2017 to 2019, which contains the entire 2018 bear and is the most informative period we hold. If the result there were an artifact of one exchange's fee schedule or listing policy, nothing here would have detected it. So Bitfinex was pulled anyway — not for its history, for its independence. Its whole ticker space was enumerated by brute force, 17,576 probes, because the venue's own listings contain none of its dead: 268 pairs found, 204 of them delisted, carrying 192,160 days of price.
| Same period, two venues | Net CAGR | Sharpe | Hold all 20 instead | Its drawdown |
|---|---|---|---|---|
| Binance spot · 2017-08 → 2020-12 | +35.7% | +1.28 | +2.2% | −91% |
| Bitfinex · 2017-07 → 2020-12 | +49.2% | +1.29 | −0.5% | −92% |
Two order books, two fee schedules, two customer bases, and the Sharpe ratios land at 1.28 and 1.29. The obvious objection is that it is the same period and therefore the same coins — so that was measured rather than argued. The two venues' traded top-twenty lists overlap by a median of 26%. Fifteen markets were eligible on Bitfinex and never on Binance spot. Three quarters of the two universes differ.
And 2018 finally counts. Binance spot's 2018 sat at a median of eight eligible markets, below our own bar, and had to be reported as “cannot say”. Bitfinex's sits at fourteen and clears it: the rule lost 4.4% net in the year bitcoin fell 71%, on a 10% drawdown. BitMEX, which shares no market with either, measured the same bear at −5.3% while bitcoin fell 73.4%.
What must be said against it. The headline is not significant on its own — t = +1.79 over 3.5 years; its worth is the agreement, not the number. Two of its four years (2019, 2020) sit at a median of nine and are marked cannot say. Bitfinex from 2021 is weak — Sharpe +0.36 — on a median of six markets, too thin to be either support or refutation, and it is reported here because the pre-registration named it in advance so it could not be quietly dropped. The independent-period count stays at two. This is a second view, not a second era. Finding 033.
A backtest with no control is a story. Each row below is a deliberate attempt to make the engine print something impossible.
| Control | Result | Reads as |
|---|---|---|
| Let it see the return it is about to earn (Binance) | +164,956% · Sharpe 14.79 | engine sound — if this ever looks reasonable, every other row is void |
| Hold the whole top-20 book, always (Binance, 6.6 yr) | loses money · −94% DD | it is a selection rule, not a repackaged long |
| Hold the whole top-6 book, always (BitMEX, 2018–20) | −40.6% · −76% DD | the same control replicating on a different venue in a different decade |
| 200 shuffles of the same weights across the same days | 10% of shuffles beat the real book | the BitMEX cross-section is not evidence, and is reported anyway |
| The short side — a new 50-day low | −9.5% a year | long-only is correct because it was measured, not assumed |
| Year | CAGR | Sharpe | Worst DD | Bitcoin |
|---|---|---|---|---|
| 2020 | +33.7% | +1.40 | −14% | +302% |
| 2021 | +125.1% | +2.30 | −15% | +60% |
| 2022 | −18.8% | −0.92 | −25% | −64% |
| 2023 | +43.2% | +1.70 | −19% | +156% |
| 2024 | +29.8% | +1.15 | −15% | +121% |
| 2025 | +21.5% | +0.97 | −9% | −6% |
| 2026 (0.6 yr) | +37.9% | +1.42 | −9% | −28% |
2025 and 2026 both beat a falling bitcoin, so this is not simply market beta wearing a rule.
Every other dataset in this project starts in 2020. BitMEX is the only venue found that was listing crypto derivatives through the 2018 bear and still serves the data.
| Year | Bitcoin | The rule | Its worst DD | Days in market | Entries |
|---|---|---|---|---|---|
| 2018 | −73.4% | −5.3% | −10.4% | 4% | 4 |
| 2022 | −64.2% | −20.9% | −29.2% | 6% | 8 |
In the worst year crypto has ever had, the rule lost five per cent. It cut exposure to 4% and took four trades all year. This corrected an earlier finding on this very page: finding 017 concluded from 2022 alone that the rule “loses badly in a bear market”. With both bears measured the truth is narrower than either version — the loss scales with how many false breakouts the bear produces. 2018 was a steady grind and produced four; 2022 had violent bear rallies and produced eight, for four times the loss. The mechanism, not the magnitude, is what generalises.
5,000 block-bootstrapped one-year histories, 20-day blocks, because crypto clusters and single-day resampling would flatter every number.
Only 47% of first bars are positive. Across 3,021 historical entries the median first day is −0.48%. The rule loses slightly more often than it wins; its entire edge is in the tail. A live book will show red on most days while earning exactly its published return.
There is a 12% chance of a losing year, and that is a property of the strategy rather than a warning sign in it. A first year that loses money is inside the distribution and says almost nothing about whether the edge is real. Anyone who stops on a run of red days is not running finding 008; they are running something that was never tested.
Rank the perpetuals by trailing 30-day dollar volume, re-rank weekly, take the top 20. When one closes strictly above every close of the preceding 49 days, hold it five days at 1/20 of capital. Otherwise cash. Average deployment 16–23%.
Dividing by the size of the universe rather than by the number of signals is deliberate: a quiet market leaves you in cash instead of putting the whole account into one coin.
What it survived: a 70-cell parameter surface with every cell positive; fees to 30 bps a side; the real hourly funding on every coin held; the delisted names left in; fills one and two days late; and four venues.
Character: a bull-market engine with a cash brake. It systematically buys what is expensive to hold — a market at a new 50-day high is a crowded long, and crowded longs pay funding.
Short the richest funding payers on the perpetual, hold an equal size on spot so the price cancels, and keep the funding. On six years of real Binance funding: +7.1% a year, Sharpe 2.75, −11% drawdown, and every one of six years contributes.
Shelved, not refuted. Its Sharpe is unfalsifiable in the current framework: the model's only price-risk term is a residual multiplier, so every improvement made to the book raises the Sharpe without removing any risk from the world. Requiring a live spot listing produces Sharpe 5.54 — that is a symptom, not a result.
Unshelving requires a risk model that can represent a jump, not a better Sharpe. Its real failure modes — naked legs, funding regime flips (2026 is running at −8.2%), liquidation cascades, venue failure — are not in the backtest at all.
Finding 021 published the claim that 75–100% of a Hyperliquid carry book is unhedgeable. It was wrong. The venue returns 324 spot pairs against 715 contexts, and both the Python that produced the finding and the first version of the C# joined those two arrays by position — so every market's turnover was read off some other market. Re-measured on the contexts' own key: BTC's wrapper does $11.9m a day, not $0; HYPE does $38.8m.
It was caught by one question — why does HYPE/USDC show $0 when HYPE is Hyperliquid's own token? Nothing else looked wrong. Every other row was a plausible number in a plausible place. A join whose two sides are different lengths is not a join, and that is now a method rule.
Carry does not automatically unshelve — two of the three reasons are untouched — but a five-name book on BTC, ETH, SOL, ZEC and HYPE is a question that is open again, with a new unmeasured cost: four of those five hedges are bridged wrappers, and nothing in this project knows what wrapper-to-perp basis does in a crisis.
No survivorship correction is applied, in either direction. It measured +6.2 points on one three-year sample and −2.9 on a 6.6-year one; the spread of the estimator is about 7 points, which is larger than the estimate. Two earlier findings subtracted 6.2 points on the strength of the first measurement, and that subtraction was unjustified.
This is research, not advice. Every figure here is a backtest. Losses are possible and leverage makes them faster. Nothing on this page is a recommendation about how much to stake — the bootstrap describes the strategy; the stake is a decision about capital that only its owner can make.
The dead entries are kept on purpose. The record of being wrong is what makes the record of being right worth anything.
| # | What it established | Verdict |
|---|---|---|
| 001 · discount buys | Every trend feature negative, one strongly positive. Exposed a ranking bug: mean R rewards quiet bars. | dead |
| 002 · the 4h timeframe | Fees fall 37-fold at 4h — and the edge falls with them. | dead |
| 003 · regime | 001 and 002 were the same six-week regime. Positive in 4 of 10 quarters, t = −0.23. | dead |
| 004 · the alphabet | The symbols had been chosen alphabetically. Ranked by volume instead, the top USDT market turned out to be a currency peg. | dead |
| 005 · RSI extremes | One rule looked net positive and failed only on sample size. | dead |
| 006 · the answer | Killed 001–005. Same rule, same months, different symbols: alts +0.188, BTC/ETH/SOL −0.081. Thin markets mean-revert because one order moves them and the next moves them back. | superseded |
| 007 · trend following | The machinery could not hold a position past 24 bars. A new engine found real trend results — on three coins chosen with hindsight, which is the error 006 was written about. | superseded |
| 008 · breakout momentum | The rule that would not die. Now measured on four venues; best estimate +32.4% at Sharpe 1.22, t 2.4. | designated |
| 009 · funding carry | 1.9M hourly funding records. Reported Sharpe 8.2 — and a Sharpe of 8 is not a real Sharpe. Superseded by 012. | superseded |
| 010 · the venues | The hedge leg exists off-venue. Symbol collisions are a live hazard — XMR read +23,169 bps against Binance, because it is a different token wearing the same ticker. | standing |
| 011 · the hunt for a third edge | Failed, and the reason is the finding. 26 candidates; best scored +0.94. Best-of-26 on pure noise has a median of +1.11 — our best was below what noise typically manages. | no edge |
| 012 · carry, honestly costed | Turnover was 44.8× book value a year. Fixed, it makes +7.1%. Shelved because its risk model cannot represent a jump. | shelved |
| 013 · the residual delta | Measured at 1.5%, two independent spot venues agreeing to 0.5pp. Found a timezone bug that would have killed the carry book over an eight-hour offset. | standing |
| 014 · execution cost | 37 bp round trip at $10k, of which 29 bp is fees. The way to become insensitive to a cost you cannot control is to stop paying it so often. | standing |
| 015 · survivorship | Measured +6.2pp on three years — then 019 measured −2.9pp on 6.6. Both are ordinary draws. The error was ever treating it as a constant. | superseded |
| 016 · the parameter surface | 70 cells, all 70 positive, smooth and single-peaked. The maximum is meaningless — noise on the same grid produces a better best cell than ours. | standing |
| 017 · six years instead of three | The drawdown is 2.5× what three years suggested. Its bear-market conclusion was later narrowed by 024. | corrected |
| 018 · funding is structural | Funding costs the book 8.3 points a year. Also caught a six-year carry result that was pure missing data — a leg returning exactly nothing for five years is a data problem, not a result. | standing |
| 019 · the Binance archive | 6.6 years, 742 perps, 148 of them delisted and kept. The first t above 2. Found that the archive pads dead contracts with frozen prices, which deflates every volatility estimate downstream. | landmark |
| 020 · the hedge over six years | 1.02% on the book's legs — better than assumed — but SOL lost 25.13% of its hedge in one day during FTX. And 11 legs were never hedgeable at all. | standing |
| 021 · cleanup | Dissolved the venue “contradiction” and measured tokenised-equity contamination at 16% of 2026 slots. Its spot-volume section is retracted — see 027. | part retracted |
| 022 · implementation drift | The live book was not the tested rule. Daily instead of weekly re-rank; an off-by-one that published XMR at +3.91% when it was −1.38%; a launcher overriding a measured account floor. | standing |
| 023 · the tape was aimed wrong | The recorder was taping a different universe from the one the book trades. The only mistake in this file that could not be recalculated — nobody sells you the order book of a day that has passed. | standing |
| 024 · the 2018 bear | 10.25 years of BitMEX. The rule lost 5.3% while bitcoin fell 73.4%. And it replicated 018's funding cost to two significant figures on unrelated data. | landmark |
| 025 · sizing and exits | Three ideas pre-registered in writing, none adopted. Volatility is where the returns are: the most volatile quarter pays +0.744%/day against +0.348% for the quietest. | not adopted |
| 026 · the order book, pilot | 158,517 rows on BTC are worth 4,723 independent observations. A t computed on raw ticks would be five times too large. The spread is 4% of the fee. | pilot |
| 027 · the join that was not a join | 324 pairs joined to 715 contexts by position, wrong for a fortnight, every number plausible. Retracts 021's headline claim. | correction |
| 028 · H2 refuted on 6.6 years | Volatility targeting: +0.154 of Sharpe on three years became +0.067 on 6.6, and the drawdown improvement did not shrink, it vanished. The overlay buys insurance in the good years and lapses the policy in the bad one. | refuted |
| 029 · the two-day hold | Exiting failed breakouts sooner more than halves the drawdown in every year tested. Still not adopted — the forward record arbitrates, not another backtest. | watching |
| 030 · the 2018 era, on Binance spot | Holding the whole top 20 lost 91% while selecting from them made money — the selection claim replicated on a fourth dataset. The 2018 line itself sits at a median of eight eligible markets and is reported as “cannot say”. | landmark |
| 031 · two datasets, one era | The “independent replication” in 029 was two venues quoting the same three years. On genuinely new time the rank correlation falls from +0.95 to +0.25. The unit of evidence is the independent period, not the file. | correction |
| 032 · there is no more history to buy | Bitfinex goes back to 2013 and keeps its dead — and those extra years hold a median of one market a day. On 3 January 2016 exactly two coins on earth traded $1m a day. Poloniex, the obvious alternative, has deleted 29 of 30 delisted markets and is disqualified. | landmark |
| 037 · the survivorship tax, priced | The same rule, the same days, two universes. Deleting the 54 delisted markets lifts CAGR from +22.3% to +28.6% and Sharpe from +1.08 to +1.28. Block bootstrap: +1.7% to +13.3% of CAGR, +0.06 to +0.33 of Sharpe, helping in 99% of draws. The bias is a fifth of the headline — and it halves at top 40, so it is a property of the data and the position size together. | landmark |
| 036 · the permutation null replaces a null I invented | Findings 011, 016 and 029 measured grid-search luck against noise scaled at 0.15σ — a number I chose and never checked, while finding 024 next door already used a proper shuffle. Circularly shifting the return matrix destroys the signal and keeps everything else. Searching 70 cells buys +0.377 of Sharpe for free; the best cell found +0.303. The observed lift is below the null's MEDIAN, and every old verdict survives because the invented bar was the harsher one. | correction |
| 035 · the two-day hold cannot be settled by waiting | An outside reviewer asked for the power calculation nobody had done. The gate had 10% power — a test that could not pass. Worse, the metric was ambiguous and the two readings have opposite signs (+0.273 and −0.295). And the mechanism was wrong: bars 3–5 earn +1.117% a trade, so the short hold is not cutting losses, it is cutting the right tail. Resolving it needs ~8.7 years. Retracts 029's mechanism claim. | correction |
| 034 · the beta question, answered | Beta to bitcoin is +0.17, not the 0.8–1.2 feared — because beta tracks deployment and the book is in cash 84% of the time. The hold-all-20 control is beta 1.145 and loses 22% a year. Alpha lands at +22.4 / +22.9 / +22.6% on three datasets. Not beta timing either — but beta is higher when bitcoin falls, the momentum-crash profile. | landmark |
| 033 · Bitfinex, a fifth venue for 2017–2020 | A 17,576-probe census found 268 pairs, 204 of them dead. Sharpe 1.29 against Binance spot's 1.28 on the same years — with the two traded universes overlapping by only 26%. 2018 is the first bear year to clear its own depth bar: −4.4% net while bitcoin fell 71%, matching BitMEX's independent −5.3%. Not significant alone (t +1.79); the worth is the agreement. | landmark |
This is the part of the platform that is actually worth something. None of it was designed in advance; each rule exists because a result died on it.
| Rule | The death that earned it |
|---|---|
| Rank on volatility-adjusted lift, so the do-nothing baseline is exactly 0.000 | 001 |
| Count only independent observations | 003, and again at 026 — a day of tick data is the same mistake wearing a bigger number |
| Require stability across periods, not one in/out split | 003 |
| Record both directions, or the baseline is the market | 002, 006 |
| Check how the sample was chosen before believing anything measured on it | 004, 006, 008 |
| Re-cost at every fee tier | 001 |
| Model the carry, not just the price | 008 |
| Include what died | 008 |
| Run a broken-shift control | 008 |
| Correct for the search itself | 011 — a 0.94 found by testing one idea and a 0.94 found by testing twenty-six are completely different pieces of evidence |
| No order placement until the statistics justify it | standing — absent code cannot fire by accident; disabled code can |
| Decompose any total before believing it | 018 |
| A correction is not a constant — measure its dispersion first | 019, 021 |
| Match the horizon to the question | 019 — reporting a 6.6-year drawdown as a one-year one printed “0% chance of a losing year” three times |
| The live book and the backtest must be the same rule, and that has to be checked | 008, 022, 023 — four separate drifts found this way, none catchable by inspection |
| A rule that exists in two programs will eventually be two rules | 023 — the fix is not vigilance, it is a single definition both programs call |
| A variant must reduce to the incumbent when its new feature is switched off, and that has to be asserted | 025 — one assertion found a silent change to the re-entry rule that nothing in the output looked wrong about |
| A total cannot see one missing part | the tape, 13 Aug — one dead market out of twenty-four moved no number the recorder printed, for four hours |
| A control must be able to fail, and one draw is not a control | 024 — one shuffle read as a pass; two hundred showed 10% of them beating the real book |
| Data that cannot be re-collected is collected wider than it is needed | 023 — the tape covers thirty markets so a name entering the traded twenty already has weeks of history |
| A join whose two sides are different lengths is not a join | 027 — both arrays came back, both parsed, every downstream number was plausible, and it was nonsense for a fortnight |
| Two datasets that overlap in time are one dataset — the unit of evidence is the independent period, not the file | 031 — we checked the venues were different and never checked the years were; three files covering one era give the confidence of one era while looking like three |
| Before adding a data source, measure the cross-section depth it offers in the years being bought — not the date of its first bar | 032 — a first bar in 2013 bought us one market a day for four years; the date is marketing, the depth is the evidence |
| A venue that does not serve its delisted markets is not a weaker data source, it is a disqualified one | 032 — Poloniex has the best-looking pre-2018 cross-section anywhere and has deleted 29 of 30 dead names; a backtest on it would be measuring which coins are still alive in 2026 |
| When two datasets cover the same period, measure how much their traded universes actually overlap before calling their agreement a replication | 033 — 031 said to check the calendars; this says to check the instruments too. A 26% overlap and a 96% overlap are completely different pieces of evidence and look identical in a summary table |
| A performance number without its beta is not a result, it is a rumour | 034 — every headline here stood for ten days before anyone asked how much of it was simply owning the asset class. The answer was reassuring; the ten days were not |
| A pre-registration a reasonable reader can take two ways is not a pre-registration — state the metric as a formula, not a phrase | 035 — "the paired difference in Sharpe on the daily difference series" is two quantities, and on the same data they have opposite signs |
| Compute the power before writing the gate | 035 — a threshold chosen by reasoning is a guess wearing a decimal point. Mine had 10% power; a year would have been spent failing a test that could not pass |
| A null you designed is not a null — derive it by destroying the thing under test and leaving everything else intact | 036 — if you can name the number you picked (0.15, 200 shuffles, twenty draws), ask what happens at half and at double it. No answer means you have a simulation, not a test |
Everything else on this page is a backtest. This is the only test that cannot be searched, because it has not happened yet.
Day 5. It needs months, not analysis.
Recording since 10 August, correctly aimed since 13 August, and now pre-registered: four hypotheses, Bonferroni at the 1.25th percentile, and a 30-day minimum before any of them is run.
The adoption bar is set at execution timing, not alpha — the measured effect is a fifth of a taker round trip, so it cannot be a strategy at these fees, but improving a trade already decided only needs to beat zero.
lab/prereg_book.mdFinding 029's two-day hold, run beside the traded rule and traded by nobody. Same markets, same ranking, same day — it differs only in when it lets go, so the market move common to both cancels and what is left is the exit alone.
No backtest can settle it: it was the best column of a 70-cell grid, and finding 011 measured that the best of 70 meaningless variants wins by about +0.6 of Sharpe on noise. The pass mark was written before the first day was recorded — 120 days on which the two books actually DIFFERED, a bootstrapped paired Sharpe whose 5th percentile clears zero, and a drawdown no worse. Fail any of them and the five-day hold stands.
lab/prereg_shadow.mdVolatility targeting was finding 025's only near miss: +0.154 Sharpe and a drawdown cut from −15% to −12%, on three years — which is not enough data to adopt on.
A pre-registered confirmation of one hypothesis on 6.6 years, so it carries no further multiple-testing cost.
It needs something that can represent a jump. A better Sharpe is not evidence, and in this framework it never can be.
Four of the five hedgeable Hyperliquid markets hedge through bridged wrappers. UBTC is not BTC. Finding 013 measured perp against Gate and OKX spot, never against the venue's own wrapper.
Hyperliquid pays persistently more than Gate — UNI +7.3%, NEAR +7.2% — worth about 2.8% a year net. Finding 010 had 22 days, which is all the venues will serve. It has to be recorded forward.
Two different dates, and conflating them is how people lose money.
311 test cases across six suites. The designated strategy measured on four venues spanning 2016 to 2026, with the delisted contracts kept in and real funding charged.
The order-book tape and the paper log both started 10 August. Day 5 of roughly 180. This is the only thing that moves the t-statistic.
Create an agent wallet, place one minimum-size order by hand, then let LONA place one behind a command that refuses to exceed a few dollars. Proves the payload, the fills, the fee accounting and the funding maths. Cost of being wrong: a few dollars.
Big enough that the fills, slippage and funding are real. Small enough that six months of being wrong costs less than the information is worth. This is the forward test, with skin in it.
Three months gives about 90 forward observations. Six is what I would want before sizing up. If the forward record disagrees with the backtest, that is the answer and finding 008 gets retired like the other twenty-six.
The honest answer to “can this trade real money yet” is no, and the reason is not the statistics. The statistics are about as good as this project can make them: t = 2.4 on 6.6 years of Binance, t = 2.39 on 10.25 years of BitMEX, alpha of +22% on three datasets against a traded beta of 0.17, and a permutation null saying the parameters were not found by searching.
The reason is the machine. On 16 August 2026 an update replaced a launcher script and silently deleted a hook that lived only on the recording machine. The daily plan stopped. The tape kept running, the site kept publishing, the status file kept saying everything was well, and nobody noticed for four days. With no money on, that cost four days of record. With money on, it is an open book and nothing watching it.
Four conditions, pre-registered in lab/prereg_live.md and
counted in code by GoLiveGate.cs from the append-only journal:
Clearing all four permits that single hand-placed order. It does not permit automated trading, and there is no order-placement code in this build to permit. Method rule 11: absent code cannot fire by accident; disabled code can.
The count is published on every run and shown on the terminal, including the days it is short, so the gate cannot be quietly moved. On the day it was written it stood at zero of four.
The practice page runs the designated strategy against LONA, an imaginary coin generated in your browser from a random seed. There is no exchange, no account and no way to deposit anything. The generator is calibrated to statistics measured on 46,779 real market-days and checked in a headless browser against the shipped file — 7.72% daily volatility, fat tails, negative autocorrelation, and the +0.90%-versus-+0.06% split that is the whole edge. It has a switch that turns the edge off, and the rule loses money when you do.
LONA-RECORD.bat. Leave the window
open and do not click into it (Windows console QuickEdit freezes the
process on a click). Every day it is not running is order-book data that is
gone permanently.LONA-STATUS.bat. Reads the
answer off the files, so it works when nothing is running at all, which is
the case worth getting right. It also names any single market that has gone
silent while the rest are fine.LONA-PORTFOLIO.bat. Downloads the
candles and the funding records, then prints the study. The funding step
loops until complete because the venue rate-limits it.LONA-RISK.bat. Pushes a sample
book through every limit so you can watch each one fire. Nothing is sent.LONA-VERIFY-TAPE.bat on yesterday,
every day. Reports the largest gap per stream and checks every counterparty
id resolves.LONA-PLAN.bat. Writes
today's book to the append-only journal and pushes the terminal and status
file to the phone.Do not create the Hyperliquid agent wallet until it is about to be used. A key sitting unused for a fortnight is a key you have stopped thinking about.
Do not let the machine sleep. Night one captured 46 minutes out of eight hours because it suspended, and a suspended process cannot notice anything, including that it has stopped.
Do not put money anywhere near this. The forward record is five days old.