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

MACD Cross (12/26/9)

Conditionalalpha score 41 / 100

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

§ Verdict rationale

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

§ Alpha score breakdown

Out-of-sample edge
+11 /40
Regime stability
+21 /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 ×4.19buy-and-hold · ends ×5.73normalized to ×1.00 at window start
Sharpe
0.56
vs B&H (median)
-61.0pp · 4/18 beat
Max DD (worst)
-83.8%
PF
1.08
Win
41%
Trades
9913

§ All 18 cells — including the ugly ones

Market · TFSharpeReturnvs B&HMax DDWinTrades
BTCUSD 1H0.05-52.4%-1433.7pp-83.8%36%3004
BTCUSD 4H0.57+583.0%-784.3pp-74.1%38%734
BTCUSD 1D0.83+2219.8%+830.3pp-51.7%39%117
ETHUSD 1H0.56+690.3%+162.2pp-65.5%37%2969
ETHUSD 4H0.59+811.4%+296.2pp-78.3%38%742
ETHUSD 1D0.63+1063.8%+536.5pp-69.3%37%120
SPX500 1H0.50+15.2%-57.0pp-17.6%42%185
SPX500 4H1.30+33.8%-37.9pp-8.6%49%63
SPX500 1D0.50+101.0%-482.3pp-15.7%46%171
QQQ 1H0.32+11.5%-81.4pp-22.6%42%187
QQQ 4H0.76+26.8%-65.1pp-19.6%44%66
QQQ 1D0.59+177.9%-1231.7pp-25.0%48%155
GOLD 1H0.61+25.8%-103.2pp-16.0%44%185
GOLD 4H0.89+44.0%-84.4pp-28.3%45%58
GOLD 1D0.33+66.6%-158.3pp-29.7%38%160
EURUSD 1H-3.33-43.7%-52.8pp-44.4%34%664
EURUSD 4H-0.41-6.5%-15.6pp-11.4%42%161
EURUSD 1D-0.41-33.2%-14.5pp-38.5%38%172

15 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("MACD Cross (12/26/9)", initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
3[macdLine, signalLine, histLine] = ta.macd(close, 12, 26, 9)
4longSig = ta.crossover(macdLine, signalLine)
5exitSig = ta.crossunder(macdLine, signalLine)
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 #7
Donchian Breakout (20/10)
Conditional · alpha 42
↓ Rank #9
Ichimoku Conversion/Base Cross
Conditional · alpha 41

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.