Skip to content

Undetectable, not absent

147 BTC and crypto strategy candidates, none that survives a correction for all of them. How the ledger behind that count works, and why its conclusion is "not seen at this cost", not "no edge".

  • Method
  • Statistics
  • Crypto
  • Cryptotrader

Cryptotrader asks one question: can a retail Kraken account hold and trade BTC better than simply holding it, after real costs? After 147 strategy candidates the answer it records is no detectable edge under this account’s constraints. This note is about the last part of that answer, and the ledger that makes the first part a count rather than an impression.

Every figure below is read from the repo on 2026-10-19. The ledger is still moving.

Why there is a ledger

On 15 September a rule that trades BTC funding-rate extremes passed its test at p 0,0059. Corrected for the two rules in its own family, 0,012: a pass, and it was accepted. Corrected for the 21 candidates registered that day, 0,124: not significant. The ledger was started that afternoon, on one sentence: a result is only as strong as the number of things tried before it. The rule also failed two replications: the same day on an earlier exchange history (p 0,17), and two days later pooled across 154 other coins (p 0,82).

Three rules

Register before the data. Sample, statistic and pass rule are committed before the run, and the commit order is the proof. A registration on data that already exists says what of it has been seen.

Read once. A registered test is read once, at a date or a sample size fixed in advance. One registered in October freezes its threshold no earlier than 29 December and is read at about 430 events or on 30 June 2027, whichever comes first.

Count every trial. The 147 include 91 from before the ledger, counted as the documents of the time recorded them; 82 of those are configurations from grid searches. Grid configurations are correlated, so dividing by 147 is the conservative end. An unregistered exploratory scan is labelled as such and not counted, even when it produces p-values; it can suggest a test, and the test it suggests is registered and counted. An exploratory arm registered alongside a test is counted. Descriptive re-runs, calibrations and synthetic data are not trials. A test withdrawn before its read counts zero.

Against that count, the smallest p in the ledger’s result column, 0,0024, becomes 0,353. A false-discovery-rate correction over the 20 ledger rows that carry a usable p does pass that one, and the ledger reports it beside Bonferroni, not instead of it. The same candidate came out at +3,6 bp net of a 14 bp round trip, with an interval of −9,5 to +16,0: break-even.

One test, start to finish

The latest test asked whether an altcoin perpetual reverses or continues in the hour after a burst of forced liquidations: at least 20 in one hour on one coin, Kraken, 41 coins, mid-2022 to October 2026, measured against BTC over the same hour.

It was registered on 13 October; its data pull ran until the 15th. Before any return was read, its control turned out to be unbuildable: the comparison windows it named existed for only 3 840 of 12 897 events, and its null ignored that events cluster by week. It was withdrawn unread on 19 October and counts zero. Our reading of that: withdrawing a test costs nothing only before the read; after it, withdrawing would be choosing the result.

Its replacement was registered the same day: each event compared with the same hour shifted 60 to 180 days on its own coin, every valid shift averaged, a week-clustered bootstrap, a pass at one-sided p ≤ 0,0125 for each of the two directions. The power was written down before the read: about 6 % at +1,6 bp, the gross point estimate of an earlier BTC liquidation test that was itself not significant; about 99 % at +10 bp; above 99 % at 14 bp, the cost of a round trip. The go to read it was given with the 6 % in front of it. Controls ran first and passed: 200 fake event sets through the whole gate, a planted effect found in 200 of 200, a sign check, and a broken clock that had to fail.

It was read once, the same day. Reversal: −0,40 bp, 95 % interval −5,01 to +3,77, p 0,571. Continuation: p 0,428. Smallest detectable effect: 6,3 bp. After costs: −13,9 and −14,1 bp per trade. The registration had predicted no replication; it held, and the line is closed.

What “undetectable” claims

That read says there is no one-hour effect above about 6 bp in either direction. It does not say zero. An effect of +1 to +4 bp would still be undetectable by it, and would not pay a 14 bp round trip if it were real.

The repo’s other negative results have the same shape. Intraday BTC structure measured at most 0,8 bp per trade at 1 to 30 minutes, against the same 14 bp. For daily BTC rules the smallest edge the existing history can show is 10 to 44 bp per day in the market; the limit there is the length of the history, not the fee. Each limit is written down as a wall: the number, the source, and what would reopen it, such as a cheaper round trip, a longer independent history, or a kind of data no wall has seen. A script refuses a new design that sits inside a wall unless the design names the wall and the condition it now meets.

So the result is a statement about this account: Kraken, its fee tier, and the history that exists. A different venue, cost or data type is a different question, and the walls say which.

What this note does not claim

It does not claim that crypto markets are efficient, or that no strategy pays. It claims that none of 147 was found worth doing under these constraints, at the size these tests could see. The one result the repo kept is about cost, not prediction: posting at the best price and crossing after 300 seconds saves about 30 bp per side at Kraken’s entry fee tier (the highest fees). That figure is simulated; no real order has tested it yet.

← all notes

esc
↑↓ nav ↵ open esc close