PerpForge
Get started

Family dossier · EMA Cross

EMA Cross: 52 variants, every one tested.

PerpForge is a perpetual-futures strategy simulator. We ran the EMA Cross across SOL, ETH, BTC, on multiple timeframes, at multiple leverage rungs, long and short. Winners and busts published together. The verdict in one sentence, the evidence, then all 52, ranked by edge significance.

The finding

Most of this family is noise. Run the canonical EMA crossovers across BTC, ETH, and SOL and the majority show no edge you can tell apart from luck. The fastest crossovers get chopped up in the candle-to-candle noise, and the famous slow golden cross trades too rarely to prove anything either way. A real edge here is the exception, not the rule, so we rank by proven edge and publish every bust beside the winners.

How many actually worked

6%
of BTC variants show a real edge
11%
of ETH variants show a real edge
28%
of SOL variants show a real edge
8/52
show a real edge

Of 52 variants with enough trades to judge (≥30 trades), 8 show an edge distinguishable from zero at 95% confidence: 8 long, 0 short. The short side was tested at the same bar (26 configs) and shows none, so this long-only edge is in-sample and window-dependent, not a directive. The rest are luck or untested. Profitable means it made money over the window; a real edge (proven, not luck) is a higher bar.



What the EMA Cross is

The EMA crossover is a trend-following signal. An EMA is computed at two speeds: a fast one over a short window and a slow one over a longer one. When the fast average crosses above the slow one, recent price is accelerating, read as an emerging uptrend, and the strategy enters long. When the fast crosses back below, it exits, and on the short side it bets the price falls. Trend-followers share a personality, and it matters for reading these numbers. They win a minority of their trades (often 25 to 45 percent) and survive on a few big winners while cutting many small losers. They make money in sustained trends and bleed in chop, where every false breakout is a losing trade. So a low win rate is normal here, not a failure by itself. The question is whether the winners are big enough to pay for the losers.


How we test the EMA Cross family, and why it's a fair test

A backtest is only worth reading if the test itself is fair. Here is every choice we make before a single EMA Cross number is computed. So a good result cannot be an artifact of how we set the test up.

We match each signal to a timeframe that suits it
A fast crossover is a scalping signal, so it earns its pages on short intervals; a slow pair is a macro signal, tested on 4-hour and daily candles. We never run a scalping pair on a monthly chart. A mismatch would fail for the wrong reason and teach you nothing about the signal itself.
We test the parameters traders actually use
The canonical fast/slow pairs are the ones cited in real technical analysis, which is why each earns a page. We do not test arbitrary combinations tuned to look good in hindsight. Curve-fit soup like "37/142" is excluded on principle: it answers no question a real person asks, and it is exactly the overfitting this site exists to call out.
We run a clean, parameter-free baseline
The strategy exits only on the reverse signal: no take-profit, no stop-loss. That is deliberate. A take-profit caps the few big winners a trend-follower lives on while leaving losers uncapped, which flatters the raw signal. The clean baseline tells you what the signal is worth before you add knobs. A stop is your variant to run, not our baseline.
The short side is a falsification control
We test both directions on the same candles. The short side is the control. If the long side works and the short side fails across the board, that gap is the fingerprint of a rising market (most of 2020 to 2026 drifted up), not proof of a removed bias. A real edge should not depend entirely on which way the market happened to move.
One uniform leverage ladder, read at 2×
Every signal runs the same rungs (1×, 2×, 10×, 50×, 100×) on both sides. Higher rungs do not find an edge the lower ones missed; they find the liquidation cliff faster. 1× is the only rung that never force-closes a trade, so 2× is the fair-test compromise: leveraged enough to matter, low enough that the verdict is not an artifact of losses truncated by liquidation. We judge each strategy once, at one rung. The five rungs share one set of trades, so read them as one experiment at five zoom levels, not five independent proofs.

A fair test is not a perfect one. Every result here is in-sample, measured on the same history the strategies were selected from, so read it as a ceiling, not a forecast. And the engine does not yet model funding or slippage, so a fair comparison between strategies is still not a faithful copy of live trading.


↑ The five that hold up

Top 5 by edge significance.

#StrategyVerdictReturnin-sampleWorst drawdowndepth · recovery
1
EMA Cross 12/26
SOL·1h·long·858 trades
+0.45Real edge+1.2%-11%·24mo
2
EMA Cross 21/50
SOL·1h·long·440 trades
+0.45Real edge+2.6%-8%·18mo
3
EMA Cross 21/50
SOL·4h·long·115 trades
+0.36Real edge+12.7%-9%·23mo
4
EMA Cross 12/26
SOL·30m·long·1744 trades
+0.24Real edge+0.5%-11%·24mo
5
EMA Cross 12/26
ETH·30m·long·1796 trades
+0.15Real edge+0.3%-5%·9mo

↓ The five worst outcomes

We publish the busts next to the winners. These are the proof we are not selling you anything: bankrupt or down more than half the starting balance.

#StrategyVerdictReturnin-sampleWorst drawdowndepth · recovery
52
EMA Cross 9/21
Heavy lossBTC·1m·short·54454 trades
-13.19No edge-0.2%-98%·71mo
51
EMA Cross 9/21
Heavy lossBTC·1m·long·59111 trades
-11.07No edge-0.1%-98%·71mo
50
EMA Cross 9/21
Heavy lossETH·1m·short·55969 trades
-10.54No edge-0.2%-98%·71mo
49
EMA Cross 9/21
Heavy lossETH·1m·long·62424 trades
-8.84No edge-0.1%-98%·71mo
48
EMA Cross 9/21
Heavy lossBTC·5m·short·14848 trades
-5.19No edge-0.2%-67%·71mo

All 52 variants · by market

How to read this table. Within each market, rows are ranked by edge significance, not by the return. So a small but proven edge outranks a big but unproven one, and a robust loser can outrank a lucky winner. Inconclusive and busted results sit at the bottom of each market. Publishing every loser is how we keep that honest.
#StrategyVerdictReturnin-sampleWorst drawdowndepth · recovery
SOL5 of 18 show a real edge
1
EMA Cross 12/26
1h·long·858 trades
+0.45Real edge+1.2%-11%·24mo
2
EMA Cross 21/50
1h·long·440 trades
+0.45Real edge+2.6%-8%·18mo
3
EMA Cross 21/50
4h·long·115 trades
+0.36Real edge+12.7%-9%·23mo
4
EMA Cross 12/26
30m·long·1744 trades
+0.24Real edge+0.5%-11%·24mo
5
EMA Cross 50/200
4h·long·33 trades
+0.14Real edge+49.4%-37%·28mo
6
EMA Cross 9/21
15m·short·4655 trades
-1.83No edge-0.2%-40%·67mo
7
EMA Cross 9/21
Heavy loss5m·short·14451 trades
-2.68No edge-0.1%-64%·64mo
8
EMA Cross 9/21
Heavy loss1m·long·70377 trades
-3.67No edge-0.1%-98%·63mo
9
EMA Cross 9/21
Heavy loss1m·short·59726 trades
-4.72No edge-0.1%-98%·69mo
10
EMA Cross 12/26
15m·long·3584 trades
-0.11Inconclusive+0.2%-14%·28mo
11
EMA Cross 9/21
15m·long·4655 trades
-0.25Inconclusive+0.1%-14%·31mo
12
EMA Cross 21/50
4h·short·115 trades
-0.73Inconclusive+0.3%-14%·44mo
13
EMA Cross 12/26
1h·short·858 trades
-0.90Inconclusive-0.1%-17%·69mo
14
EMA Cross 21/50
1h·short·440 trades
-0.92Inconclusive-0.1%-25%·69mo
15
EMA Cross 50/200
4h·short·33 trades
-1.03Inconclusive-1.1%-13%·40mo
16
EMA Cross 9/21
5m·long·14450 trades
-1.19Inconclusive+0.0%-49%·62mo
17
EMA Cross 12/26
30m·short·1743 trades
-1.43Inconclusive-0.3%-25%·69mo
18
EMA Cross 12/26
15m·short·3584 trades
-1.67Inconclusive-0.2%-34%·69mo
ETH2 of 18 show a real edge
1
EMA Cross 12/26
30m·long·1796 trades
+0.15Real edge+0.3%-5%·9mo
2
EMA Cross 21/50
1h·long·458 trades
+0.04Real edge+1.2%-8%·19mo
3
EMA Cross 9/21
15m·short·4764 trades
-1.98No edge-0.1%-30%·70mo
4
EMA Cross 9/21
5m·long·14854 trades
-2.41No edge-0.1%-52%·60mo
5
EMA Cross 9/21
Heavy loss5m·short·14854 trades
-3.71No edge-0.1%-60%·71mo
6
EMA Cross 9/21
Heavy loss1m·long·62424 trades
-8.84No edge-0.1%-98%·71mo
7
EMA Cross 9/21
Heavy loss1m·short·55969 trades
-10.54No edge-0.2%-98%·71mo
8
EMA Cross 21/50
4h·long·118 trades
-0.04Inconclusive+4.2%-7%·28mo
9
EMA Cross 50/200
4h·long·36 trades
-0.06Inconclusive+15.1%-8%·44mo
10
EMA Cross 12/26
1h·long·888 trades
-0.14Inconclusive+0.4%-9%·38mo
11
EMA Cross 12/26
15m·long·3654 trades
-0.29Inconclusive+0.1%-9%·43mo
12
EMA Cross 9/21
15m·long·4763 trades
-0.72Inconclusive+0.0%-13%·63mo
13
EMA Cross 21/50
1h·short·458 trades
-0.74Inconclusive-0.1%-8%·44mo
14
EMA Cross 12/26
30m·short·1797 trades
-0.92Inconclusive+0.0%-13%·70mo
15
EMA Cross 50/200
4h·short·35 trades
-1.05Inconclusive-4.3%-12%·65mo
16
EMA Cross 21/50
4h·short·118 trades
-1.14Inconclusive-1.1%-10%·71mo
17
EMA Cross 12/26
1h·short·888 trades
-1.15Inconclusive-0.2%-14%·70mo
18
EMA Cross 12/26
15m·short·3655 trades
-1.48Inconclusive-0.1%-22%·70mo
BTC1 of 16 show a real edge
1
EMA Cross 21/50
4h·long·116 trades
+0.09Real edge+4.1%-6%·25mo
2
EMA Cross 12/26
30m·short·1829 trades
-1.65No edge-0.2%-18%·70mo
3
EMA Cross 12/26
15m·short·3763 trades
-2.31No edge-0.2%-28%·70mo
4
EMA Cross 9/21
15m·short·4901 trades
-2.72No edge-0.2%-34%·71mo
5
EMA Cross 9/21
Heavy loss5m·long·14847 trades
-3.72No edge-0.1%-58%·64mo
6
EMA Cross 9/21
Heavy loss5m·short·14848 trades
-5.19No edge-0.2%-67%·71mo
7
EMA Cross 9/21
Heavy loss1m·long·59111 trades
-11.07No edge-0.1%-98%·71mo
8
EMA Cross 9/21
Heavy loss1m·short·54454 trades
-13.19No edge-0.2%-98%·71mo
9
EMA Cross 21/50
1h·long·473 trades
-0.12Inconclusive+0.7%-9%·29mo
10
EMA Cross 12/26
1h·long·889 trades
-0.25Inconclusive+0.3%-8%·28mo
11
EMA Cross 12/26
30m·long·1828 trades
-0.38Inconclusive+0.1%-6%·26mo
12
EMA Cross 12/26
15m·long·3762 trades
-0.98Inconclusive+0.0%-16%·64mo
13
EMA Cross 21/50
4h·short·116 trades
-1.04Inconclusive-0.8%-8%·70mo
14
EMA Cross 21/50
1h·short·473 trades
-1.25Inconclusive-0.4%-13%·70mo
15
EMA Cross 9/21
15m·long·4900 trades
-1.34Inconclusive-0.1%-22%·65mo
16
EMA Cross 12/26
1h·short·889 trades
-1.36Inconclusive-0.3%-13%·70mo
Every variant we ran, winners and busts together. All strategy families in-sample · Binance · Sep 2020 – Jul 2026flat fees + conservative slippage · no funding · as of Jul 2026

What this engine models, and what it doesn't

Trading fees — Yes. A flat cost charged on both the entry and the exit of every trade.
Liquidation — Yes. Force-close when losses eat through your margin.
Funding ratesNo. The recurring payment that keeps a perp tethered to spot. Not modeled, so real results would be slightly worse.
Bid/ask spread & market impact — Yes. Every fill is charged the gap between the buy and sell price, plus a little extra for larger trades in a thin market. We size it conservatively, so real fills may cost slightly more.

The next experiment

The fast variants bled out in chop. Does a volatility filter save them?

We never tested these crossovers with a filter that sits out sideways markets. Pre-fill the Lab with one and find out. Your pair, your timeframe, the same engine these 52 ran on.

Run your own idea Free account, no card