← All recordsSW-0033 · Crypto · 2019-02-01 to 2025-06-30

Cross-sectional reversal

Void
90Versions testedevery combination, fixed in advance
+0.29Best versionreturn adjusted for risk, per year
+0.65Luck alonewhat the best scores if nothing works
0.177Scorehas to reach 0.950

Result against chance

Best version found+0.29What luck alone gives+0.65Smallest edge visible+1.64
If the best version cannot beat what luck alone produces from the same number of tries, there is nothing there. The third bar is the smallest real edge this test could have detected: anything below it is invisible to the test, and that limit is stated rather than hidden.

Spread across every version

-0.80median -0.21+0.29zero
Every version tested, worst to best. The box holds the middle half. Showing only the best bar is how noise gets sold as skill. 23% of versions finished above zero.

Why this record is void

Weight-allocation bug in sweep/cross_sectional.py: assets outside the point-in-time universe scored -inf and therefore sorted first, so the entire short leg of every long_short variant (45 of 90) was allocated to non-investable assets whose returns are zeroed. Verified by replay: the stored returns matrix reproduces exactly under the buggy allocator (max abs diff 2.6e-08) and diverges materially under the fixed one (correlation 0.54-0.69; one variant moves from 0.187 to 0.468 annualised Sharpe). The mean_touch (long-only) branch was unaffected, but the corrupted variants are counted in n_trials, in the expected-maximum-Sharpe null and in the PBO combinatorics, so the primary metric is not valid. Pre-registration and its Bitcoin timestamp remain valid; only the execution failed. Fixed and covered by tests/test_cross_sectional_weights.py; re-registered under new IDs.

Noticed afterwards: a hypothesis, not a finding

Post hoc observation, carried forward to the replacement sweeps: the mean_touch exit rule is long-only with gross exposure 2.0, not dollar-neutral, so it is not market-neutral and does inherit the crypto trend. In all three sweeps the highest-Sharpe variant came from this branch. In SW-0034 that variant compounds to 0.22x of initial capital with a 100% maximum drawdown despite an annualised Sharpe of 0.989, losing between 37% and 53% in each of four hours during the LUNA/UST collapse (2022-05-11 to 2022-05-13; verified against BTCUSDT bar timestamps, not a data error). Sharpe and the deflated Sharpe ratio are computed from arithmetic moments and do not see the capital path.

Sealed on the Bitcoin blockchain before the test ran.
sha256 e64ad6e643c7f7e49dbf504a783130dc02f1bee4f7d39dd36c45e79d122fb5c1
← SW-0032SW-0034 →