PerpForge
Get started

Concept · The strategy family

EMA Period ↔ Timeframe Matching

An EMA period is counted in candles, so its real-world lookback = period × candle duration — which means each fast/slow EMA pair only makes sense on a matching band of timeframes.

EMA Period ↔ Timeframe Matching

An EMA period is counted in candles, so its real-world lookback = period × candle duration — which means each fast/slow EMA pair only makes sense on a matching band of timeframes.

In plain English

An Exponential Moving Average (EMA) of period N averages the last ~N candles — not the last N minutes or days. So the actual horizon the EMA "sees" depends entirely on the timeframe (the candle interval) you run it on:

  • A 200-period EMA on a 1-day candle ≈ a 200-day trend filter.
  • The same 200-period EMA on a 1-minute candle ≈ a ~3.3-hour filter.

The number 200 is meaningless on its own. That's why pairing an EMA pair with the wrong timeframe produces signals nobody would trade:

  • Slow pair on a fast timeframe (e.g. 50/200 on 1m): fires constantly on microstructure noise, pure whipsaw, fees + funding bleed it out.
  • Fast pair on a slow timeframe (e.g. 9/21 on 1d): a 9-day vs 21-day EMA — perfectly valid, but it's just a slow swing signal, redundant with the slower pairs and firing only every few weeks.

Formula / mechanic

real-world lookback ≈ EMA period × candle duration

Match each pair to timeframes where its candle-count lookback maps to a horizon a human would actually trade:

EMA pair Role Sensible intervals
50/200 Macro / position trend (Golden & Death Cross) 4h, 1d
21/50 Swing 1h, 4h
12/26 Intraday swing (the MACD pairing) 15m, 30m, 1h
9/21 Scalp / fast intraday 1m, 5m, 15m

Why it matters for this fleet

The ema-cross spawn plan uses this affinity instead of a blind cartesian (every pair × all 7 intervals). The blind product would spawn untradeable cells (9/21 on 1d, 50/200 on 1m) and inflate the fleet for no learning. The affinity mapping still touches all 7 system intervals — it just spends the variant budget on combinations that mean something.

This dovetails with an existing fleet finding (trend following "when it fails"): a slow signal on a fast timeframe is too laggy / too noisy — the same idea viewed from the timeframe side.

Examples from the live fleet

The two ends of the band are both present in this dossier:

  • id628 (EMA 9/21 · BTC · 1-minute candles · 2× · short) — period × duration makes this a ~9-minute vs ~21-minute filter. That is below the timescale at which a trend even exists on BTC; it is reading pure microstructure noise. The result is exactly what the math predicts: win rate 10.6% (the share of trades closing in profit), profit factor ~0.11 (gross wins ÷ gross losses — i.e. losing about nine dollars for every one it makes), and a −98% drawdown. Untradeable noise.
  • id478 (EMA 50/200 · BTC · 1-day candles · 2× · long) — period × duration makes this a ~50-day vs ~200-day filter (the classic Golden/Death Cross). It holds positions on the order of a year (~381 days average), and over the ~5.75-year window it crossed only N=3 times. A sensible, slow macro filter — but so few signals that nothing statistical can be concluded (see sample size).

The contrast lands the lesson: the same signal family is untradeable noise on 1-minute candles and a coherent (if data-starved) macro filter on daily candles. Match each EMA pair to the timeframe band where its candle-count lookback maps to a horizon a human would actually trade.

(Caveat: each strategy row runs a single fixed interval, so this comparison is read across rows — id628 and id478 are different strategies, not one strategy retimed. The cross-timeframe degradation itself is a mechanical certainty from the period × duration math; the two rows simply bracket it.)

Related

Sources

  • wiki/qa-sessions/2026-06-01-session.md#q1 (first asked here)
  • .planning/threads/ema-cross.md (pair→interval affinity mapping)

Related concepts

See it in a real result →

Put it to the test

Does your idea have a real edge, or just a big number?

Spawn your variant, run it on the same engine, and read the edge-significance verdict — before you risk real money.

Test your own idea — free →Free account, no card