The Bid & Ask

Quotations, Dispatches, and the Daily Tape

Thursday, August 13, 2026

The record

Null results

Running record of theses we tested and discarded, why they failed, and what data / artefacts to look at if anyone wants to re-litigate the question later. Keeping this list is as important as keeping the working signals — it stops us re-investigating dead ends and lets a future researcher see *how* the conclusions were reached.

59 theses tested and rejected. Each entry states what was tried, how it was measured, and why it failed. Published because a strategy record that only shows what worked is not a record.

Rejected theses
#Thesis SampleValidator
1 Volatility squeeze 17,774 research/squeeze_validate.py
2 Pre-FOMC drift 130 research/pre_fomc_validate.py
3 Uptrend pullback research/pullback_validate.py
4 Momentum continuation research/momentum_validate.py
5 Industry-relative momentum (at 4-week lookback) 1 research/industry_momentum_validate.py
6 Earnings-reaction reversal (anti-PEAD) 489 research/earnings_reversal_validate.py
7 Beat-persistence pre-earnings drift 7,660 research/beat_persistence_validate.py
8 Sector ETF mean-reversion 203 research/sector_reversion_validate.py
9 52-week-high breakout 18,183 research/high_52w_breakout_validate.py
10 Volume accumulation (above-200DMA + 20d-vs-90d volume spike) 2,074 research/accumulation_validate.py
11 Cross-sector momentum 498 research/cross_sector_momentum_validate.py
12 Analyst-upgrade cluster 681 research/analyst_upgrade_cluster_validate.py
13 PEAD × sector tailwind (combination) 597 research/pead_sector_tailwind.py
14 Insider cluster buying 0 research/insider_cluster_validate.py
15 Classical candlestick patterns (single- and three-bar) 278,076 research/candlestick_patterns.py
16 Cup and handle (O'Neil 1988) 13,124 research/cup_handle.py
17 Double bottom / double top 31,116 research/double_bottom_top.py
18 NR7 / inside-day breakout (Toby Crabel 1990) 655,737 research/nr7_breakout.py
19 Cross-pattern survey: classical chart patterns research/flag_pennant.py
20 Wedge (rising / falling) research/wedge.py
21 Gap-pattern survey (breakaway / runaway / exhaustion / island) research/gap_patterns.py
22 Classical oversold oscillators (RSI / Williams %R / MFI / Stochastic) 422,148 research/oversold_indicators.py
23 Failed-breakdown / bear-trap 24,204 research/failed_breakdown.py
24 Bullish RSI / MACD divergence (single-name timing trigger) 41,288 research/bullish_divergence.py
25 Consensus capitulation (stacking triggers in the family) 1,401 research/consensus_capitulation.py
26 Relative drawdown vs SPY — critical macro overlay 9,414 research/relative_drawdown.py
27 VIX regime overlay — sharper macro filter 488 research/vix_regime_overlay.py
28 Bullish OBV (volume-flow) divergence 9,013 research/obv_divergence.py
29 Bullish divergence × consensus — highest-conviction stack 225 research/div_consensus_intersect.py
30 Volume climax (single-day extreme volume + down day in drawdown) 20,767 research/volume_climax.py
31 Bearish RSI / MACD divergence — first real SHORT alpha in the repo 18 research/bearish_divergence.py
32 Sector-relative drawdown overlay research/sector_relative_dd.py
33 Golden cross (lagging trend confirmation) 13,243 research/ma_cross.py
34 Death cross + volume confirm + deep drawdown → strong long signal research/ma_cross.py
35 Deep-drawdown bounce (capitulation cohort, no MA dependency) 31,399 research/drawdown_bounce.py
36 Bullish-engulfing × drawdown (short-horizon variant) 26,146 research/bullish_reversal_combo.py
37 Volatility Contraction Pattern (Minervini) 1,213 research/vcp.py
38 Pocket pivot (O'Neil / Morales) 134,049 research/pocket_pivot.py
39 Rectangle / horizontal-range breakout 5,132 research/rectangle_breakout.py
40 Ascending / descending triangle (isolated) 1,335 research/triangle.py
41 Wyckoff spring / liquidity-sweep reclaim 24,124 research/wyckoff_spring.py
42 NR-cluster breakout (consecutive narrow-range days) 2,900 research/nr_cluster.py
43 Failed-pattern fade survey 18,046 research/failed_pattern_fade.py
44 Survivor × context stacking sweep 2,130 research/survivor_context_sweep.py
45 Stage-2 trend gate (Weinstein / Minervini) as conditioning filter 137,531 research/stage2_gate.py
46 Meta-finding: chart pattern survey, take 2 202
47 Burst + volume continuation (Nanexa-style chain) 8,080 research/burst_continuation.py
48 Entry-discount sweep across scanner cohorts research/entry_discount.py
49 Burst-chain options-exit grid 718 research/burst_options_exits.py
50 Burst-chain stock-side exit grid 718 research/burst_stock_exits.py
51 Dormant awakening (sustained quiet + sudden spike) 2,309 research/dormant_awakening.py
52 Dormancy window sweep (60 / 120 / 180 / 252 days) 15 research/dormant_awakening.py --window {120,180,252}
53 Turnaround-volume (deep drawdown + sustained volume rise) 11,069 research/turnaround_volume.py
54 Turnaround layer: portfolio backtest (4 universe / weight cells)
55 Per-layer weight calibration sweep
56 Joint weight optimization via coordinate descent
57 Peer-earnings sector sympathy research/experiments/peer_earnings_sympathy.py
58 Vol-of-vol quiet-equilibrium breakout (original sign) 891 research/experiments/vol_compression.py
59 News-sentiment layer (removed from the model) research/news/