Skip to main content
EMAIndicator

About

What emaindicator.com is.

A data-first research site for traders who use exponential moving averages on Indian indices. Built around the idea that crossovers are only useful when you know the regime they fire in — so we publish regime classification, whipsaw counts, multi-timeframe alignment, and 5-year backtests alongside every signal.

What we track

  • NIFTY 50 and BANK NIFTY
  • 4 timeframes: 5-minute, 15-minute, 1-hour, daily
  • 5 EMA pairs: 9/21, 9/26, 12/26, 20/50, 50/200
  • 1 SMA pair: 50/200 (the textbook Golden / Death Cross)
  • Live regime classification on 1-hour and daily
  • 30-day whipsaw counts for 5m and 15m crossovers
  • Multi-timeframe alignment across all 4 timeframes simultaneously

How the data flows

  • OHLCV from Yahoo Finance's chart API every 5 minutes
  • 5 years of daily history pre-loaded; rolling tops up
  • All computation persisted to a Postgres database — every refresh writes a snapshot
  • Backtests recomputed nightly at 00:30 IST
  • JSON snapshot endpoint at /api/v1/snapshot.json for partner integrations
  • All times displayed in IST; stored in UTC

Open methodology

Every formula, parameter, and backtest result is published. There's no proprietary signal under a paywall — the classifier rules, EMA spans, whipsaw definition, and all forward-return statistics are documented in plain English on the methodology page. If we change a parameter we say so.

The methodology page also publishes the t-statistics from the 5-year backtest of the regime classifier — including the cases where the t-stat is below the conventional significance threshold. We'd rather show honest numbers than promise edges that don't exist. If a reader concludes from the data that a particular signal isn't tradeable, that's a useful conclusion.

What this site is not

Refresh schedule and data quality

The live snapshot recomputes every 5 minutes during market hours and continues to refresh outside hours. Yahoo's chart API is occasionally rate-limited from data-centre IPs; when that happens the site shows the last known snapshot with a "data temporarily unavailable" note rather than a broken page.

The 5-year history backfill happens once on first start. After that, every 5-min refresh upserts the latest bars into the database. There is no separate "live" feed and "historical" archive — the same Postgres rows back every page on the site.

Disclaimer

Educational and research use only. Nothing on emaindicator.com is investment advice, and past performance of any moving-average strategy does not guarantee future results. EMA and SMA crossovers fail frequently in ranging markets — the whipsaw counter on every page exists precisely to make that visible. Trade at your own risk and use a stop loss.

Get in touch

Corrections, data questions, partnership: /contact/