
The configurable trend-switcher — two exponential moving averages cross, and the trade direction flips. Faster than Golden Cross, simpler than EMA Trend Bias.
EMA Cross is the configurable cousin of Golden Cross. Two Exponential Moving Averages (EMA) are computed — a fast one and a slow one — and trades fire when they cross. Unlike the rigid 50/200 SMA setup of Golden Cross, both periods are fully tunable. Default is 9/21 — short and fast — but 20/50 for swing trading or 5/13 for intraday-style reactions are all valid.
The rule is simple: when the fast EMA crosses above the slow EMA, the trend has flipped bullish — BUY. When the fast EMA crosses below, the trend has reversed — SELL.
EMAs react faster to recent prices than SMAs (they weight newer candles more heavily), which means EMA Cross catches trend changes earlier — but also more often, including false starts. To filter out weak signals, an optional confirmation filter can be enabled:
The SELL signal stays unfiltered — exit speed matters more than confirmation when the trend is turning.
| Name | Default | Range | Description |
|---|---|---|---|
| Fast EMA Period | 9 | 2–500 | Number of candles for the fast EMA. Default 9 — short and reactive. Try 20 for swing trading or 5 for intraday. |
| Slow EMA Period | 21 | 2–500 | Number of candles for the slow EMA. Default 21 — works well with fast=9 for short-term trend trades. |
The pre-baked mini-backtest is refreshed daily — check back soon or start a live run in the Arena.
Run in Arena →// Indicators
fast = EMA(close, fast_period)
slow = EMA(close, slow_period)
// Entry
if fast crosses_above slow:
if position.is_flat:
if confirmation == 'none' or confirmation_passes():
BUY
// Exit (no confirmation needed)
if fast crosses_below slow:
if position.is_long:
SELL
// Optional confirmation checks
function confirmation_passes():
if confirmation == 'volume': return volume[now] > avg(volume[-20:])
if confirmation == 'price_above_slow': return close > slow
return trueGolden Cross uses Simple Moving Averages (SMA — equal weight to all candles) with fixed 50/200 periods. EMA Cross uses Exponential Moving Averages (more weight on recent candles) with fully tunable periods. Net effect: EMA Cross reacts faster to recent price moves but generates more whipsaws in sideways markets.
EMA Trend Bias uses two EMAs **plus an ATR-based neutral zone** — trades only fire when the cross moves *through* a noise buffer defined by recent volatility. It generates far fewer signals and is much more whipsaw-resistant. Take EMA Cross when you want fast trend-flips. Take EMA Trend Bias when you want fewer, higher-conviction trades with longer hold times.
**Volume** is the classic — high volume on a cross signals real interest from market participants, low volume usually means drift. Works best on crypto and high-volume stocks. **Price-above-slow** is more defensive — it ensures the price isn't just barely above the cross point, which often whipsaws back. Try **none** first to see baseline; add a filter if your win rate is suffering from too many false starts.
The classic trend-following signal — when the 50-day SMA crosses above the 200-day SMA, the trend has flipped bullish.
Two EMAs plus an ATR-based neutral zone — like the commercial Larsson Line, but tunable, transparent, and backtested. Choose your bias.
Two weighted moving averages crossing — recent candles weight more, signals fire faster than SMA-based crosses. Validated on BTC weekly.
Check out our Strategy Insights Reports — pre-baked deep-dives with historical results, comparisons, and market context.