Our own EMA cross, 18 runs: a real edge, and a thin one

A teardown of a strategy from our own library. Every number in the results table is the tool's saved output; the reading at the end is ours and is marked as such.

2026-09-08 · our own library entry, run as published

The claim. "EMA Cross Momentum" sits in this site's official library with the description "Fast EMA(9) crossing above slow EMA(21) rides short-term momentum; the reverse cross exits. Trend-following 101." Its published card shows AAPL on 1-hour bars over six months: 19 trades, +18.09% against +21.05% for holding, and the label it has carried since publication — Read with caution. Teardown #1 was someone else's strategy and #2 was a textbook rule; this one is ours, run exactly as published.

What we ran. The library entry's code, unchanged: long when EMA(9) crosses above EMA(21), flat when it crosses back below, 100% of equity, 3% stop-loss, 9% take-profit, no costs modelled (the cost panel re-runs the trades at 5–50 bps afterwards). Three axes: the published timeframe on eight large US names over the two years our feed provides for hourly bars; the same names on daily bars over 25 years; and the two largest crypto perpetuals on hourly bars over the ~7 months the server fetch returns. Anyone can reproduce the stock runs on the free tier from the library card.

Results — 18 runs.

RunTradesWin rateMax DDStrategy returnBuy & holdVerdict flagCost panelBreak-even cost
AAPL · 1h · 2024–20267236.1%17.24%+24.96%+42.17%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs15.5 bps
SPY · 1h · 2024–20267133.8%13.67%+18.68%+39.28%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs12.1 bps
QQQ · 1h · 2024–20267435.1%13.91%+23.15%+51.06%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs14.1 bps
NVDA · 1h · 2024–20266942.0%17.33%+55.34%+111.19%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs32.0 bps
MSFT · 1h · 2024–20266529.2%19.89%+7.25%+23.59%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs5.4 bps
AMZN · 1h · 2024–20267429.7%25.28%−9.93%+48.30%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs— (loses at 0)
JPM · 1h · 2024–20267237.5%11.07%+21.73%+65.93%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs13.7 bps
XOM · 1h · 2024–20266830.9%15.50%+13.60%+39.79%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs9.4 bps
AAPL · 1d · 2001–202612241.0%20.33%+737.05%+105,363.87%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs87.7 bps
SPY · 1d · 2001–202612740.2%23.32%+166.40%+638.44%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs38.7 bps
QQQ · 1d · 2001–202613534.8%20.14%+111.29%+2,204.36%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs27.8 bps
NVDA · 1d · 2001–202612635.7%30.05%+357.37%+81,227.45%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs60.5 bps
MSFT · 1d · 2001–202613533.3%35.43%+99.76%+1,788.87%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs25.6 bps
AMZN · 1d · 2001–202612340.7%29.25%+1,128.44%+68,928.04%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs102.7 bps
JPM · 1d · 2001–202613738.0%33.53%+147.04%+917.42%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs33.1 bps
XOM · 1d · 2001–202614234.5%49.83%−18.79%+297.19%UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with cautionDies at realistic costs— (loses at 0)
BTC/USDT · 1h · Feb–Sep 202611032.7%13.70%+9.01%+17.56%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs3.9 bps
ETH/USDT · 1h · Feb–Sep 202611531.3%18.27%+8.15%+28.29%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs3.4 bps

All 18 carry the tool's UNDERPERFORMS_HOLD and NO_COSTS flags; XOM daily also carries HIGH_DRAWDOWN. None carries a sample-size flag — this is the first teardown where every run has enough trades for the ratios to mean something.

The tool's own words.

Our reading (not the tool's).

  1. The label was right. Our card said "Read with caution" on a six-month sample; two years and 65–74 trades per name say the same thing with better data. Fifteen of eighteen runs are profitable before costs, so the rule is not noise — but seven of eighteen die at a 10 bps round trip and four more hold on by 12–15 bps. A strategy whose verdict flips inside the range of a normal retail commission is not an edge you can bank.
  2. Why it is thin. Win rates of 29–42% with a 3% stop and a 9% target mean the profit is made by a minority of trades that reach the target while the majority are stopped out. That works on paper only when nothing is skimmed off each trade; at 30–40 trades a year on hourly bars, a 10 bps round trip is a 3–4% annual drag on a strategy that nets 4–25% a year here.
  3. Daily bars survive costs and still lose the comparison. On 25 years of daily data the rule trades ~5 times a year, so even 25–100 bps round trips leave it profitable — and it still finishes far behind holding on every name, because a 3%/9% bracket on multi-year trends sells the winners early. XOM is the failure mode in full: −18.8% and a 49.8% drawdown.
  4. Crypto is the harshest test. On BTC and ETH the edge survives about 3.5–4 bps — less than a typical perpetual taker round trip. The library card runs this on crypto perpetuals by default; that is where the cost panel should be read first.
  5. What we did to our own catalog. Nothing. The entry keeps its label, its code and its numbers. The point of a library that carries "Read with caution" on most of its cards is that the caution is measured, not decorative.

Honest limits. Hourly stock history is capped at two years by our feed, crypto at 5,000 bars by the server fetch; the 25-year daily runs are one regime sequence; long-only; stops and targets fill at the close of the bar that crosses them; no slippage or taxes. Where a run ended in an open position the tool shows it separately and it is not in the return.

Receipts

18 share pages, open without an account (each shows the tested window, bar count, verdict and cost panel):

The library entry itself: https://stlab.app/library/8065b644-fb13-46f4-9192-a4349c075a6c

Simulated results on historical data — research output, not financial advice. Past performance does not guarantee future results.

All published strategies