Audit #17 of 20·Strategy·@wavealgo·scored 2026-11-07

MFI Reversion (14, 20/80)

Conditionalalpha score 29 / 100

Positive risk-adjusted return in 11 of 18 cells — strongest on SPX500 · 4H (Sharpe 1.33); 7 cells lose after the 0.05% per-side fee. Median cell trails buy-and-hold by 138.1pp; 1 of 18 cells beat it.

§ Verdict rationale

Composite Sharpe 0.26 across 18 cells. The edge concentrates in SPX500 4H (Sharpe 1.33); 7 of 18 cells are negative after the 0.05% per-side fee.

§ Alpha score breakdown

Out-of-sample edge
+5 /40
Regime stability
+15 /25
Flaw penalty
0 /25
Reproduction accuracy
+9 /10

alpha = edge (0-40: clamp(compositeSharpe/2,0,1)*40) + stability (0-25: positiveCells/18*25) + flaw penalty (0 to -25: static findings, 0 across v1 catalog) + reproduction (0-10: engine oracle parity vs pine2py, 251/257 scripts = 9)

§ Equity vs buy-and-hold — fee-adjusted, per cell

strategy, fee-adjusted · ends ×1.31buy-and-hold · ends ×5.73normalized to ×1.00 at window start
Sharpe
0.26
vs B&H (median)
-138.1pp · 1/18 beat
Max DD (worst)
-96.5%
PF
1.29
Win
62%
Trades
1011

§ All 18 cells — including the ugly ones

Market · TFSharpeReturnvs B&HMax DDWinTrades
BTCUSD 1H-0.04-71.2%-1452.5pp-87.1%60%335
BTCUSD 4H0.09-45.9%-1413.2pp-81.6%62%84
BTCUSD 1D-0.12-74.1%-1463.5pp-82.6%46%11
ETHUSD 1H-0.02-84.9%-613.1pp-95.4%61%367
ETHUSD 4H-0.13-89.3%-604.5pp-96.5%54%85
ETHUSD 1D0.45+252.7%-274.6pp-88.5%92%12
SPX500 1H0.32+9.0%-63.2pp-14.5%67%21
SPX500 4H1.33+11.9%-59.7pp-3.0%100%4
SPX500 1D0.60+216.7%-366.6pp-28.7%93%14
QQQ 1H0.39+15.6%-77.3pp-17.2%68%22
QQQ 4H0.94+46.9%-45.0pp-20.2%89%9
QQQ 1D0.58+268.4%-1141.2pp-29.9%91%11
GOLD 1H0.80+28.0%-101.0pp-19.7%75%20
GOLD 4H0.19+4.3%-124.1pp-18.4%75%4
GOLD 1D0.51+72.8%-152.1pp-18.2%75%12
EURUSD 1H0.00+0.0%-9.1pp0.0%0%0
EURUSD 4H0.00+0.0%-9.1pp0.0%0%0
EURUSD 1D0.00+0.0%+18.6pp0.0%0%0

11 of 18 cells positive · best SPX500 · 4H · cells are not equal length — the composite is a median

§ The exact source that ran — Pine v5

1//@version=5
2strategy("MFI Reversion (14, 20/80)", initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
3m = ta.mfi(hlc3, 14)
4longSig = ta.crossover(m, 20)
5exitSig = ta.crossover(m, 80)
6if longSig
7 strategy.entry("L", strategy.long)
8if exitSig
9 strategy.close("L")
10plot(strategy.equity, "equity")
11plot(strategy.position_size, "pos")
12plot(strategy.closedtrades, "closed")
13plot(strategy.wintrades, "wins")
14plot(strategy.grossprofit, "gp")
15plot(strategy.grossloss, "gl")

This source was executed verbatim by the wavealgo JS engine — there is no port step to drift. The engine is oracle-verified bar-by-bar (1e-9 tolerance) against an independent Python implementation on 251/257 corpus scripts.

§ Flaw checklist

Repainting
None · signals bind to confirmed bars
Look-ahead bias
None · market orders fill at the next bar open
request.security
Not used
Sizing
100% of equity per entry · long-only
Fee model
0.05% per side on every fill · no slippage model in v1
Source
Open — the exact measured source is shown below

Verdict rules: pass: composite Sharpe >= 0.9 and >= 12/18 cells positive · cond: composite Sharpe > 0 and best cell Sharpe >= 0.9 · fail: otherwise · rep: static repaint/look-ahead finding (none in the authored v1 catalog: confirmed-bar signals, next-bar-open fills)

§ What the numbers mean

Sharpe ratio
Risk-adjusted return: mean daily return divided by its standard deviation, annualized ×√252. The composite figure is the median of the 18 cell Sharpes, not the mean — cells differ in length by an order of magnitude, and one long cell should not carry the other seventeen.
Max drawdown
The worst peak-to-trough equity loss over the window, measured on the fee-adjusted curve. What you would have sat through, not what you would have ended with. The headline figure is the deepest of the 18 cells, not their average.
Profit factor (PF)
Gross profit divided by gross loss, with fees charged to the loss side. Above 1.0 means gross gains exceeded gross losses; 1.0–1.2 is usually noise.
Win rate
Share of closed trades that closed profitable. A high win rate with a profit factor near 1 means many small wins and a few large losses — common in mean-reversion.
vs buy-and-hold
Strategy total return minus the return of simply holding the asset over the same window — the benchmark any active strategy must beat to justify existing. Shown as the median of the 18 cells plus how many cells beat it; a mean would let one long cell stand in for the rest.
Alpha score
The desk’s 0–100 composite: out-of-sample edge (0–40; the methodology page defines what out of sample means for the catalog), regime stability across cells (0–25), flaw penalty (0 to −25), reproduction accuracy (0–10). The exact formula ships with the data.

Bring your own. We grade it the same.

↑ Rank #16
Williams %R Reversal (14)
Conditional · alpha 31
↓ Rank #18
ADX-Filtered DI Cross (14, 20)
Conditional · alpha 28

Engine: resin 0.2.2 (next-bar-open fills, TV rule) · scored UTC 2026-11-07 10:58 · deterministic rerun — same data, same numbers. Backtested results are measurements of the past, not investment advice; nothing here is a recommendation to trade. wavealgo is operated by Streamize LLC.