Лабораторный журнал: 100+ гипотез, большинство уже мертво.

Большинство контор публикуют только победителей. Здесь всё остальное: математика, бэктест и вердикт по каждой идее, которая не прошла валидацию, включая «топ-стратегии» из курсов за $500–$2,000. Ищите, фильтруйте по области или жмите Случайное вскрытие и проваливайтесь в кроличью нору. Живые стратегии остаются закрытыми.

117
Гипотез задокументировано
61
Убито окончательно
52%
Kill rate: большинство идей не работает
41
Дожили до partial / live
🧪
Бесплатный инструмент · новинка
Протестируйте СВОЮ стратегию в том же движке
Reality Check бэктестит RSI, MACD, ордер-блоки и прочее против контроля со случайными входами. Проверьте, бьёт ли ваша стратегия подброс монеты.
Открыть →
Вердикт

Зал позора

Самые статистически мёртвые идеи из всех, что мы тестировали, ранжированы по t-статистике. Чем отрицательнее t, тем увереннее провал. Большинство продавалось в платных курсах.

  1. 01Bollinger Band lower-touch reversion (as taught)t = −19.9
  2. 02Bullish engulfing at the lowt = −16.6
  3. 03Pin bar / hammer reversal at the lowt = −14.7
  4. 04MACD histogram cross (12/26/9)t = −10.9
  5. 05Wyckoff spring (accumulation-range false break)t = −10.5
  6. 06VWAP bounce (daily anchored)t = −8.0
KILLED · no edgeOpen →

After volume-confirmed dump events, mid-frequency reflexive bounce trades on 30m/1h/2h/4h timeframes carry sufficient edge for systematic deployment with tight SL/TP.

Deep multi-timeframe path-dependent backtest on 90 days of 5min klines across 78 symbols (T1+T2+T3). Realistic filters: BTC regime gate, time-of-day, 60min cooldown. Per-tier breakdown.

30min TF (n=421)WR 38-42%, mean −0.10 to +0.01%
1h TF — best variant (n=479)WR 40-44%, mean −0.00 to +0.06%, monthly +1.0%
2h TF (n=695)WR 34-40%, mean −0.13 to −0.21%
4h TF (n=1089)WR 32-40%, mean −0.19 to −0.27%
Pump filter overlay (skip pumped >30%/24h)no improvement
Best Sharpe across all configs0.03

Initial test on n=100 random sample claimed +16.8%/mo. Bootstrap CI on that sample was ±0.70%, mean +0.41% — statistically indistinguishable from zero. Multiplying noise by 30× trade frequency compounded into a fake-positive projection.

$$ \text{SE}(\bar{r}_{\text{sample}}) = \frac{\sigma}{\sqrt{n}} = \frac{6.5\%}{\sqrt{479}} \approx 0.30\% \quad \implies \quad \bar{r} \pm 0.60\% \text{ at 95\% CI} $$

Mean falls inside zero band. No statistically significant edge.

KILLED
Killed before paper validation. Modules disabled via env, code archived but not running. No live capital deployed.
Never claim edge from a single small sample. Confidence intervals on monthly projections require n ≥ 300 with proper out-of-sample. Compounding noise gives the illusion of signal.
KILLED · sample biasOpen →

Borrowing from Perelman's reduced-length functional from Ricci flow theory, "smooth" price approaches to a signal trigger (low geometric path energy) should correlate with higher follow-through than chaotic approaches.

$$ L(\gamma) = \int_{0}^{\bar{\tau}} \sqrt{\tau}\,\left(R + |\dot{\gamma}|^{2}\right)\,d\tau $$

Discretized for log-price path on 240×1m bars before signal trigger:

$$ L_{\text{price}} = \sum_{k=1}^{N} \sqrt{\tau_k} \cdot \left( \sigma^2_{k} + r_{k}^{2} \right) \cdot \Delta\tau $$

Where τ_k = k/N is normalized time position, σ²_k is local realized variance in 10-bar window centered on k, and r_k is the log-return at bar k.

Q1 (lowest L) WR on pump-only sample76.1%, avg +4.37%
Q5 (highest L) WR on pump-only sample52.1%, avg +2.53%
Walk-forward TEST > TRAIN (suspicious)+5.52% vs +4.67%
DD reduction vs no-filter−72%
RAVEN filter (pre-condition) pass rate0.50% (25/5000)
Of those, true positives24%, not 49% as CV claimed
GEOFLOW filter applied on top100% removed TPs, kept all FPs
Final P&L−$2.24 / $100 over 12 trades
KILLED
L-distance discriminates within pump-only labeled set, but the relationship inverts on the real-world distribution. FPs in the smart-money universe have lower L than TPs. The earlier "Sharpe 18" was a sample-bias artifact. Curated samples deceive.
A filter that works on labeled positives may not generalize. Always validate on the realistic operating distribution, including false positives.
PARTIAL · weak real edgeOpen →

The internal scoring function of a legacy strategy (V14 QUANT, stored in 14.6M signalsnapshots) may be overfit. Higher quality scores may not correlate positively with realized P&L.

Random sample 5000 snapshots. For each: fetch forward 1m klines, simulate entry at the snapshot's own entryTop/Bot zone, walk forward bar-by-bar checking SL/TP/timeout. Compute realized pnlPct per trade. Then rank-correlate features vs outcome.

Baseline WR53.1%
Baseline avgPnl per trade (gross)+0.305%
Low quality (Q1, < threshold)WR 60.1%, avg +0.521%
High quality (Q5)WR 50.6%, avg +0.273%
timing="MISSED" subsetWR 63.5%, avg +1.048%
Walk-forward decay TRAIN→TEST−18% per month → −5% per month
$$ \text{Corr}(\text{quality}, r_{\text{realized}}) = -0.12 \quad (p < 0.01) $$
PARTIAL EDGE
Real but small. Inverting the strategy's own scoring captures a +3-6%/month edge at 5× leverage. Strong decay TRAIN→TEST suggests the edge is regime-dependent. Worth deploying as overlay filter, not standalone.
Even "your own" scoring system can be wrong. Test the inverse. Overfit detection often hides in plain sight.
PLANNED · implementationOpen →

Following Sornette's Log-Periodic Power Law model, financial bubbles exhibit faster-than-exponential growth with log-periodic oscillations preceding a critical time tc. We test whether crypto's accelerated bubble cycles (days–weeks rather than months) yield tractable tc predictions on BTC, ETH, and top alts.

$$ \ln p(t) = A + B(t_c - t)^{m} + C(t_c - t)^{m} \cos\left(\omega \ln(t_c - t) - \phi\right) $$

Parameter ranges from Sornette's published constraints:

  1. Rolling LPPL fit on 1h log-prices, window 30–90 days, refit every hour
  2. Validity gates: 0.1<m<0.9, 6<ω<13, R²>0.9, tc within 1–14 days forward
  3. Parameter stability check across multiple window shifts
  4. Multi-asset confluence (3+ synchronous bubble signals = strong)
  5. Entry: SHORT setup 2–5 days before tc
  6. Exit: at tc or on LPPL fit breakdown
PLANNED
Implementation queued. Edge probability estimated 30–50% based on Sornette's published track record. Crypto-specific high-frequency LPPL with multi-asset confluence has no public retail-grade implementation we are aware of.
PARKED · n=3Open →

Binance MONITORING-tag announcements (volatility-warning labels) are preceded by detectable volume + range anomalies in the 6h window before the public announcement. If true, a pre-event SHORT detector could capture the post-announcement drop before the crowd reads the news.

Phase 0: scrape Binance CMS catalog (catalogId=49). 20 pages × 50 articles. For each: identify coin, check if it has Binance USDT-M futures listing, fetch 1m klines spanning [T-6h, T+1h] around announcement. Compute pre-event drift, volume ratio, range expansion.

Articles fetched16 MONITORING tags
With futures-tradable coin4
With sufficient kline history3
Pre-event drift direction3/3 DOWN (−2.3%, −13.0%, −19.0%)
Sample size for inferencen=3 — insufficient

100% downward drift in pre-event window is suggestive but n=3 is noise. Bootstrap 95% CI on n=3 spans entire ±50% range.

PARKED
Hypothesis remains UNTESTED, not rejected. Need n ≥ 30 via archive.org scraping or spot-price analysis. Re-attempt when broader historical data sourced.
Promising directional signal (100% down-drift) at n=3 means nothing. Statistical significance starts at n ≥ 30 for non-parametric tests, n ≥ 100 for any robust claim.
KILLED · execution mismatchOpen →

Top-PnL Hyperliquid traders publish every position on-chain (HL's order book is fully transparent). Mirroring their entries to Binance USDT-M futures should capture a fraction of their edge — particularly on majors (BTC, ETH, SOL) where slippage is minimal.

Identify top-20 wallets by 30-day PnL on HL. WebSocket listen to their position changes. When a tracked wallet opens a position above $100K notional, fire a mirroring order on Binance same coin, same side.

  1. Latency mismatch: HL whale fills are typically maker-limit at deep liquidity. Any follower with public-API latency enters 0.3-1.5% worse than the originator on average.
  2. Position duration mismatch: Whales hold hours-to-days with average DCA-in over multiple fills. Our single-shot mirror catches only the entry tip, exits poorly.
  3. Wallet attribution: Same person operates multiple wallets. Composite NET exposure ≠ individual wallet signal.
  4. Selection bias: "Top 30-day PnL" includes survivorship + recency bias. Wallets fall off the leaderboard the moment they have a drawdown.
  5. Reverse-MEV risk: When public HL whale wallets are watched, they sometimes intentionally fake entries to trap copy-traders.
KILLED
Tested in earlier sessions, failed. Hard rule established: never re-propose HL wallet-copy strategies regardless of who suggests them. Architecture flaw, not parameter flaw.
Transparent doesn't mean tradeable. Public information that requires faster execution than the originator already has zero edge for slower followers.
KILLED · adverse selectionOpen →

Binance DELISTING announcements (catalogId=48) trigger immediate panic dumps. Auto-shorting the announced coin within seconds of announcement should capture −15 to −40% over 24-72h.

MONITORING tags (catalogId=49, BURST-class strategies) are different — they happen pre-announcement with intact liquidity. DELISTING auto-short specifically refers to acting AFTER public announcement, which has structural reasons to fail.

KILLED
Hard rule: never auto-short on DELISTING announcements. MONITORING (different category) remains a valid signal source under different mechanics.
Reactive shorts on widely-broadcast events are race-conditioned against the entire market. Edge requires either earlier information or different mechanics (pre-announcement detection like MONITORING 2.0).
KILLED · −8.94%/7d liveOpen →

Aggregating signal feeds from multiple "smart money" sources (HL alerts, on-chain whale flows, exchange leaderboards) into a unified scoring system should produce above-baseline performance through diversification of signal sources.

Period7 days live, Q1 2026
P&L−8.94%
Win-rate~38%
Average loss size2.4× average win size
KILLED
−8.94% in 7 live days. Killed and replaced. Lesson reinforced for all future copy-style approaches.
Signal sources presented as "independent" rarely are. Test correlation between source returns before aggregating. Diversification doesn't help when underlying signals share hidden common factors.
PARKED · infrastructure gapOpen →

Sub-second mean reversion on tick data is profitable for sufficiently fast operators.

Pivoting to mid-frequency (1–5min hold) as accessible alternative for the broader retail/prop universe.

PARKED
Real edge exists in this space but is structurally unreachable without enterprise-tier infrastructure. Not killed; revisitable if scale and infra justify the investment.
KILLED · regime break Open →
#

BTC and ETH log-prices are cointegrated; the stationary spread mean-reverts, so trading the z-score of the residual yields market-neutral edge independent of direction.

Step 1 — estimate the hedge ratio $\beta$ by OLS on log-prices:

$$ \ln P^{ETH}_t = \alpha + \beta\,\ln P^{BTC}_t + \varepsilon_t $$

Step 2 — test the residual for stationarity (ADF). Trade the z-score:

$$ z_t = \frac{\varepsilon_t - \mu_\varepsilon}{\sigma_\varepsilon}, \qquad \text{enter when } |z_t| > 2,\ \text{exit at } z_t \to 0 $$

Rolling 90-day window, refit $\beta$ daily, ADF gate at $p<0.05$. Path-dependent replay on 1h bars, funding + 6 bps round-trip fee applied to both legs. 2024–2026 out-of-sample.

ADF passes (window stationary)63% of windows
In-sample spread Sharpe1.4
Out-of-sample spread Sharpe0.11
Mean reversion half-life11–40h (unstable)
Net of 2-leg fees + funding− EV
KILLED
The pair is correlated, not durably cointegrated. Spread half-life drifts and $\beta$ re-rates; net-of-cost EV is negative out-of-sample. Classic stat-arb decays once the relationship is widely known.
Cointegration is a property of a window, not of an asset pair. In-sample ADF passing tells you nothing about the next window. Always cost both legs.
PARTIAL · weak, decays Open →
#

A market-neutral basket of correlated alts has a residual that follows an Ornstein–Uhlenbeck process; trading deviations beyond a calibrated band captures reversion with positive expectancy.

Model the de-meaned basket spread $X_t$ as:

$$ dX_t = \theta(\mu - X_t)\,dt + \sigma\,dW_t $$

Mean-reversion speed $\theta$ gives the half-life, which sets holding time:

$$ t_{1/2} = \frac{\ln 2}{\theta} $$

Optimal entry band scales with the stationary standard deviation $\sigma/\sqrt{2\theta}$.

Estimate $\theta,\mu,\sigma$ by MLE on a rolling window. Enter at $\pm1.5$ stationary-sigma, exit at $\mu$, hard time-stop at $3\times t_{1/2}$. 30 liquid USDT-M alts, path-dependent.

Half-life (median)6.5h
Gross Sharpe (in-sample)1.6
Net Sharpe (out-of-sample)0.5
Win rate58%
Edge after 4 bps + funding+0.8%/mo
PARTIAL EDGE
A small, real edge survives costs (+0.5–1%/mo) but decays fast as $\theta$ destabilises in trends. Viable only as a low-weight overlay with a strict time-stop, never standalone.
OU is the right model for a basket residual, but $\theta$ is regime-dependent. Size the trade by the estimated half-life, and respect the time-stop — reversion that does not arrive on schedule is a trend.
PARKED · implementation Open →
#

The cointegration failure of static pairs (see N-018) is fixable: let the hedge ratio $\beta_t$ evolve as a hidden state estimated online with a Kalman filter, so the spread stays stationary as the relationship drifts.

State (hidden hedge ratio) and observation (one leg priced off the other):

$$ \beta_t = \beta_{t-1} + w_t,\qquad y_t = \beta_t x_t + v_t $$

Kalman update for the posterior estimate:

$$ \hat\beta_t = \hat\beta_{t-1} + K_t\,(y_t - \hat\beta_{t-1}x_t) $$

Process/observation noise $Q,R$ tuned by likelihood. Trade the standardized innovation $y_t-\hat\beta_{t-1}x_t$. Prototype only — not yet replayed on full out-of-sample with realistic costs.

PARKED
Theoretically the correct fix for N-018’s drifting $\beta$. Parked pending a full path-dependent cost study — the open question is whether the adaptive ratio reduces drawdowns faster than it adds whipsaw. Queued behind higher-EV work.
When a static parameter is the failure mode, model it as a hidden state. But adaptivity is not free — it trades bias for variance, and variance is whipsaw.
KILLED · cost > edge Open →
#

Decompose the alt return covariance into principal components; the top eigenportfolios are systematic risk, the residual (idiosyncratic) returns mean-revert. Trade the residual, hedged against the top factors.

Eigendecompose the correlation matrix $C = V\Lambda V^\top$, keep top-$k$ factors $F$, regress each asset on them:

$$ r_{i,t} = \sum_{j=1}^{k}\beta_{ij}F_{j,t} + \tilde r_{i,t} $$

Trade the cumulative idiosyncratic residual as an OU process (cf. Avellaneda & Lee 2010):

$$ s_{i,t}=\sum_{\tau\le t}\tilde r_{i,\tau},\qquad \text{score}_i = -\frac{s_{i,t}-\bar s_i}{\sigma_{s_i}} $$

Top-5 eigenportfolios as factors on 40 alts, daily refit, dollar-neutral residual book, 1h replay with full two-sided fees + funding + borrow.

Gross Sharpe (residual book)1.9
Turnover~340%/week
Net Sharpe after fees0.2
Eigenvector stability (top-5)low — rotates weekly
KILLED
Gross signal is real (Sharpe ~1.9) but turnover kills it: ~340%/week at crypto taker fees leaves Sharpe ~0.2 net. Eigenvectors also rotate, so the factor hedge is stale. Works for an equities desk at 5 bps, not at crypto cost structure.
A high gross Sharpe with high turnover is a fee-rebate strategy, not an alpha strategy. The cost structure decides which textbook strategies are even reachable.
PARTIAL · filter only Open →
#

The Hurst exponent $H$ distinguishes trending ($H>0.5$) from mean-reverting ($H<0.5$) regimes. Gating an existing momentum book to fire only when $H>0.55$ should cut whipsaw losses.

Estimate $H$ from the scaling of the rescaled range $R/S$ with window length $n$:

$$ \mathbb{E}\!\left[\frac{R(n)}{S(n)}\right] \sim c\, n^{H} $$

Fit $\log(R/S)$ vs $\log n$; the slope is $H$. $H=0.5$ is a random walk.

Compute $H$ on rolling 256-bar log-returns (DFA cross-check). Use as a binary gate on a baseline EMA-cross momentum book across 50 symbols.

Baseline momentum Sharpe0.4
Gated (H>0.55) Sharpe0.7
Whipsaw trades removed−31%
Signal lag from 256-bar window~4h
PARTIAL EDGE
Real as a filter, not a strategy. Gating momentum on $H>0.55$ lifts Sharpe 0.4→0.7 and cuts a third of whipsaws — but the 256-bar estimate lags, so it confirms regimes late. Useful overlay, no standalone edge.
Regime detectors are lagging by construction — they need enough data to estimate the regime, by which time it is partly over. Use them to veto, not to time.
PARTIAL · sizing only Open →
#

Position size inversely proportional to forecast volatility (vol-targeting) improves risk-adjusted return versus fixed size, because realized vol is forecastable even when returns are not.

Conditional variance recursion:

$$ \sigma_t^2 = \omega + \alpha\,\varepsilon_{t-1}^2 + \beta\,\sigma_{t-1}^2 $$

Scale exposure to a target volatility $\sigma^\*$:

$$ w_t = \frac{\sigma^\*}{\hat\sigma_t}\,w_0 $$

Fit GARCH(1,1) per symbol by QMLE, forecast 1-step $\hat\sigma_t$, scale a fixed momentum book to 60%/yr target vol. Compare to flat sizing.

Vol forecast $R^2$ (1-step)0.34
Return (similar)~flat
Max drawdown−41% → −29%
Sharpe0.5 → 0.74
PARTIAL EDGE
Returns roughly unchanged, but drawdown and Sharpe improve materially — because volatility is forecastable ($\alpha+\beta\approx0.95$, strong persistence) even though direction is not. Adopted as a sizing layer, not an entry signal.
You cannot forecast returns, but you can forecast variance. Almost all of the durable, defensible value in quant trading lives on the risk side, not the signal side.
KILLED · latency decay Open →
#

The Cont–Kukanov order-flow imbalance at the best bid/ask linearly predicts the next mid-price move; a fast book-pressure signal captures sub-minute drift.

OFI aggregates signed size changes at the top of book over $[t-\Delta,t]$:

$$ \text{OFI}_t = \sum_{k} \big(\Delta q^{b}_k\,\mathbb{1}_{\Delta P^b\ge 0} - \Delta q^{a}_k\,\mathbb{1}_{\Delta P^a\le 0}\big) $$

Predict the mid-move linearly:

$$ \Delta \text{mid}_{t,t+\delta} = \lambda\,\text{OFI}_t + \eta_t $$

Reconstruct L1 book from the public depth stream, regress next-$\delta$ mid-move on OFI for $\delta\in\{1,5,15\}$s. Net-of-fee replay assuming taker entry.

In-sample $R^2$ ($\delta$=1s)0.21
Predicted move per signal0.6–1.4 bps
Round-trip taker cost~7 bps
Net EV after fees + latency
KILLED
The signal is genuine ($R^2\approx0.2$) but the predicted move (~1 bp) is an order of magnitude below the fee. Capturing it requires maker fills and colocation; at public-API latency and taker fees it is dead. A market-maker’s edge, not a taker’s.
Predictive power and tradeable edge are different quantities. A signal worth 1 bp is worthless to anyone paying 7 bps to act on it.
PARKED · data tier Open →
#

Easley–López-de-Prado VPIN (volume-synchronized probability of informed trading) spikes before volatility events; fading extreme VPIN, or stepping aside, avoids adverse selection.

Over $n$ equal-volume buckets, VPIN is the average absolute buy/sell imbalance:

$$ \text{VPIN} = \frac{\sum_{i=1}^{n}\,|V^{B}_i - V^{S}_i|}{\sum_{i=1}^{n}\,(V^{B}_i + V^{S}_i)} $$

Bulk-volume classification (BVC) on aggregate trades, 50-bucket VPIN. Tested as a volatility pre-warning and as a fade trigger. Blocked by classification noise on public tape.

PARKED
Promising as a risk gate (high VPIN does precede vol), but bulk-volume buy/sell classification on public aggregate trades is noisy without true tick-level signed flow. Parked until a cleaner signed-flow source is sourced; not a standalone fade.
VPIN needs honest buy/sell classification. Inferring trade sign from public bars (Lee–Ready / BVC) injects enough noise to swamp the signal on fast crypto books.
KILLED · adverse selection Open →
#

Quoting symmetric bid/ask around a reservation price with inventory-aware skew, per Avellaneda–Stoikov, earns the spread on liquid alts while controlling inventory risk.

Inventory-adjusted reservation price ($q$ = inventory, $\gamma$ = risk aversion):

$$ r(s,t) = s - q\,\gamma\,\sigma^2 (T-t) $$

Optimal half-spread combines risk and book-arrival intensity $\kappa$:

$$ \delta^{a}+\delta^{b} = \gamma\sigma^2(T-t) + \frac{2}{\gamma}\ln\!\Big(1+\frac{\gamma}{\kappa}\Big) $$

Paper market-maker on 3 liquid alts, inventory cap, $\gamma$ and $\kappa$ calibrated from the arrival curve. Maker rebate modeled, latency penalty applied on requotes.

Gross spread capturedpositive
Fill asymmetry (toxic fills)severe
PnL after adverse selection
Inventory blow-outs on trendsfrequent
KILLED
The model is correct; the infrastructure is not ours. Market making is a latency game — the spread is compensation for adverse selection, and you only win it if you are the fastest to cancel. We are not. Hard rule: no passive MM on public-API latency.
Earning the spread is not free money — it is payment for being run over by informed flow. If you cannot cancel faster than the informed trader can hit you, the spread is a loss.
PLANNED · research Open →
#

Trade arrivals cluster (one trade raises the probability of the next), modelled by a self-exciting Hawkes process. The fitted branching ratio may flag the build-up of a liquidation cascade before price confirms.

Intensity rises with each past event and decays exponentially:

$$ \lambda(t) = \mu + \sum_{t_i < t} \alpha\, e^{-\beta (t - t_i)} $$

The branching ratio $n=\alpha/\beta$ measures endogeneity; $n\to1$ signals criticality.

Plan: fit $\mu,\alpha,\beta$ online by MLE on the aggregate-trade stream per symbol; monitor $n=\alpha/\beta$ as an early-warning of self-reflexive flow. Not yet built.

PLANNED
Queued. Filan & Sornette-style endogeneity ($n\to1$) is a clean criticality measure; the open question is whether it leads price by enough to act on, net of cost. To be tested as a risk-off gate first, not an entry.
Self-exciting clustering is one of the few genuinely robust empirical facts about order flow. Whether it is predictive rather than merely descriptive is the whole question.
PARTIAL · capacity-capped Open →
#

When the perpetual funding rate is persistently positive, a delta-neutral position (short perp / long spot) harvests funding with no price exposure — a pure carry trade.

Delta-neutral funding accrual over holding horizon (8h intervals):

$$ \text{PnL} \approx \sum_{k} f_k \cdot N - c_{\text{spot}} - c_{\text{perp}} - \text{slip} $$

Annualized carry from a flat funding rate $f$ paid 3×/day:

$$ r_{\text{ann}} = (1+f)^{3\cdot365}-1 $$

Rank symbols by trailing funding, hold delta-neutral while $f>$ threshold, unwind on flip. Real spot+perp fees, borrow, and spot-leg slippage applied.

Gross funding harvested (top decile)+20–60%/yr
Net after fees + spot borrow+8–18%/yr
Capacity (before funding compresses)low
Tail risk: funding flips + basis gappresent
PARTIAL EDGE
A real, well-known carry that nets positive (+8–18%/yr on the top decile) but is capacity-capped — size compresses the very funding you harvest — and carries a fat left tail when funding flips into a basis gap. Runs as a low-weight sleeve, fully hedged. This is the public engine behind our free Funding scanner, not a directional edge.
Carry trades pick up pennies in front of a steamroller. They work until they don’t — size small, hedge fully, and respect the flip risk that arrives all at once.
KILLED · already arbitraged Open →
#

The perpetual trades at a basis to spot that must converge via funding; entering when the basis is wide and holding to convergence is a low-risk trade.

Basis is the perp–spot gap, pinned by the funding mechanism:

$$ b_t = \frac{P^{perp}_t - P^{spot}_t}{P^{spot}_t} $$

Enter delta-neutral when $|b_t|$ exceeds a threshold, exit on convergence. Sub-second snapshots across 3 venues, full fees.

Median basis< 3 bps
Episodes with basis > round-trip costrare, <0.4%
Net EV≈ 0
KILLED
The basis is already arbitraged to within fees by faster players almost continuously. Wide-enough dislocations to cover two-sided cost appear only in violent moments — exactly when execution is worst. No durable retail edge.
If a no-arbitrage relationship is enforced by a funding mechanism, the residual is competed down to the fastest participant’s cost. Yours is higher.
PARKED · data gap Open →
#

The 25-delta risk reversal (call IV minus put IV) encodes directional positioning; extreme skew is a contrarian signal for the underlying.

Skew as the IV gap between symmetric out-of-money strikes:

$$ \text{RR}_{25} = \sigma^{IV}_{25\Delta C} - \sigma^{IV}_{25\Delta P} $$

Plan: pull Deribit BTC/ETH option surfaces, build the 25Δ RR term structure, test extremes as contrarian spot signals. Blocked: liquid crypto options exist only for BTC/ETH, so the cross-section is two names wide.

PARKED
Conceptually sound and standard in FX, but crypto options liquidity is confined to BTC and ETH — a two-asset cross-section cannot support a systematic strategy. Parked until alt options liquidity matures. Useful as discretionary context, not a system.
A signal needs a cross-section to be a strategy. Two liquid underlyings is a chart, not a dataset.
PARTIAL · macro only Open →
#

The MVRV Z-score (deviation of market cap from realized cap) marks macro tops and bottoms; extreme readings time multi-month BTC cycle turns.

Standardize the gap between market value and realized value:

$$ Z = \frac{\text{MarketCap} - \text{RealizedCap}}{\sigma(\text{MarketCap})} $$

Historical MVRV-Z on BTC since 2015. Label $Z>7$ as distribution, $Z<0$ as accumulation. Evaluate forward 90/180-day returns from threshold crossings.

Cycle tops flagged ($Z>7$)3/3 historically
Cycle bottoms flagged ($Z<0$)3/3 historically
Sample size (independent cycles)n=3–4
Intra-cycle / tactical useno edge
PARTIAL EDGE
Strong macro context (every historical extreme aligned with a turn) but n=3–4 cycles is anecdote, not statistics, and it gives zero tactical (days–weeks) signal. Used to bias long-horizon risk posture, never to time trades.
On-chain cycle metrics describe four data points. They are a compass for posture, not a clock for entries — and four observations cannot be backtested into significance.
KILLED · overfit Open →
#

A 3-state Gaussian HMM on returns recovers latent bull / chop / bear regimes; conditioning exposure on the most-likely state improves return.

Emissions are state-conditional Gaussians; states evolve by a transition matrix $A$:

$$ P(r_t\mid s_t=i)=\mathcal{N}(\mu_i,\sigma_i^2),\qquad A_{ij}=P(s_t=j\mid s_{t-1}=i) $$

Fit by Baum–Welch (EM); decode the state path by Viterbi.

Fit 3-state HMM on rolling returns, go long only in the inferred high-mean state. Walk-forward, costs applied.

In-sample regime separationclean
Out-of-sample state stabilityflickers
Walk-forward Sharpe0.1
State relabeling across refitsfrequent
KILLED
In-sample the states look beautiful; out-of-sample they flicker and relabel on every refit, so the "regime" you trade is mostly fitting noise. The HMM finds structure in any series, including random walks. Killed.
Latent-state models will always find states. The test is whether the decoded states are stable out-of-sample under refitting — usually they are not.
KILLED · no residual Open →
#

Price loops across three pairs (e.g. BTC→ETH→USDT→BTC) drift out of parity; executing the cycle when the product of rates exceeds 1 locks a riskless profit.

Arbitrage exists when the product of the three exchange rates beats fees:

$$ R = r_{A\to B}\cdot r_{B\to C}\cdot r_{C\to A} > \frac{1}{(1-\phi)^3} $$

where $\phi$ is the per-leg taker fee.

Stream all three books, compute $R$ continuously, simulate atomic 3-leg execution with real taker fees and realistic fill latency.

Raw cycles with $R>1$frequent
Cycles with $R>1/(1-\phi)^3$~0 after fees
Surviving after latency to fill leg 3none
KILLED
After three taker fees and the latency to complete all three legs, the parity gap vanishes before leg three fills. This is the most-watched arb on every exchange and is closed in microseconds by colocated bots. Zero retail edge.
The most obvious arbitrage is the most competed. If a profit is visible in the public order book, it has already been taken by someone faster.
KILLED · look-ahead Open →
#

A discrete wavelet transform separates price into time–frequency bands; trading the denoised low-frequency trend while ignoring high-frequency noise improves momentum timing.

Decompose the log-price into approximation + detail coefficients across levels $j$:

$$ x_t = \sum_{k} a_{J,k}\,\phi_{J,k}(t) + \sum_{j=1}^{J}\sum_{k} d_{j,k}\,\psi_{j,k}(t) $$

Reconstruct using only low-frequency approximation bands as the "trend".

Daubechies-4 DWT, trade the slope of the reconstructed trend. Tested with both batch and strictly-causal (online) transforms.

Batch DWT backtest Sharpe2.3
Strictly-causal (online) DWT Sharpe0.0
Edge sourceboundary look-ahead
KILLED
The impressive backtest was pure look-ahead: a batch wavelet transform uses future bars to denoise the present (boundary effect). Re-run strictly causally, the edge is exactly zero. A textbook reconstruction-bias trap.
Any transform that "denoises" a bar using neighbouring bars peeks at the future at the right boundary. If a backtest needs the batch transform to work, it does not work.
KILLED · same trap Open →
#

EMD adaptively decomposes price into intrinsic mode functions (IMFs); the residual + low-order IMFs form a clean trend tradeable without lag.

Sifting extracts each IMF as the signal minus the mean of its upper/lower envelopes:

$$ h(t) = x(t) - \tfrac{1}{2}\big(e_{\max}(t) + e_{\min}(t)\big) $$

EMD sifting on rolling windows; trade trend = residual + lowest-frequency IMF. Causal vs batch comparison.

KILLED
Same failure class as N-034. Envelope interpolation in sifting is non-causal at the window edge; recomputing EMD each new bar repaints prior IMFs, so live behaviour differs entirely from the backtest. Killed alongside wavelets.
Adaptive decompositions that repaint history when a new bar arrives cannot be traded — what you saw at the edge is not what you get.
KILLED · no stable cycle Open →
#

Markets carry a measurable dominant cycle (Ehlers); estimating its period and phase times entries at cycle troughs and exits at peaks.

Pick the period maximizing spectral power over a rolling window:

$$ \hat T = \arg\max_{T}\ \Big|\sum_{n} x_n\, e^{-2\pi i n / T}\Big|^{2} $$

Rolling DFT / Hilbert dominant-cycle on 1h bars across 30 symbols, enter on inferred cycle phase, costs applied.

Dominant period stabilitychanges every ~30 bars
Phase-timed entry Sharpe0.1
KILLED
Crypto has no persistent dominant cycle — the estimated period jumps continuously, so phase timing is noise. Cycles fit ex-post on any series; out-of-sample the period is not stable enough to act on.
A spectrum always has a peak. The question is whether that peak is the same one bar from now — for crypto prices, it is not.
PARKED · compute Open →
#

SSA decomposes a series into trend, oscillatory, and noise components via the eigentriples of its trajectory matrix; the reconstructed trend is a lower-lag filter than moving averages.

Embed the series into an $L\times K$ trajectory matrix and SVD it:

$$ X = \sum_{i} \sqrt{\lambda_i}\,U_i V_i^\top $$

Group leading eigentriples as "trend", reconstruct by diagonal averaging.

Causal SSA on a sliding window; the open question is whether grouped reconstruction lags less than an EMA of equal smoothness, net of recompute cost.

PARKED
Unlike N-034/035, SSA can be made strictly causal. Parked because per-bar SVD on a long window is expensive and the lag advantage over a tuned EMA looked marginal in spot checks. Revisit if a cheap incremental SVD is wired.
Causal is necessary but not sufficient — a filter also has to beat the cheap baseline (an EMA) by enough to justify its cost.
KILLED · predicts the mean Open →
#

A recurrent LSTM trained on multivariate features (OHLCV, OI, funding) predicts the next-bar return well enough to trade directionally.

Minimizing MSE on returns drives the output to the conditional mean:

$$ \min_\theta\ \mathbb{E}\big[(r_{t+1} - f_\theta(\mathbf{x}_t))^2\big]\ \Rightarrow\ f_\theta \to \mathbb{E}[r_{t+1}\mid \mathbf{x}_t]\approx 0 $$

2-layer LSTM, 40 features, walk-forward train/validate, predict next 1h return; trade sign of prediction with costs.

Direction accuracy (out-of-sample)50.6%
Predicted |return| vs realizedshrinks to ~0
Net of fees
KILLED
Because next-bar return is ~unpredictable, MSE training collapses the network toward predicting zero (the conditional mean). 50.6% directional accuracy ≈ coin flip, well under the fee hurdle. The architecture is irrelevant when the target has no learnable structure.
Deep nets do not manufacture signal. If the conditional mean of your target is ~0, an MSE-trained model will faithfully predict ~0. Pick a target with structure, not a fancier model.
KILLED · no improvement Open →
#

Self-attention captures long-range dependencies a recurrent net misses; a Transformer should beat the LSTM (N-038) on directional forecasting.

Attention re-weights value vectors by query–key similarity:

$$ \text{Attn}(Q,K,V) = \mathrm{softmax}\!\Big(\frac{QK^\top}{\sqrt{d_k}}\Big)V $$

Encoder-only Transformer, same feature set and walk-forward protocol as N-038, tuned over depth/heads.

Direction accuracy50.9%
vs LSTM baseline≈ identical
Overfitting on small crypto historysevere
KILLED
A better function approximator on a target with no signal gives a better fit to noise, not better forecasts. No improvement over the LSTM, and worse overfitting given limited history. Killed.
Model capacity helps only when there is structure to capture. On near-random targets, more capacity buys more overfitting, not more edge.
PARTIAL · filter only Open →
#

Gradient-boosted trees on engineered features (vol regime, funding, OI delta, time-of-day) can classify which signals of an existing book are higher-quality, used as a filter rather than a generator.

The model is an additive ensemble fit greedily to the gradient of the loss:

$$ \hat y = \sum_{m=1}^{M} \nu\, f_m(\mathbf{x}),\qquad f_m \approx -\nabla_{\hat y}\,\mathcal{L} $$

Label baseline signals win/loss, train XGBoost with monotonic constraints, evaluate as a probability gate on out-of-sample signals. Strict temporal split, no leakage.

AUC (out-of-sample)0.58
Top-quartile precision lift+9pp
Standalone generationno edge
Decay TRAIN→TESTmoderate
PARTIAL EDGE
Weak-but-real as a filter on an existing edge (AUC 0.58, top-quartile precision +9pp) — never as a signal generator. Most of the lift is the vol-regime and time-of-day features, not the exotic ones. Kept as an optional overlay with monitored decay.
ML earns its keep ranking the quality of signals you already have, not conjuring signals from price alone. And the boring features (regime, time) usually carry the lift.
PARKED · sim-to-real Open →
#

A PPO agent learns to slice a parent order to minimize implementation shortfall versus TWAP/VWAP, adapting to live book conditions.

PPO maximizes a clipped policy ratio against the advantage estimate:

$$ L^{CLIP}(\theta)=\mathbb{E}_t\big[\min(\rho_t A_t,\ \mathrm{clip}(\rho_t,1-\epsilon,1+\epsilon)A_t)\big] $$

Train in a simulated LOB with a market-impact model; reward = negative implementation shortfall. Evaluated in-sim only.

PARKED
Execution (not alpha) is the right place for RL — the reward is well-defined and dense. Parked on the sim-to-real gap: the agent overfits the simulator’s impact model, and we lack a faithful live LOB simulator to trust it with real orders. Promising, not deployable yet.
RL belongs to execution, not direction. But an RL agent is only as honest as its simulator — a wrong impact model trains a confidently wrong agent.
KILLED · overfit by design Open →
#

Evolving populations of indicator-threshold rules with a genetic algorithm discovers profitable combinations no human would hand-craft.

Fitness-proportional selection over generations:

$$ P(\text{rule}_i) = \frac{\phi_i}{\sum_j \phi_j},\quad \phi=\text{in-sample Sharpe} $$

GA over indicator/threshold/logic genes, fitness = in-sample Sharpe, 200 generations, then hold-out test.

Best in-sample Sharpe4.1
Same rule out-of-sample−0.3
Multiple-testing inflationextreme
KILLED
Evolving toward in-sample Sharpe is industrial-scale data snooping: searching millions of rule combinations guarantees a spectacular in-sample winner that is pure overfit. Out-of-sample it is negative. The GA optimizes the one thing you must not optimize directly.
If your search procedure maximizes in-sample performance over a huge rule space, your "discovery" is the maximum of noise. Significance must be penalized by the number of trials.
PARTIAL · risk gate Open →
#

BOCPD (Adams–MacKay) flags structural breaks in the return-generating process in near-real-time; cutting risk at a detected changepoint avoids regime-transition losses.

Recursively update the posterior over the current run length $r_t$:

$$ P(r_t\mid x_{1:t}) \propto \sum_{r_{t-1}} P(r_t\mid r_{t-1})\,P(x_t\mid r_{t-1})\,P(r_{t-1}\mid x_{1:t-1}) $$

BOCPD with a Gaussian observation model and hazard $1/\lambda$ on volatility-standardized returns; de-risk when changepoint probability spikes.

Detection lag2–6 bars
Drawdown reduction (as gate)−22%
Standalone signalnone
PARTIAL EDGE
Useful as a de-risking gate — it catches volatility-regime breaks a few bars in and trims drawdowns ~20% — but it generates no directional edge and lags by construction. Kept as a portfolio risk overlay.
Changepoint detectors are insurance, not alpha. Their value is cutting exposure into a regime break, accepting that "near-real-time" still means a few bars late.
KILLED · scaling Open →
#

A GP with a tuned kernel gives calibrated predictive means and variances for returns, letting us trade only high-confidence (low-variance) forecasts.

Posterior mean and variance at a test point:

$$ \mu_* = k_*^\top (K+\sigma^2 I)^{-1} y,\qquad \sigma_*^2 = k_{**} - k_*^\top (K+\sigma^2 I)^{-1} k_* $$

GP with RBF + periodic kernels on feature windows; trade only when predictive variance is low. Costs applied.

Predictive mean signal≈ 0
Low-variance subset edgenone
$O(n^3)$ inverse costprohibitive
KILLED
The calibrated uncertainty is nice but the mean is still ~zero (same target problem as N-038), and the $O(n^3)$ covariance inverse makes rolling refits impractical. No edge, high cost. Killed.
Well-calibrated uncertainty around a zero-mean forecast is still a zero-mean forecast. Confidence about "no signal" is not tradeable.
PARTIAL · slow signal Open →
#

Large net inflows of a coin to exchange wallets precede selling; net outflows precede accumulation. Trading the netflow z-score anticipates pressure.

Standardize daily net exchange flow:

$$ z_t = \frac{(\text{Inflow}_t - \text{Outflow}_t) - \mu}{\sigma} $$

On-chain exchange-flow series for majors, z-score extremes as directional bias, forward 1–3 day returns. Daily granularity only.

Inflow-spike → next-3d driftweakly negative
Information coefficient (IC)~0.05
Intraday usefulnessnone (daily data)
PARTIAL EDGE
A weak, slow bias (IC ~0.05) usable only on multi-day horizons and majors with clean labeled exchange wallets. Attribution noise (wallet clustering) and daily cadence cap it. Context input, not a trade trigger.
On-chain flow is real information but arrives slow and dirty. It shapes a multi-day lean; it cannot time an intraday entry.
PARKED · attribution Open →
#

When SOPR crosses 1 (aggregate coins moving at a profit vs loss), it marks capitulation/euphoria inflection points tradeable on swing horizons.

Ratio of realized value to value at creation, over spent outputs:

$$ \text{SOPR} = \frac{\sum \text{price}_{\text{spent}}\cdot\text{vol}}{\sum \text{price}_{\text{created}}\cdot\text{vol}} $$

BTC SOPR (and short-term-holder SOPR) vs forward swing returns around the 1.0 cross.

PARKED
The 1.0 cross aligns with inflections ex-post, but signals are sparse and the clean variant (STH-SOPR) needs a paid on-chain feed for real-time. Parked pending a reliable live source; macro context only, n too small to validate.
On-chain ratios that "call bottoms" do so a handful of times per cycle — beautiful on a chart, untestable as a system.
KILLED · no timing edge Open →
#

A low SSR (large stablecoin supply relative to BTC market cap) means high "dry powder" and is bullish; trading SSR extremes anticipates rallies.

$$ \text{SSR} = \frac{\text{BTC marketcap}}{\text{stablecoin supply}} $$

SSR and its Bollinger-band oscillator vs forward 30-day BTC returns since 2019.

Correlation SSR-extreme → fwd return~0.03
Confounded by total-market trendyes
KILLED
SSR is a slow ratio of two trending series; its "extremes" mostly restate where we are in the cycle and add no timing information beyond price itself. Killed as a signal.
A ratio of two co-trending aggregates tells you the trend you already see. Decompose before claiming a metric is informative.
KILLED · spurious Open →
#

The Network-Value-to-Transactions ratio (market cap / on-chain transaction volume) is crypto’s P/E; high NVT = overvalued = short.

$$ \text{NVT} = \frac{\text{Network Value}}{\text{Daily On-chain Tx Volume}} $$

NVT and NVT-signal (smoothed) vs forward returns; controlled for the structural decline in on-chain volume as activity moved to L2s/exchanges.

Raw NVT trendstructurally rising
Forward-return edge after detrendingnone
KILLED
On-chain transaction volume structurally collapsed as activity moved off-chain (exchanges, L2s), so NVT rises mechanically regardless of valuation. The denominator no longer measures economic throughput. Dead metric for timing.
A valuation ratio is only meaningful if its denominator still measures what it used to. Definitions rot as market structure changes.
PARTIAL · macro only Open →
#

The Puell Multiple (daily miner revenue vs its yearly average) marks cyclical extremes via miner capitulation/euphoria.

$$ \text{Puell} = \frac{\text{daily issuance value}}{\text{365-day MA of issuance value}} $$

BTC Puell vs forward 90/180-day returns across cycles; halving-aware.

Cyclical extremes flagged3/3
Independent observationsn≈3
Tactical usenone
PARTIAL EDGE
Like MVRV (N-031), a coherent macro compass with only ~3 independent cycle observations and zero tactical resolution. Informs long-horizon posture; never an entry.
Halving-cycle metrics share one fatal property: the sample size is the number of cycles. Three points cannot reject a null.
KILLED · coincident Open →
#

Rising search interest in a coin precedes retail inflows and price; trading the search-volume z-score front-runs the crowd.

$$ z^{SVI}_t = \frac{\text{SVI}_t - \mu_{SVI}}{\sigma_{SVI}} $$

Weekly/daily Google Trends SVI for top coins vs forward returns; lead-lag cross-correlation.

Peak cross-correlation lag0 (coincident)
SVI leads priceno — lags or simultaneous
Data latencydays + revisions
KILLED
Search interest is coincident-to-lagging with price (people search after a move, not before) and the data is delayed and revised. By the time SVI spikes, the move has happened. No front-running edge.
Attention follows price more than it leads it. Crowd-interest data describes the move you already missed.
KILLED · noise + bots Open →
#

Aggregate sentiment polarity from crypto X posts (transformer classifier) predicts short-horizon returns.

$$ S_t = \frac{1}{N_t}\sum_{i=1}^{N_t}\,\text{polarity}(\text{post}_i)\in[-1,1] $$

FinBERT-style polarity on filtered cashtag streams, hourly aggregate vs next-hour return. Bot/spam filtering attempted.

Information coefficient~0.01
Bot / shill contaminationsevere
Endogeneity (sentiment = price)high
KILLED
Sentiment is dominated by bots, shills, and reflexivity (sentiment is mostly a lagged function of price). After de-botting, IC ~0.01 — indistinguishable from zero. The clean signal, if any, is buried under manufactured noise.
Social sentiment in crypto is an adversarial, reflexive dataset — much of it is paid or automated, and the rest just echoes the price. Treat it as noise until proven otherwise.
PARTIAL · weak contrarian Open →
#

The composite Fear & Greed index at extremes ("Extreme Fear" / "Extreme Greed") is a contrarian signal for multi-day reversals.

$$ \text{long if } \text{FNG}_t < 10,\quad \text{trim if } \text{FNG}_t > 90 $$

Daily FNG since 2018; forward 7/14-day BTC returns conditioned on tail buckets.

Extreme Fear → fwd 14dmildly positive
Extreme Greed → fwd 14dmixed
Edge vs buy-and-holdsmall
PARTIAL EDGE
A mild, real contrarian tilt at the fear extreme on multi-day horizons, but the index is itself ~25% price-derived (reflexive), so much of the "signal" is just buying dips. Marginal lean, not a system.
Composite sentiment indices that include price as an input will always "predict" mean reversion — because they partly are the price. Strip the circular inputs before believing the backtest.
KILLED · no edge Open →
#

The Higuchi/box-counting fractal dimension $D$ of a price window distinguishes smooth trends ($D\to1$) from rough chop ($D\to2$); regime-gating on $D$ improves a trend book.

$$ D = \lim_{\epsilon\to 0}\frac{\log N(\epsilon)}{\log(1/\epsilon)} $$

Higuchi FD on rolling 128-bar windows as a trend/chop gate, 30 symbols, costs applied.

Correlation of $D$ with realized volhigh (redundant)
Incremental edge over a vol filternone
KILLED
Fractal dimension is, empirically, a repackaged volatility measure — it correlates ~0.9 with realized vol and adds nothing a simple ATR gate does not. Elegant, redundant. Killed.
Before adopting an exotic estimator, regress it on the boring one. If $D$ is 0.9-correlated with ATR, you have re-derived ATR with extra steps.
PARKED · estimator noise Open →
#

A positive largest Lyapunov exponent $\lambda_1$ means sensitive dependence (chaos, low short-term predictability); $\lambda_1\to0$ windows are more forecastable.

Average exponential divergence of nearby trajectories in the embedded phase space:

$$ \lambda_1 = \lim_{t\to\infty}\frac{1}{t}\ln\frac{\|\delta \mathbf{x}(t)\|}{\|\delta \mathbf{x}(0)\|} $$

Rosenstein algorithm on delay-embedded returns; gate forecasting models to low-$\lambda_1$ windows.

PARKED
Conceptually appealing, but $\lambda_1$ estimates on short, noisy financial windows are statistically unstable (the embedding and noise floor dominate). Parked: cannot get an estimator we trust at tradeable window lengths.
Chaos-theory invariants need long, clean, low-noise series. Financial windows are short and noise-saturated — the estimator measures the noise.
PARTIAL · sizing Open →
#

The Shannon entropy of the binned return distribution measures disorder; low-entropy windows (concentrated returns) carry more exploitable structure.

$$ H = -\sum_{i} p_i \log_2 p_i $$

Entropy of binned rolling returns; correlate with subsequent strategy hit-rate and with volatility-of-volatility.

Low-entropy → higher hit-rateweak but present
Mostly a vol-of-vol proxypartially
Best usesizing modifier
PARTIAL EDGE
A weak, partly-independent regime measure — low-entropy windows do show modestly higher signal hit-rates, but much of it overlaps vol-of-vol. Kept as a minor sizing modifier, not a trigger.
Information-theoretic measures sometimes add a sliver beyond variance — but always net out the variance overlap before crediting the entropy.
PARKED · compute Open →
#

RQA metrics (determinism, laminarity) on the recurrence plot of a price window detect impending regime transitions before variance reacts.

$$ R_{ij} = \Theta\big(\varepsilon - \|\mathbf{x}_i - \mathbf{x}_j\|\big) $$

Delay-embed returns, build the recurrence matrix, track determinism/laminarity as early-warning. Spot-checked, not fully replayed.

PARKED
Early-warning literature is suggestive, but RQA is $O(n^2)$ per window and the threshold $\varepsilon$ is finicky. Parked pending a cheap incremental implementation and a proper out-of-sample on transitions.
Critical-slowing-down early-warning signals are real in physical systems; whether they lead financial regime breaks by enough to act on is unproven and expensive to test.
PARTIAL · detection tool Open →
#

Genuine trade-size and volume first digits follow Benford’s law; venues or pairs with manufactured volume deviate, flagging wash-traded markets to avoid.

$$ P(d) = \log_{10}\!\Big(1 + \frac{1}{d}\Big),\quad d\in\{1,\dots,9\} $$

Chi-square / MAD of first-digit distribution of trade sizes per pair-venue vs Benford; cross-check against known-clean majors.

Majors (clean)fits Benford
Several low-cap pairsstrong deviation
Useuniverse hygiene filter
PARTIAL EDGE
Not a trading strategy but a useful data-hygiene filter: pairs whose trade-size digits violate Benford are likely wash-traded and excluded from any universe. Adopted as a pre-filter, not a signal.
Sometimes the win is not a trade but a removal — knowing which markets are fake keeps fake fills out of every other backtest.
PARTIAL · portfolio tool Open →
#

Most eigenvalues of an empirical correlation matrix are noise (within the Marchenko–Pastur band); cleaning them yields a more stable correlation estimate for risk and hedging.

Eigenvalues below $\lambda_+$ are statistically indistinguishable from noise, where:

$$ \lambda_{\pm} = \sigma^2\Big(1 \pm \sqrt{N/T}\Big)^2 $$

Clip/shrink eigenvalues inside the MP band, rebuild $C$, use for minimum-variance hedge weights vs raw sample $C$.

Out-of-sample hedge variancelower vs sample $C$
Weight stabilityhigher
Directional edgenone (risk tool)
PARTIAL EDGE
A real improvement to risk estimation — cleaned correlations give more stable hedges and minimum-variance weights out-of-sample. No alpha by itself; adopted on the risk side, where most durable value lives.
A sample correlation matrix is mostly noise. Knowing which eigenvalues to trust is worth more than any single signal — but it is a risk tool, not a return tool.
KILLED · not causal Open →
#

Transfer entropy from coin A to coin B measures directed information flow; trading laggards when leaders move captures a predictable spillover.

$$ T_{A\to B} = \sum p(b_{t+1},b_t,a_t)\,\log\frac{p(b_{t+1}\mid b_t,a_t)}{p(b_{t+1}\mid b_t)} $$

Estimate pairwise TE across 40 coins, trade detected laggards on leader moves, costs + latency applied.

Detected lead-lag in-samplepresent
Lag horizon1–2 bars
Net after fees at that horizon
Direction stability out-of-sampleflips
KILLED
Detected information flow is real but the exploitable lag is 1–2 bars and unstable — by the time TE is estimated, the spillover is priced, and the direction of the A→B arrow flips out-of-sample. Net negative after cost. Killed (cf. our separately-killed lead-lag work).
Estimating that A leads B takes a window of data; within that window the lead is already arbitraged. Measurable ≠ tradeable, once latency is honest.
PLANNED · research Open →
#

Persistence diagrams of a sliding point-cloud of returns capture topological "holes" whose birth/death (persistence landscapes) precede crashes (Gidea–Katz).

Track features across filtration scale $\epsilon$; persistence is death minus birth:

$$ \text{pers}(f) = \epsilon_{\text{death}}(f) - \epsilon_{\text{birth}}(f) $$

$L^p$ norm of the persistence landscape as a crash early-warning.

Plan: sliding-window point clouds of (multi-asset) returns, Vietoris–Rips filtration, monitor landscape norm. Not yet built.

PLANNED
Gidea–Katz reported rising persistence-landscape norms before 2000 and 2008 crashes. Queued as a multi-asset crash early-warning gate — the open question is the same as always: lead time net of false alarms.
Topology gives a coordinate-free view of structure. Whether that view leads price by enough to de-risk on is the only thing that matters — and is untested for us.
KILLED · unidentifiable Open →
#

Price regime shifts are cusp catastrophes; fitting the cusp normal form to a control/state embedding predicts sudden jumps.

$$ \frac{dV}{dx} = x^3 + a x + b = 0 $$

Cobb stochastic-cusp fit (control variables = vol, OI) to BTC; likelihood-ratio vs linear model.

Bimodality detectedoccasionally
Out-of-sample jump predictionno edge
Parameter identifiabilitypoor
KILLED
The cusp model is barely identifiable on financial data — the control-variable mapping is arbitrary and the fit is unstable. Pretty geometry, no out-of-sample jump prediction. Killed.
Borrowing a physics model requires its variables to mean something measurable. When the "control parameters" are hand-picked, the catastrophe is in the fit, not the market.
KILLED · unstable sign Open →
#

BTC trades inversely to the US dollar index; using DXY moves as a directional overlay for BTC adds edge.

$$ \rho_t = \frac{\mathrm{Cov}(r^{BTC},r^{DXY})}{\sigma_{BTC}\,\sigma_{DXY}} $$

Rolling 30/90-day BTC–DXY correlation; trade BTC on DXY signal when correlation is strongly negative.

Rolling correlationswings −0.6 ↔ +0.4
Sign stabilitynone
Overlay edgenone
KILLED
The "inverse correlation" is a part-time relationship — it is strongly negative in some regimes and positive in others, so an overlay built on it is right exactly as often as it is wrong. No stable, tradeable structure.
Macro correlations in crypto are regime-conditional and flip without warning. A relationship that is sometimes −0.6 and sometimes +0.4 is not a relationship you can trade.
KILLED · narrative only Open →
#

BTC behaves as digital gold; gold momentum leads BTC, exploitable as a cross-asset overlay.

$$ \rho_{BTC,Gold}\ \text{rolling, with lead-lag scan over } \pm 10\text{ days} $$

Lead-lag cross-correlation BTC vs XAU since 2017.

Average correlation≈ 0.05
Stable lead-lagnone
KILLED
The "digital gold" link is a narrative, not a statistic: realized BTC–gold correlation hovers near zero with no stable lead-lag. Killed before it cost anything.
A compelling story is not a correlation. Measure the relationship before trading the thesis.
PARTIAL · regime risk Open →
#

BTC’s beta to Nasdaq (NDX) spikes in risk-off shocks; using NDX futures overnight as a risk gate avoids gap-down sessions.

$$ \beta_t = \frac{\mathrm{Cov}(r^{BTC},r^{NDX})}{\mathrm{Var}(r^{NDX})}\ \text{(rolling, regime-split)} $$

Condition BTC exposure on overnight NDX-futures direction during US-correlated regimes; flat otherwise.

Beta in risk-offhigh (~1+)
Beta in crypto-native regimes~0
Gap-loss reduction (as gate)modest
PARTIAL EDGE
Useful only as a risk-off gate during macro-correlated regimes — when BTC is trading as a tech-beta proxy, NDX overnight does help avoid gap-downs. In crypto-native regimes the beta is ~0 and the overlay is noise. Conditional, not constant.
Crypto’s macro beta is a switch, not a dial — near zero most of the time, near one in a shock. Use it only when the regime says it is on.
PARTIAL · slow rotation Open →
#

The ETH/BTC ratio trends in multi-week regimes; rotating between ETH and BTC by the ratio’s momentum beats holding either.

$$ \text{signal}_t = \mathrm{sign}\big(\text{EMA}_{\text{fast}}(\rho) - \text{EMA}_{\text{slow}}(\rho)\big),\ \ \rho=\tfrac{P^{ETH}}{P^{BTC}} $$

Dual-EMA crossover on ETH/BTC, rotate the held leg, weekly rebalance, costs applied; 2019–2026.

Vs 50/50 hold (risk-adj)mild improvement
Whipsaw in ranging ratiopresent
Edge concentrationa few big rotations
PARTIAL EDGE
A mild, real rotation edge whose entire P&L comes from a handful of large multi-week ratio trends; in ranging periods it bleeds to whipsaw. Works as a slow allocation tilt, not a trading strategy.
Pair-rotation edges are lumpy — a few regime moves make the year. Size for the drought between them, not the feast.
KILLED · data-mined Open →
#

Certain weekdays (e.g. "Monday pump", "weekend drift") carry persistent directional bias exploitable systematically.

$$ \bar r_d = \frac{1}{N_d}\sum_{t: \text{wd}(t)=d} r_t,\quad d\in\{\text{Mon..Sun}\} $$

Per-weekday mean returns with block bootstrap CIs; rolling-window stability check across years.

In-sample weekday spreadlooks significant
Sign stability across yearsflips
Bonferroni-corrected significancenone
KILLED
Apparent weekday effects do not survive multiple-testing correction (7 days = 7 tests) and flip sign year to year. The "Monday effect" is noise that varies which day it favours. Killed.
Testing 7 weekdays and celebrating the best one is data-mining. Correct for the number of buckets, then check the sign holds across years.
PARTIAL · sizing Open →
#

Volatility has a robust intraday seasonality (Asian / EU / US session overlaps); sizing and stop distances should adapt to the hour.

Average absolute return by UTC hour (vol seasonality):

$$ \bar\sigma_h = \frac{1}{N_h}\sum_{t:\,\text{hour}(t)=h}|r_t| $$

Estimate the intraday vol curve per symbol; scale position size and ATR-stops by the hour-of-day factor.

Intraday vol seasonalitystrong & stable
Directional edgenone
Stop-distance improvementreal
PARTIAL EDGE
No directional edge, but the volatility-by-hour pattern is strong and stable (US open / session overlaps) — adopted to scale stop distances and sizing intraday so a fixed-percent stop is not too tight at 14:00 UTC and too loose at 04:00.
Intraday vol seasonality is one of the most robust patterns in markets. It will not tell you direction, but it should shape every stop and size you set.
KILLED · spurious Open →
#

Full-moon / new-moon phases (and other calendar folklore) correlate with crypto reversals.

$$ \bar r_{\phi} \text{ by lunar phase bucket } \phi,\ \text{with FDR control} $$

Returns bucketed by lunar phase, full-moon windows tested for reversal bias; false-discovery-rate controlled across many calendar hypotheses.

Raw lunar "effect"p≈0.04 (uncorrected)
After FDR over calendar testsnot significant
KILLED
A textbook spurious-correlation honeypot. The lone "significant" calendar effect vanishes under false-discovery-rate control across the many calendar hypotheses tested. Included here as a discipline example: we test folklore so we can kill it with numbers, not opinion.
Test enough calendar quirks and one will hit p<0.05 by chance. FDR control is how you tell a discovery from a coincidence.
PARTIAL · execution Open →
#

Price impact is linear in signed order flow with slope $\lambda$ (Kyle); estimating $\lambda$ per symbol lets us cap order size so impact stays below expected edge.

Mid-price moves linearly in net signed volume:

$$ \Delta P = \lambda\, Q + \text{noise} $$

Cap participation so expected impact $<$ expected edge:

$$ Q_{\max} = \frac{\alpha_{\text{edge}}}{2\lambda} $$

Estimate $\lambda$ by regressing mid-moves on signed volume per symbol/hour; size orders to keep modeled impact under a fraction of expected edge.

Impact model $R^2$0.4–0.6
Slippage vs naive sizinglower
Directional edgenone (execution tool)
PARTIAL EDGE
No alpha, but a real execution improvement: knowing $\lambda$ per symbol caps size before impact eats the edge, materially cutting slippage on thin alts. Adopted in the sizing layer.
Every signal has a capacity set by price impact. Estimating $\lambda$ tells you the size at which your own order destroys the edge you found.
PARTIAL · MM-only Open →
#

The microprice — mid adjusted by book imbalance — is a better short-horizon fair-value estimate than the mid, improving passive fill timing.

Weight the two sides by the opposite queue size:

$$ P_{\text{micro}} = \frac{Q_b\,P_a + Q_a\,P_b}{Q_a + Q_b} $$

Compute microprice from L1, test as next-tick mid predictor and as a passive-quote anchor.

Next-tick mid predictionbetter than mid
Taker exploitation after feesnone
PARTIAL EDGE
The microprice genuinely predicts the next mid better than the mid — but the gain is sub-fee and only useful to a passive market maker choosing which side to rest on. No taker edge. Filed with the MM research (cf. N-026).
Better fair-value estimates help whoever is already quoting. For a taker paying the spread, a 0.3-tick improvement is invisible.
KILLED · already priced Open →
#

Order flow is long-memory — trade signs are positively autocorrelated for hours (Lillo–Farmer) — so recent net flow predicts continued same-direction pressure.

The sign autocorrelation decays as a slow power law:

$$ C(\tau) = \langle \epsilon_t\,\epsilon_{t+\tau}\rangle \sim \tau^{-\gamma},\ \ \gamma<1 $$

Estimate sign-ACF, trade continuation on persistent net flow, costs + latency applied.

Sign ACF long-memoryconfirmed
Price impact of predictable flowpermanent ≈ 0
Net continuation edge
KILLED
The long memory is real but price does not drift with it: market makers anticipate the autocorrelated flow and absorb it (the famous "efficiency despite predictable flow"). Predictable order flow, unpredictable price. Killed.
Predictable order flow is not predictable returns — liquidity providers price the predictability out. The market can be efficient even when flow is forecastable.
KILLED · sub-fee Open →
#

Transaction prices bounce between bid and ask, creating predictable short-term reversion (Roll); fading the bounce harvests it.

Roll: observed price changes have negative first-order autocovariance from the bounce:

$$ \mathrm{Cov}(\Delta p_t,\Delta p_{t-1}) = -\frac{s^2}{4} $$

Fade last-trade-side at micro-horizon; full taker fees applied.

Reversion magnitude~half-spread
Round-trip taker cost> full spread
Net
KILLED
The bounce reversion is exactly the spread you must cross twice to trade it. Only a maker earning the spread captures it; a taker pays more than the reversion is worth. Killed.
Mean reversion at the scale of the spread belongs to whoever provides the spread. Crossing it to capture it is arithmetically a loss.
PARKED · data Open →
#

Hidden iceberg orders reveal themselves through repeated same-size refills at a level; detecting them locates strong support/resistance to lean on.

$$ \text{flag level } L \text{ if } \#\{\text{refills}(L)\} \ge k \text{ with size } \approx \text{const} $$

Reconstruct per-level refill patterns from L2 updates; tag persistent hidden liquidity. Limited by public depth-stream snapshotting.

PARKED
Detection works when full L2 deltas are available, but the public depth stream is snapshotted, not event-by-event, so refill patterns are aliased. Parked pending a true incremental book feed. Promising as a context layer, not standalone.
Reconstructing hidden liquidity needs event-level book updates. Snapshot feeds blur exactly the micro-pattern you are trying to detect.
KILLED · unreliable + risky Open →
#

Large fleeting orders that cancel before execution (spoofs) signal the spoofer’s true intent; fading the displayed pressure captures the real move.

$$ \text{spoof score} = \frac{\text{displayed size cancelled before trade}}{\text{total displayed size}} $$

Flag rapid place-then-cancel clusters; trade opposite the fake pressure.

Spoof detectionnoisy on public data
False positives (genuine cancels)high
Edgeinconsistent
KILLED
Distinguishing manipulative spoofs from ordinary order management on public data is unreliable (most cancels are benign), and building a strategy around reading manipulators is fragile and adversarial. Killed on both robustness and principle.
Trying to out-read manipulators is a game where the other side controls the signal. Most cancelled orders are not spoofs, and the ones that are can flip on you.
PARTIAL · slow premium Open →
#

Less-liquid alts (high Amihud illiquidity) carry a return premium for bearing liquidity risk; tilting toward them harvests it.

$$ \text{ILLIQ}_i = \frac{1}{D}\sum_{d} \frac{|r_{i,d}|}{\text{VolumeUSD}_{i,d}} $$

Rank alts by Amihud, long the illiquid tertile / short the liquid, monthly rebalance, costs (which are themselves higher for illiquid names).

Gross premiumpositive
Net after (high) illiquid trading costthin
Tail risk in stresssevere (liquidity dries)
PARTIAL EDGE
The premium is real but self-consuming: the illiquid names that pay it are the expensive ones to trade, and the premium evaporates (turns sharply negative) in stress when liquidity vanishes. A small, fragile tilt at best.
A liquidity premium is rent for a risk that shows up all at once. The assets that pay it are the ones you cannot exit when you need to.
PARTIAL · tool Open →
#

The effective spread can be backed out from the serial covariance of price changes (Roll), giving a transaction-cost estimate without quote data.

$$ \hat s = 2\sqrt{-\mathrm{Cov}(\Delta p_t,\Delta p_{t-1})} $$

Estimate Roll spread per pair, compare to observed quoted spread, use to flag costly markets for the backtester.

Roll vs quoted spreadtracks on liquid names
Breaks when Cov > 0 (trends)yes
PARTIAL EDGE
Useful cost-estimation tool for markets where we lack clean quote history — feeds realistic spreads into the backtester. Not a signal; breaks in trends where serial covariance turns positive (then we fall back to quoted spreads).
Honest backtests need honest costs. When quote data is missing, a covariance-based spread estimate beats assuming zero.
KILLED · latency Open →
#

One venue leads price discovery (e.g. the highest-volume perp); its moves predict laggard venues by tens-to-hundreds of milliseconds.

$$ \arg\max_{\ell}\ \mathrm{Corr}\big(r^{\text{lead}}_t,\ r^{\text{lag}}_{t+\ell}\big),\quad \ell>0 $$

Synchronized multi-venue tape, cross-correlation lag estimate, trade laggard on leader move.

Detected lead20–120 ms
Latency to act (public API)100–400 ms
Net edgenone
KILLED
The lead exists but is tens of milliseconds — far inside our public-API round-trip. This is a colocation/HFT trade; at our latency the laggard has already caught up. Killed.
A lead measured in milliseconds is only tradeable by someone whose latency is measured in microseconds. Know which game you are in.
PARKED · gas + risk Open →
#

AMM (DEX) prices lag CEX during fast moves; arbitraging the dislocation captures the convergence.

AMM marginal price from constant-product reserves:

$$ P_{\text{AMM}} = \frac{R_{\text{quote}}}{R_{\text{base}}},\qquad \text{edge} = \Big|\frac{P_{\text{CEX}}}{P_{\text{AMM}}}-1\Big| - \text{gas} - \text{fee} $$

Monitor top-liquidity pools vs CEX mid; simulate atomic arb net of gas, swap fee, and bridge/settlement risk.

PARKED
Real dislocations occur, but they are contested by MEV searchers with priority-gas auctions and atomic execution we cannot match from a CEX-side bot. Parked: viable only with on-chain co-execution infra and inventory on both legs. Not a CEX-API trade.
On-chain arbitrage is an MEV auction. Without a searcher’s position in the block-building pipeline, you are bidding against people who see your trade first.
PARKED · data Open →
#

Aggregate dealer gamma flips the market between mean-reverting (positive GEX) and trend-amplifying (negative GEX) regimes; GEX sign sets the playbook.

$$ \text{GEX} = \sum_{k}\Gamma_k \cdot \text{OI}_k \cdot 100 \cdot S^2 \cdot \text{sign(dealer)} $$

Reconstruct GEX from the Deribit options chain; condition a mean-reversion vs momentum book on GEX sign.

PARKED
Strong framework in equities (SpotGamma-style), but in crypto dealer-side attribution is opaque and meaningful gamma exists only for BTC/ETH. Parked: the dealer-sign assumption is unverifiable on-chain/off-chain here. Two-asset cross-section again.
GEX works where you know who is short gamma. In crypto you mostly do not, and the options book is two names deep.
PARKED · execution Open →
#

Implied variance exceeds realized variance on average (the VRP); systematically selling options/variance harvests the premium.

$$ \text{VRP}_t = \sigma^2_{\text{IV}}(t) - \mathbb{E}_t[\sigma^2_{\text{RV}}] $$

Delta-hedged short-vol / short-strangle on BTC-ETH, measure VRP capture vs tail losses.

PARKED
VRP is positive on average in crypto too, but harvesting it is picking up pennies in front of the steamroller — crypto’s fat tails make the short-vol drawdowns brutal, and delta-hedging at our latency is costly. Parked pending a proper tail-hedged structure and an options-execution stack.
Selling volatility earns a premium for absorbing tail risk. In an asset class defined by tails, that premium is rented, not owned — unless the tail is hedged.
KILLED · reflexive Open →
#

Extreme put/call volume ratios are contrarian sentiment signals for the underlying.

$$ \text{PCR}_t = \frac{\text{put volume}_t}{\text{call volume}_t} $$

BTC/ETH option PCR extremes vs forward returns.

PCR extreme → fwd returnweak, unstable
Hedging vs speculative flowindistinguishable
KILLED
Crypto option flow mixes hedging and speculation indistinguishably, so a high PCR may be bearish bets or bullish-spot hedging. The ratio has no stable contrarian content here. Killed.
A sentiment ratio is only contrarian if you know the flow is directional speculation. When hedgers and speculators share the tape, the ratio means nothing.
PARTIAL · regime Open →
#

The sign and level of (IV − RV) signals whether to be net long or short volatility/gamma across the book.

$$ \text{spread}_t = \sigma_{\text{IV}}(t) - \sigma_{\text{RV}}^{(n)}(t) $$

Track DVOL-style IV vs realized vol; use as a regime tilt for vol-sensitive sleeves (not as a standalone options trade).

IV-RV mean-revertsyes
As vol-regime contextuseful
As standalone tradeexecution-bound
PARTIAL EDGE
The IV-RV spread is a useful vol-regime context input (it mean-reverts and flags rich/cheap vol), but converting it to P&L needs an options-execution stack we treat as out of scope. Kept as context, parked as a trade.
Knowing vol is rich or cheap is half the trade; the other half is an execution venue for vol. Context is free, expression is not.
PARTIAL · capacity-capped Open →
#

Dated quarterly futures trade at a basis to spot that decays to zero at expiry; a calendar (long spot / short quarterly) harvests the roll-down.

Annualized basis from time-to-expiry $\tau$:

$$ \text{basis}_{\text{ann}} = \Big(\frac{F_\tau}{S}-1\Big)\cdot\frac{365}{\tau_{\text{days}}} $$

Long spot / short quarterly when annualized basis exceeds a threshold, hold toward expiry, roll. Real fees + collateral cost.

Contango basis (bull regimes)+5–25% ann
Backwardation (bear)flips negative
Net, hedgedpositive in contango only
PARTIAL EDGE
A real carry in contango regimes (sister trade to funding carry N-028), but it inverts in backwardation and is capacity- and collateral-capped. Runs only when the term structure pays, fully hedged. Not directional.
Basis carry pays you to be patient in contango and punishes you in backwardation. The trade is the regime filter, not the position.
PARTIAL · ops-bound Open →
#

The same perp can have positive funding on one venue and negative on another; going long the negative-funding venue and short the positive-funding venue nets the spread, delta-neutral.

$$ \text{net carry} = f^{\text{short venue}} - f^{\text{long venue}} - \text{fees} - \text{transfer cost} $$

Monitor funding across venues, open offsetting legs when the spread exceeds cost, manage collateral on both sides.

Funding spreads > costoccur regularly
Net of fees + collateral fragmentationthin positive
Operational/counterparty riskreal (2 venues)
PARTIAL EDGE
A genuine delta-neutral spread but operationally heavy — capital fragmented across venues, transfer latency, and doubled counterparty risk. Thin net edge that only scales with infrastructure. Filed as a treasury/ops trade, not a signal.
Cross-venue arbitrage converts market risk into operational and counterparty risk. The spread is real; so is the cost of standing in two places at once.
PARTIAL · rare + tail Open →
#

Temporary stablecoin depegs (e.g. USDC to $0.97) revert to $1.00; buying the depeg captures the reversion.

$$ \text{edge} = (1 - P_{\text{stable}}) - P(\text{permanent depeg})\cdot \text{loss} $$

Buy below a peg threshold, size by an estimated permanent-failure probability, exit at reconvergence. Studied on historical depeg events.

Reversion when peg holdsfast, reliable
Event frequencyvery rare
Tail (true de-peg / failure)total loss
PARTIAL EDGE
Works almost always, until the one time it does not — a textbook negative-skew trade (small frequent gains, rare total loss). Tradeable only with hard sizing caps and a real assessment of issuer solvency. Opportunistic, not systematic.
Buying a depeg is selling insurance on the peg. The premium is reliable; the claim, when it comes, takes the whole position.
PARTIAL · sizing law Open →
#

Sizing each trade by a fraction of the Kelly-optimal bet maximizes long-run log-growth without the ruinous variance of full Kelly.

Optimal fraction from edge $b$ and win prob $p$:

$$ f^\* = \frac{bp - (1-p)}{b} $$

We deploy a de-rated fraction $\kappa f^\*$ with $\kappa\approx 0.25$–$0.5$.

Apply quarter-to-half Kelly using empirically estimated (not assumed) edge/odds per strategy; compare growth and drawdown vs fixed-fractional.

Full Kellyhighest growth, brutal DD
Quarter–half Kellynear-max growth, sane DD
Sensitivity to edge mis-estimatehigh
PARTIAL EDGE
Adopted as the sizing discipline, not a signal: fractional Kelly captures most of the growth at a fraction of the variance. Critical caveat — Kelly is brutally sensitive to over-estimated edge, so we always de-rate hard and size off conservative, realized estimates.
Kelly assumes you know your edge exactly. Since you never do, the only safe Kelly is a small fraction of it — over-betting a mis-estimated edge is how good strategies go to zero.
PARTIAL · allocation Open →
#

Allocating capital across uncorrelated strategy sleeves by equal risk contribution (rather than equal capital) improves the aggregate Sharpe.

Choose weights so each sleeve contributes equal risk:

$$ w_i\,(\Sigma w)_i = w_j\,(\Sigma w)_j \quad \forall\, i,j $$

Estimate the sleeve covariance (cleaned via N-058 RMT), solve for equal-risk-contribution weights, rebalance monthly, compare aggregate Sharpe vs equal-capital.

Aggregate Sharpe vs equal-weighthigher
Drawdownlower
Dependence on stable covariancehigh
PARTIAL EDGE
A real portfolio-construction gain — equalizing risk (not capital) across genuinely uncorrelated sleeves lifts aggregate Sharpe and smooths drawdowns. The catch is it needs a stable, well-estimated covariance (hence the RMT cleaning). This is how sleeves are combined, not a sleeve itself.
Most of a multi-strategy book’s Sharpe comes from how the sleeves are weighted, not from any one sleeve. Equal capital over-weights the riskiest sleeve by accident.
PARTIAL · fragile Open →
#

A basket of 3+ correlated alts has a stationary linear combination (Johansen cointegrating vector) more robust than a single pair (N-018).

Test the rank $r$ of the cointegration space via the trace statistic:

$$ \lambda_{\text{trace}}(r) = -T\sum_{i=r+1}^{n}\ln(1-\hat\lambda_i) $$

Estimate cointegrating vectors on rolling 90d baskets, trade the stationary combination z-score, full multi-leg costs.

Cointegration rank $\ge1$~55% of windows
Net Sharpe out-of-sample0.4
Vector stability across refitslow
PARTIAL EDGE
More robust than the single pair (N-018) but the cointegrating vector still drifts and the basket needs many legs, multiplying cost. A thin positive net edge that only an ultra-low-fee desk would run. Marginal.
Adding assets stabilizes a cointegration estimate but multiplies the cost of trading it. The fee structure decides the break-even number of legs.
KILLED · cost > tail edge Open →
#

A copula captures non-linear, tail-dependent co-movement that linear cointegration misses; trading conditional-probability extremes of the copula beats z-score pairs.

$$ h(u\mid v) = \frac{\partial C(u,v)}{\partial v},\quad \text{trade when } h\to 0 \text{ or } 1 $$

Fit Student-t / Clayton copulas to pair return ranks, trade mispricing index extremes, costs applied.

Tail-dependence capturedyes
Extra signals vs z-scorefew
Net after fees
KILLED
The copula does model tail dependence the z-score misses, but the incremental signals are too few to cover the extra turnover, and fit instability adds noise. Sophistication without net edge. Killed.
A more flexible dependence model is only worth it if the extra signals it finds pay for themselves. Elegance is not edge.
KILLED · crowded Open →
#

The classic Gatev distance method — pair assets by minimal normalized-price distance, trade 2-sigma divergences — works on crypto majors.

$$ \text{SSD}_{ij}=\sum_t\big(\tilde P_{i,t}-\tilde P_{j,t}\big)^2,\quad \text{trade at } |spread|>2\sigma $$

Form pairs on a 12-month formation window, trade 6-month, normalized prices, costs applied; replicated across 2019–2026.

Pre-2020 (less crowded)small positive
Post-2021decays to ≈0
KILLED
The original equities edge has decayed everywhere it was published, crypto included — it is the most-replicated stat-arb in the literature and is arbitraged out. Faint pre-2020, dead after. Killed.
A strategy in every textbook is a strategy in every competitor’s backtest. Published edges decay toward zero precisely because they are published.
KILLED · no edge Open →
#

Bullish/bearish divergence between price and the Relative Strength Index precedes reversals.

$$ \text{RSI} = 100 - \frac{100}{1 + \overline{\text{gain}}/\overline{\text{loss}}} $$

Algorithmic divergence detection (price extreme vs RSI extreme), forward-return test across 50 symbols, costs applied — removing the human eye that usually selects only the winners.

Divergences detectedthousands
Forward-return edge≈ 0
Survivorship in manual examplessevere
KILLED
Mechanized and tested honestly across all occurrences, RSI divergence has no forward edge. Its reputation comes from hand-picked chart examples (only the ones that worked get screenshotted). Killed.
Any chart pattern looks predictive when you only show the cases where it worked. Detect it algorithmically over everything, then count.
KILLED · curve-fit Open →
#

The Ichimoku Kinko Hyo system (cloud, conversion/base lines, lagging span) generates profitable trend signals.

$$ \text{Tenkan}=\tfrac{\max_9 H+\min_9 L}{2},\ \ \text{Kijun}=\tfrac{\max_{26}H+\min_{26}L}{2} $$

Full Ichimoku ruleset (cloud breakouts + TK cross + Chikou confirm) backtested across 40 symbols and parameter variants.

Default (9,26,52) Sharpe0.2
Parameter sensitivityextreme
KILLED
A bundle of moving-average crossovers with five tunable lookbacks — once you test the parameter grid honestly, performance is indistinguishable from a generic MA system and highly fit-dependent. No special edge. Killed.
Exotic-sounding indicator systems usually decompose into moving averages with more knobs. More knobs means more overfitting, not more edge.
KILLED · unfalsifiable Open →
#

Price moves in 5-3 Elliott wave patterns with Fibonacci-ratio retracements (0.382, 0.618) that can be counted and traded.

$$ \text{retrace levels} = \{0.236,\,0.382,\,0.5,\,0.618,\,0.786\}\times\text{prior swing} $$

Attempted to encode objective wave-counting rules; tested Fibonacci retracement-level bounces as entries across symbols.

Wave count reproducibilitylow — analyst-dependent
Fib-level bounce edgenone vs random levels
KILLED
Elliott counts are unfalsifiable (any move can be re-labelled after the fact), and Fibonacci retracement levels show no edge versus arbitrary percentage levels. A narrative framework, not a testable system. Killed.
If a method can be re-counted to fit any outcome after the fact, it makes no forward prediction. Unfalsifiable is just a slower way of saying useless.
KILLED · arbitrary Open →
#

W.D. Gann’s geometric angles (1×1, 2×1) and "squaring price and time" identify support/resistance and turning points.

$$ \text{1×1 angle: } \Delta \text{price} = \Delta \text{time}\ \text{(in chosen, arbitrary units)} $$

Tested Gann-angle support/resistance and time-squares with mechanized rules on multiple unit scalings.

Dependence on arbitrary unit scalingtotal
Edge over random trendlinesnone
KILLED
Gann methods depend entirely on an arbitrary price/time unit scaling chosen to make the geometry "work". Equating dollars with bars has no economic meaning. No edge over random lines. Killed.
Geometry on a price chart only means something if the axes have a fixed, justified scale. Free units let you draw any conclusion you want.
KILLED · pareidolia Open →
#

A convolutional net trained on rendered candlestick chart images learns profitable visual patterns end-to-end.

$$ \hat y = \text{softmax}\big(W\cdot \text{CNN}(\text{image}(P_{t-k:t})) + b\big) $$

Render OHLC windows to images, train a CNN classifier on forward-return labels, strict temporal split.

Validation accuracy~51%
Learned featuresmostly recent-trend slope
vs a 2-feature logistic baselineno improvement
KILLED
Rendering numbers as pixels and convolving them throws away precision and adds no information. The CNN rediscovers "recent slope" — reproducible with a two-line baseline — at far higher cost. Pareidolia with a GPU. Killed.
Turning structured numeric data into images to use a CNN is almost always a step backwards. The net can only learn what the pixels preserve, and pixels lose precision.
PARTIAL · risk gate Open →
#

An autoencoder trained on "normal" market states flags anomalous regimes (high reconstruction error) to step aside before disorderly moves.

$$ \text{anomaly}_t = \big\| \mathbf{x}_t - \text{Dec}(\text{Enc}(\mathbf{x}_t)) \big\|^2 $$

Train on calm-regime feature vectors, monitor reconstruction error live, de-risk on spikes.

Reconstruction error spikes pre-voloften
Lead timeshort / coincident
As a risk gatemildly useful
PARTIAL EDGE
A mild risk-gate: reconstruction error does rise around regime breaks, but mostly coincident with volatility, so it confirms more than it predicts. Kept as one input to a de-risking ensemble, not a trigger.
Anomaly detectors mostly tell you the present is unusual, not that the future is. Useful for stepping aside, weak for stepping in.
PARKED · unstable Open →
#

Clustering feature vectors (vol, trend, volume, dispersion) into $k$ market states lets each strategy run only in its favourable cluster.

$$ \min_{C}\sum_{i=1}^{k}\sum_{\mathbf{x}\in C_i}\|\mathbf{x}-\mu_i\|^2 $$

K-means / GMM on standardized regime features; map historical strategy performance per cluster.

PARKED
Clusters are interpretable but unstable across refits and sensitive to $k$ and feature scaling; cluster identity drifts, so "trade only in cluster 2" is not robust out-of-sample. Parked pending a stability-constrained clustering. Cousin of the killed HMM (N-032).
Unsupervised regimes are seductive and unstable. Before conditioning capital on a cluster label, prove the label means the same thing next month.
KILLED · overfit stack Open →
#

Stacking many weak predictors under a meta-learner yields a strong combined return forecast.

$$ \hat y = g\big(f_1(\mathbf{x}),f_2(\mathbf{x}),\dots,f_m(\mathbf{x})\big) $$

Stack LSTM, XGBoost, logistic, GP base learners under a meta-regressor with nested cross-validation.

Cross-val improvementmarginal
Out-of-sample (true holdout)worse than best single
Leakage via the stackhard to fully avoid
KILLED
Stacking amplifies overfitting and leakage when the base learners share near-zero-signal targets — the meta-learner fits the validation noise. On a true holdout it underperformed the single best model. Complexity tax with negative return. Killed.
Ensembling weak-or-zero-signal models mostly ensembles their overfitting. Stacking is not a substitute for a target that has signal.
PARTIAL · weak, BTC/ETH Open →
#

Near large monthly option expiries, spot gravitates toward the "max-pain" strike (where most options expire worthless), tradeable in the final hours.

$$ \text{max-pain} = \arg\min_{K}\ \sum_{\text{calls}}\text{OI}\cdot(S-K)^+ + \sum_{\text{puts}}\text{OI}\cdot(K-S)^+ $$

Deribit BTC/ETH monthly expiries, measure spot drift toward max-pain in the final 24–48h vs control days.

Weak pull toward max-paindetectable on big expiries
Magnitudesmall, noisy
Only BTC/ETH, monthlylow frequency
PARTIAL EDGE
A weak, real-ish pull on the largest BTC/ETH monthly expiries, but small, noisy, and rare (12 events/yr × 2 names). Filed as discretionary expiry-day context, not a system — far too few events to validate.
Max-pain pinning is real where dealer gamma is large and concentrated. In crypto that is two names, twelve times a year — context, not a strategy.
KILLED · turn-of-month Open →
#

Recurring inflows around month-end/start (DCA buyers, payday) create a turn-of-month bullish drift.

$$ \bar r_{\text{ToM}} \text{ over days } \{-1,+1,+2,+3\}\ \text{around month boundary, bootstrap CI} $$

Turn-of-month window returns vs rest-of-month, block bootstrap, stability across years.

Equities-style ToM effectpresent pre-2021
Crypto, recent yearsnot significant
24/7 market dilutionlikely cause
KILLED
The equities turn-of-month effect does not robustly transfer to a 24/7, globally-distributed, no-payday-cycle market. Faint and unstable; not significant in recent data. Killed.
Calendar effects borrowed from equities assume equity-market plumbing (paydays, month-end rebalancing, closed weekends). Crypto has none of it.
KILLED · no memory edge Open →
#

Returns or volatility carry long memory (fractional integration $d$); an ARFIMA model exploits it for forecasting.

$$ (1-L)^{d}\,(1-\phi L)\,x_t = (1+\theta L)\,\varepsilon_t,\quad 0

Estimate $d$ (GPH / Whittle), fit ARFIMA to returns and to realized vol, forecast and trade returns; vol-forecast compared to HAR-RV.

Long memory in returnsnegligible ($d\approx0$)
Long memory in volatilitystrong ($d\approx0.4$)
Return forecast edgenone
KILLED
Long memory lives in volatility, not returns ($d\approx0$ for returns). ARFIMA on returns forecasts nothing; on volatility it just reproduces what HAR-RV (N-023 family) already gives more cheaply. No return edge. Killed.
The persistence in markets is in the second moment, not the first. Long-memory models confirm vol is forecastable and returns are not — again.
KILLED · memoryless Open →
#

Discretize returns into states (e.g. quintiles) and use the empirical transition matrix to forecast the next state’s expected return.

$$ \pi_{t+1} = \pi_t\,P,\qquad P_{ij}=\hat P(s_{t+1}=j\mid s_t=i) $$

Estimate the transition matrix on rolling windows, trade the expected next-state return, costs applied.

Transition matrix vs uniformbarely distinguishable
Forecast edge≈ 0
KILLED
Discretized returns are very nearly memoryless — the estimated transition matrix is almost row-uniform, so next-state forecasts carry no edge. A first-order Markov chain cannot find structure that is not there. Killed.
If the transition matrix is nearly uniform, the process is nearly memoryless. Discretizing a random walk does not create predictability.
PARTIAL · premium tilt Open →
#

Assets with more negative realized skew earn higher subsequent returns (compensation for crash risk); a skew-sorted tilt harvests it.

$$ \text{RSkew}_i = \frac{\tfrac{1}{n}\sum (r_{i,t}-\bar r_i)^3}{\hat\sigma_i^3} $$

Rank alts by trailing realized skew, long most-negative-skew / short most-positive, monthly rebalance, costs applied.

Skew premium (gross)positive
Net of feesthin positive
Crash co-movementthe premium is the risk
PARTIAL EDGE
A real but risk-based tilt: negative-skew names pay a premium precisely because they crash together. It is compensation for tail risk, not free alpha — kept as a small factor tilt with tail awareness, never levered.
A return premium sorted on crash risk is rent for owning crash risk. It shows up as alpha until the crash, when it pays the bill all at once.
PARTIAL · vol model Open →
#

The Heterogeneous Autoregressive model of realized volatility (daily/weekly/monthly RV components) forecasts volatility well enough to drive sizing and stop placement.

$$ RV_{t+1} = \beta_0 + \beta_d RV_t^{(d)} + \beta_w RV_t^{(w)} + \beta_m RV_t^{(m)} + \varepsilon_{t+1} $$

Fit HAR-RV on intraday realized variance per symbol, forecast next-day RV, drive vol-targeted sizing and ATR-stop scaling; benchmark vs GARCH (N-023).

Vol forecast $R^2$0.45
Beats GARCH(1,1)modestly
Directional contentnone
PARTIAL EDGE
Adopted on the risk side: HAR-RV forecasts realized vol slightly better than GARCH and is cheap to fit, so it drives sizing and stop distances. No directional edge — like every honest result here, the forecastable quantity is variance, not return.
The most reliable thing you can predict in markets is how much they will move, not which way. Build the risk engine on that, and stop asking price to be predictable.
PARTIAL · lumpy, decaying Open →
#

An asset’s own past 1–3 month return predicts its next-month return (Moskowitz–Ooi–Pedersen); going long recent winners / short recent losers across crypto harvests trend.

Position = sign of the past-$k$ return, vol-scaled:

$$ w_{i,t} = \mathrm{sign}\big(r_{i,t-k:t}\big)\cdot \frac{\sigma^\*}{\hat\sigma_{i,t}} $$

Lookbacks $k\in\{20,40,60\}$d, vol-targeted, weekly rebalance over 30+ liquid alts, costs and funding applied, 2019–2026 walk-forward.

Gross Sharpe0.7
Net Sharpe after fees + funding0.35
Worst drawdownssharp trend reversals
Edge post-2022 vs predecaying
PARTIAL EDGE
A real, documented factor that nets a modest positive Sharpe — but it is lumpy (a few big trends make the year), suffers violent reversals, and has been decaying as the trade crowds. Kept as a small, vol-targeted trend sleeve inside a diversified book, never standalone or levered.
Time-series momentum is one of the few effects that replicates across asset classes and decades — which is also why it is crowded and decaying. Real, modest, and not a secret.
PARTIAL · regime-flips Open →
#

Ranking alts by trailing return and going long the top decile / short the bottom decile captures a cross-sectional momentum premium, market-neutral.

Long the top-decile, short the bottom-decile by trailing return $r_{i,t-k:t}$:

$$ w_{i,t} \propto \text{rank}_i\big(r_{i,t-k:t}\big) - \overline{\text{rank}} $$

Decile sort on 30d trailing return, dollar-neutral long/short, weekly rebalance, borrow + fees applied; tested against the well-known "momentum crash" episodes.

Gross long-short returnpositive in trends
Momentum crashes (sharp rebounds)severe
Net Sharpe0.3
Correlation to TSMOM (N-105)high
PARTIAL EDGE
The cross-sectional cousin of N-105 — a real premium that periodically crashes when beaten-down losers violently rebound (the classic momentum crash). Net Sharpe ~0.3 and largely redundant with time-series momentum. A minor diversifier at most, with explicit crash-risk management.
Cross-sectional and time-series momentum are two views of the same crowded trade — and both hand back months of gains in a single mean-reversion crash. Diversification between them is mostly an illusion.
KILLED · untestable core Open →
#

Institutions ("smart money") leave a footprint — order blocks, liquidity pools resting above/below swing highs and lows, and fair value gaps (FVG). Price returns to these zones to fill imbalance and grab liquidity; trading the zones front-runs institutional flow.

The only objectively-codable pieces. A 3-candle fair value gap (bullish):

$$ \text{FVG} \iff \text{high}_{t-1} < \text{low}_{t+1}\quad(\text{price imbalance between } t-1,\,t+1) $$

A liquidity sweep / stop-run = wick beyond a prior swing extreme, close back inside:

$$ \text{sweep} \iff \big(\text{low}_t < \min_{k \text{swingLow}\big) $$

Mechanized the falsifiable rules — liquidity sweep of a prior swing, then entry on return into the nearest FVG — and tested forward returns across 50 symbols with full costs, removing the human who normally draws the zones after the fact.

Stop-runs / sweeps are realyes — they happen
FVG "fill" rate~90% — but price fills most gaps anyway
Mechanical sweep→FVG entry, net edge≈ 0
"Order block" selectionunfalsifiable (drawn post-hoc)
KILLED
The testable kernel is real but unprofitable: liquidity sweeps (stop-runs) genuinely occur, and FVGs genuinely fill — but price fills almost any gap eventually, so the "fill" predicts nothing, and the mechanized sweep→entry has no net edge after cost. The rest of SMC — choosing which order block, which liquidity pool — is drawn after the move and cannot be falsified (same trap as Elliott Wave, N-093). A real phenomenon wrapped in an untestable presentation. Killed as a system.
SMC/ICT names something real (stop-hunts exist) and surrounds it with after-the-fact chart-drawing. The part you can test does not pay; the part that "works" cannot be tested. That is the signature of a narrative, not an edge.
PARTIAL · one real pattern Open →
#

The original "smart money" theory: a Composite Operator accumulates in trading ranges, leaving a schematic (selling climax, spring, sign of strength, last point of support, phases A–E). Entering on the "spring" — a false breakdown of the range low that rapidly reclaims — front-runs the markup.

Spring = penetration of the range low reclaimed within $n$ bars on elevated volume:

$$ \text{spring} \iff \big(\min_{[t,t+n]}\text{low} < L_{\text{range}}\big)\ \wedge\ \big(\text{close}_{t+n} > L_{\text{range}}\big)\ \wedge\ \big(V > k\bar V\big) $$

Codified only the spring (the rest of the schematic is labeled in hindsight). Tested spring entries inside identified ranges, forward returns, costs applied.

Spring (false-breakdown reclaim)weakly tradeable
Overlap with liquidity-sweep (N-107)near-identical
Full phase-labeling (A–E, LPS, SOS)hindsight-only
Net edge of mechanized springthin, regime-dependent
PARTIAL EDGE
Wyckoff is the honest ancestor of SMC — and its one falsifiable event, the spring (a false breakdown that reclaims), is a genuinely weak-but-real pattern, essentially the same stop-run as N-107. The full schematic (which range is accumulation vs distribution, where Phase C ends) is labeled after the fact and untestable. We keep the spring as a minor context cue, discard the phase-counting.
A century before "smart money concepts," Wyckoff described the same one real thing: price pokes below support to trigger stops, then reclaims. Everything testable in the smart-money canon reduces to that single stop-run — and a stop-run alone is a thin edge.
KILLED · the deadest thing we ever tested Open →
#

Price touching the lower Bollinger Band (20, 2σ) is "oversold" and mean-reverts to the mid-band — the entry taught in virtually every beginner course.

Bands are a rolling z-score envelope:

$$ BB_{lower} = \mu_{20} - 2\sigma_{20}, \qquad \mu_{20}=\tfrac{1}{20}\sum_{i=1}^{20}C_{t-i} $$

The taught trade: long the touch, exit at $\mu_{20}$.

Long on close back above the band after a touch, exit at mid-band, −3% failsafe, 12h cap. 30 most-liquid USDT-M perps, 84 days of 5m bars, 0.20% round-trip friction. n = 11,938 trades.

Trades11,938
Win rate40%
Mean net per trade−0.20%
Profit factor0.48
t-statistic−19.9
KILLED
The single most-taught entry in retail trading is, on modern crypto perps, a fee-donation machine. PF 0.48 on n=11,938. No filter we tried rescues it.
Mean-reversion signals must beat the friction floor, not zero. On 5m crypto, 0.20% round trip is a wall that band-touch reversion never clears.
KILLED · 20% win rate Open →
#

When the fast EMA crosses above the slow EMA the trend has turned; ride it until the death cross. The most-viewed strategy format on trading YouTube.

EMA_t = \alpha C_t + (1-\alpha)\,EMA_{t-1}, \qquad \alpha=\tfrac{2}{n+1}

The cross is a lagging filter of a lagging filter — by construction it fires after the move.

Long on 9>21 cross, exit on reverse cross or 48h. Same universe / friction / split as N-109. n = 9,373.

Trades9,373
Win rate20%
Mean net per trade−0.18%
Profit factor0.67
t-statistic−7.7
KILLED
A 20% win rate with 2:1-style exits nets −0.18%/trade on nine thousand trades. The golden cross is a lagging description of the past, not a forecast.
Any signal built purely from smoothed price is late by construction. Late + fees = negative, regardless of how clean the chart examples look.
KILLED · fees eat the bounce Open →
#

RSI below 30 marks capitulation; buying the cross back above 30 captures the bounce. Sold as a "high win-rate" entry in countless courses.

RSI = 100 - \frac{100}{1+RS}, \qquad RS=\frac{\overline{gain}_{14}}{\overline{loss}_{14}}

Long when RSI crosses up through 30, exit at RSI 50 or 12h. Same universe / friction / split. n = 4,012.

Trades4,012
Win rate48%
Mean net per trade−0.19%
Profit factor0.62
t-statistic−6.9
KILLED
Positive-sounding win rate, negative expectancy: the textbook asymmetry trap. −0.19%/trade over four thousand trades, t = −6.9.
Never evaluate an entry by win rate. Evaluate the full distribution — one fat left tail erases a month of small bounces.
KILLED · negative both halves Open →
#

A close above the recent swing high ("break of structure" in SMC vocabulary) signals continuation; buy the breakout. The trend-following half of every SMC course.

\text{BOS}: \quad C_t > \max(H_{t-48..t-2}) \times 1.002

Long the breakout close, SL −2%, TP +4%, 12h cap. Same universe / friction. n = 2,284, time-split 60/40.

Trades2,284
Win rate39%
Mean net per trade−0.20%
Test-half mean−0.34%
t-statistic−4.1
KILLED
Buying the most visible level on the chart nets −0.20%/trade. If a structure break is obvious enough to teach, it is obvious enough to fade.
The breakout premium documented in older equity literature does not survive on crypto perps where stop-hunting is an industry.
KILLED · the crown jewel is dead Open →
#

When price wicks below a swing low ("sweeps liquidity") and closes back above, smart money has filled longs on retail stops; buying the reclaim rides the reversal. The single most-marketed SMC setup.

\text{sweep}: \quad L_t < 0.997\\times\\min(L_{t-48..t-4})\\ \\wedge\\ C_t > \min(L_{t-48..t-4})

Long the reclaim close, SL under the sweep wick, TP at 2R, 8h cap. Same universe / friction / split. n = 1,496.

Trades1,496
Win rate34%
Mean net per trade−0.26%
Profit factor0.74
t-statistic−4.4
vs random-entry control (−0.17%)WORSE than random
KILLED
The flagship SMC entry, tested as taught, loses more than buying at random moments. −0.26%/trade, PF 0.74. The story is compelling; the cash flow is not.
A mechanism story ("smart money", "liquidity grab") is not evidence. If the setup cannot beat a random-entry control with identical risk structure, the story is decoration.
KILLED · zero after fees Open →
#

A three-candle gap (candle 1 high below candle 3 low) is an "imbalance" that price returns to fill; buying inside the gap rides the continuation.

\text{bullish FVG}: \quad L_{t} > H_{t-2}\times 1.006, \qquad \text{entry at } \tfrac{L_t + H_{t-2}}{2}

Limit at gap midpoint on retrace, SL under gap base, TP 2R. Same universe / friction / split. n = 1,151.

Trades1,151
Win rate41%
Mean net per trade+0.05%
Profit factor1.08
t-statistic1.1 — statistically zero
KILLED
Not a scam, just not an edge: the effect exists at roughly fee-size and nets to noise. You trade a thousand times to end where you started, minus stress.
An effect equal to the cost of trading it is economically nonexistent. "Statistically visible" and "monetizable" are different bars.
PARTIAL · real but decaying in-window Open →
#

After an impulse leg, the 0.618–0.65 retracement zone is a high-probability continuation entry — the "golden pocket" of fib-based courses.

\text{zone} = [\,H - 0.65\,(H-L),\; H - 0.618\,(H-L)\,], \qquad \text{impulse } \tfrac{H-L}{L} \ge 6\%

Long the first touch of the zone (setup void on new high or 0.786 break), SL under 0.786, TP at the prior high. Same universe / friction / split. n = 462.

Trades462
Win rate39%
Mean net per trade+0.80%
Profit factor1.57
t-statistic2.6
Train / test halves+1.22% / +0.38%
Random-in-uptrend control−0.18%
PARTIAL EDGE
A real pullback-timing effect hides under the fib branding: +0.80%/trade vs a negative control. Honest caveats: one 84-day window, n=462, and the out-of-sample half is materially weaker. Tradeable edge? Marginal. "Top strategy"? No.
When a retail setup works, it usually works because it accidentally encodes an old academic effect (momentum pullback) — not because of the numerology used to sell it.
PARTIAL · the one that survived Open →
#

The last opposing candle before an impulsive move ("order block") marks institutional inventory; price returning to that zone finds support. The most defensible claim in the SMC canon.

\text{impulse}: \tfrac{C_t - C_{t-3}}{C_{t-3}} \ge 2.5\%, \qquad \text{OB} = \text{last red candle in } [t-10, t-3]

Entry on first return into $[L_{OB}, H_{OB}]$; SL under the block; TP at 2R.

Same universe / friction / split as the whole series. n = 604. Benchmarked against BOTH controls (random 2:1: −0.17%; random-in-uptrend: −0.18%).

Trades604
Win rate49%
Mean net per trade+0.83%
Profit factor1.73
t-statistic5.0
Train / test halves+1.09% / +0.59% — both positive
PARTIAL EDGE
The one that survived: +0.83%/trade, PF 1.73, positive in both halves, beats random controls decisively. Still a single 84-day window on one venue — and note the irony: the least-marketed, most mechanical SMC component is the only one that tests positive, while the flagship "liquidity sweep" loses to random.
Test the mechanical core of any narrative strategy. Sometimes a real (old, known) effect hides under new branding — and it is never the part the marketing screams about.
META · the control that convicts the industry Open →
#

Meta-entry. Any long entry rule with SL −1.5% / TP +3% evaluated in our window should be benchmarked against firing the same trade at RANDOM times: if a "strategy" cannot beat random, its content is zero.

Expected net of a random 2:1 long with win probability $p$:

$$ \mathbb{E}[r] = p\cdot 3\% - (1-p)\cdot 1.5\% - 0.20\% $$

Random timing in our window realizes $p=0.38$ → $\mathbb{E}[r]=-0.17\%$: the friction floor.

5,517 pseudo-random long entries (fixed grid) + 1,713 random entries conditioned on an active uptrend, identical exits, identical friction, same 30-symbol universe and 84 days as the whole N-109…N-116 series.

Random 2:1 long−0.17%/trade · t = −8.0
Random long in uptrend context−0.18%/trade
Course setups that beat random2 of 8
Course setups worse than random1 (liquidity sweep)
KILLED
The product being sold in most retail trading courses is hope with a fee schedule. If a vendor will not show you n, friction assumptions, and a random-entry control, you are the exit liquidity.
Demand three numbers from anyone selling a strategy: sample size, net-of-fees expectancy, and performance versus a random control with the same risk structure. Refusal is the answer.
KILLED · 24% win rate on 13k trades Open →
#

The MACD histogram turning positive signals momentum ignition; long the cross, exit the reverse cross. Arguably the most-screenshotted indicator in existence.

MACD_t = EMA_{12}(C) - EMA_{26}(C), \qquad hist_t = MACD_t - EMA_9(MACD)

Long on histogram cross-up, exit on cross-down or 48h. 30 most-liquid USDT-M perps, 84d of 5m bars, 0.20% round-trip friction, time-split. n = 13,430.

Trades13,430
Win rate24%
Mean net per trade−0.17%
Profit factor0.64
t-statistic−10.9
KILLED
The most famous indicator in retail trading nets −0.17%/trade with a 24% win rate. It describes the past beautifully and predicts nothing.
Every transformation of price alone is lagging by construction. Stacking two lags (MACD of EMA) doubles the delay, not the insight.
KILLED · the cloud does not help Open →
#

Tenkan crossing above Kijun with price above Kijun is the canonical Ichimoku long trigger — sold as a complete "system" in weekend courses.

Tenkan = \tfrac{\max H_9 + \min L_9}{2}, \qquad Kijun = \tfrac{\max H_{26} + \min L_{26}}{2}

Long TK cross-up with price above Kijun, exit reverse cross or 48h. Same harness as the whole series. n = 6,785.

Trades6,785
Win rate26%
Mean net per trade−0.16%
Profit factor0.71
t-statistic−6.7
KILLED
A −0.16%/trade system with a 26% win rate, negative in both halves. The vocabulary is exotic; the losses are ordinary.
Renaming a moving average does not change its information content.
KILLED · t = −14.7 Open →
#

A candle with a long lower wick (≥2× body) printed at a local low shows "rejection" — buyers stepped in; long the close. Price-action course staple #1.

wick_{low} \ge 2\times|C-O| \;\wedge\; wick_{low} \ge 0.6\,(H-L) \;\wedge\; L_t \le \min L_{48}\times1.002

Long the pin close, SL under the wick, TP 2R, 8h cap. Same harness. n = 5,866.

Trades5,866
Win rate32%
Mean net per trade−0.20%
Profit factor0.56
t-statistic−14.7
KILLED
The single most-taught candlestick nets −0.20%/trade with t = −14.7. Candle anatomy is narrative, not signal.
A candlestick is one sample of intra-bar order flow. Reading intent from its shape is palm-reading with OHLC data.
KILLED · engulfed by fees Open →
#

A green candle whose body engulfs the prior red body at a local low signals reversal — long the close. Price-action staple #2.

C_{t-1}O_t \;\wedge\; O_t \le C_{t-1} \;\wedge\; C_t \ge O_{t-1}

Long the engulfing close near a 48-bar low, SL under both lows, TP 2R. Same harness. n = 11,303.

Trades11,303
Win rate33%
Mean net per trade−0.19%
Profit factor0.64
t-statistic−16.6
KILLED
Two-candle psychology does not survive contact with a fee schedule.
The more often a pattern fires, the more certain its verdict — and the more fees it donates while you find out.
KILLED · the "institutional level" myth Open →
#

"Institutions execute at VWAP", so price pulling back to the daily VWAP from above finds algorithmic support — long the touch. A day-trading course favorite.

VWAP_t = \frac{\sum_{session} C_i V_i}{\sum_{session} V_i}

Price above VWAP for 1h, touch and close back above → long, SL −1%, TP +2%. Daily anchor (00:00 UTC). Same harness. n = 2,592.

Trades2,592
Win rate36%
Mean net per trade−0.18%
Profit factor0.70
t-statistic−8.0
KILLED
VWAP is an accounting benchmark, not a support level. Trading bounces off an average nets exactly the friction floor: −0.18%/trade.
A level is only tradeable if someone is economically compelled to act there. Nobody is compelled at VWAP.
KILLED · the spring is a trapdoor Open →
#

A false break below a mature trading range that instantly reclaims ("spring") marks the end of accumulation — the classic Wyckoff long trigger, heavily marketed in 2024-26 course culture.

\text{range}_{96}: \tfrac{H_r-L_r}{L_r}\le 5\% ; \quad \text{spring}: L_t \in (0.99\,L_r,\,L_r), \; C_t > L_r

Long the reclaim close, SL under the spring wick, TP 2R, 12h cap. Same harness. n = 2,058.

Trades2,058
Win rate33%
Mean net per trade−0.21%
Profit factor0.59
t-statistic−10.5
KILLED
A 1930s tape-reading heuristic, retested on 2026 crypto: −0.21%/trade, PF 0.59. The accumulation story is unfalsifiable; the losses are not.
If two differently-branded setups (spring, liquidity sweep) share one mechanical definition, they share one fate. Test the definition, not the brand.
KILLED · volume confirms nothing Open →
#

"Volume confirms the move": a strong green candle on ≥4× average volume signals institutional participation — long the continuation.

V_t \ge 4\,\overline{V}_{72} \;\wedge\; \tfrac{C_t-O_t}{O_t}\ge 0.4\%

Long the spike close, SL −1.5%, TP +3%, 8h cap. Same harness. n = 1,988.

Trades1,988
Win rate38%
Mean net per trade−0.17%
Profit factor0.82
t-statistic−4.0
KILLED
Volume tells you a move happened. It does not tell you it will continue. −0.17%/trade — precisely random after fees.
Confirmation that arrives with the move is late by definition. Paying up for "confirmed" entries is paying for comfort, not edge.
PARTIAL · same effect, third costume Open →
#

A tight consolidation ("base") followed by an impulsive rally marks a demand zone; the first return to the base finds unfilled buy orders. The supply-and-demand course canon.

\text{base}: \tfrac{H_b-L_b}{L_b}\le 1\% \text{ over } \ge 30\text{min}; \quad \text{impulse}: +3\% \text{ in } 30\text{min}; \quad \text{entry at first return to } H_b

Long the first retest of the base top, SL under the base, TP 2R. Same harness. n = 59 (the setup is genuinely rare when defined strictly).

Trades59
Win rate56%
Mean net per trade+0.57%
Profit factor2.02
t-statistic2.6
Train / test halves+0.51% / +0.61% — both positive
PARTIAL EDGE
Positive (+0.57%/trade, PF 2.02) but rare and thin-sampled. Together with N-115/N-116 it triangulates ONE real retail-accessible effect: momentum-pullback to impulse origin. Everything else in the course catalog tested dead.
When three independently-branded setups survive testing and share one mechanical core, the core is the finding. Buy the pullback in a fresh impulse; ignore the mythology attached to it.

Хотите такую же строгость для вашей стратегии?

Мы систематически бэктестим, валидируем и убиваем стратегии, пока что-то не выживет. Есть идея алгоритма или нужен доступ к живым сигналам? Начните здесь.