Death Cross
Free Death Cross indicator for MT5: marks 50/200 MA crosses on closed bars, with regime panel and alerts. Lab repaint test: 0 of 36 signals changed.

- Repainted
- 0 / 36
- Signals / week
- ≈ 2.8
- Tested on
- EURUSD M15
- Tested
- 2026-10-09
Overview
Death Cross is a free MT5 indicator that draws a fast and a slow moving average on your price chart (SMA 50 and SMA 200 by default). It places an arrow on the closed bar where the fast line drops below the slow one. In the Lab's repaint test on EURUSD M15, 0 of 36 signals changed after the bar closed.
It is for swing and position traders who want a clear, alertable signal when a market turns bearish, and a way to check whether that turn is holding or just chop.
What the Death Cross indicator draws on your chart
A Death Cross is the moment a faster moving average closes below a slower one, which many traders read as the start of a bearish phase. A Golden Cross is the mirror case.
The indicator draws everything in the main chart window, not in a separate subwindow:
- Fast MA and Slow MA lines. These are the two averages being compared.
- Death Cross arrow. It is the main signal and the only one that triggers alerts.
- Golden Cross arrow. This is a secondary arrow that ends the bearish regime.
- Regime Zone shading. A rectangle colours each bearish or bullish stretch from one cross to the next.
- Regime panel. This is an on-chart status card. The next tab explains how to read it row by row.
The Lab tested version 1.03 (110.1 KB) on MT5 build 6230 on 2026-10-09. Version 1.03 added the panel's history row, which counts how past Death Crosses on your chart played out.
How the Lab tested it
The test ran on EURUSD M15 from 2026-07-09 to 2026-10-08, using real ticks from Raw Trading Ltd, with default inputs. The Lab logged every arrow as it appeared and then checked whether any of them later moved or disappeared.
- Repaint: 0 of 36 signals changed, and the maximum arrow delay was 0 bars. An arrow you see on a closed bar stays where it is. It also appears on the bar where the cross is confirmed, not several bars later.
- Frequency: 2.8 signals per week across both arrows, which works out to 1.4 Death Crosses and 1.4 Golden Crosses per week. Even on M15, 50/200 crosses are rare, so the indicator suits waiting for a signal, not trading often.
What the signals did next
The Lab also checked whether price first moved 1 ATR in the arrow's direction or 1 ATR against it. ATR (Average True Range) is the market's normal bar-to-bar range. For a Death Cross, the arrow's direction is down. The chart below compares the two arrows.
Scale zoomed in to show the difference (bars do not start at zero).
Here is what those numbers mean for you:
- Death Cross: 58.8%. Price hit 1 ATR lower before 1 ATR higher a little more often than a coin flip would. The median time to that move was 4.0 bars, and 5.6% of Death Crosses reached neither level within 20 bars. That edge is too small to sell on the arrow alone. Use it as a regime signal and confirm it with a filter.
- Golden Cross: 61.1%, with a median of 3.0 bars and 0.0% left unresolved after 20 bars. In this sample, price reached 1 ATR up first in 61.1% of Golden Crosses, with a median of 3 bars.
- Overall: 60%, a median of 3 bars, and 2.8% unresolved after 20 bars.
The test covered one symbol, one timeframe and three months, so 18 signals per arrow is a small sample. Treat these numbers as a description of that period, not a forecast.
Who should use it and who should skip it
It fits traders who already trade with the trend, want an objective rule for when the trend has turned bearish, and value seeing whether a cross is clean or part of a choppy stretch. Skip it if you scalp or need several setups a day. A 50/200 cross is a slow, lagging signal by design.
How it works
- 1Calculates a fast and a slow moving average on the chosen price.
Fast MA over FastPeriod, Slow MA over SlowPeriodInputs: FastPeriod, SlowPeriod, MAMethod, AppliedPrice - 2Death Cross is marked when the fast average falls from at or above the slow one to below it.
Death: Fast < Slow now and Fast >= Slow on previous bar - 3Measures separation between the averages as percent of the slow average and in ATR, strong above a threshold.
Separation % = (Slow - Fast) / Slow x 100 | strong if >= MinSeparationPct or ATR separation >= StrongSeparationATRInputs: SeparationMode, StrongSeparationATR, MinSeparationPct - 4Warns of whipsaw when at least two crosses happened within the chop lookback.
Whipsaw if crosses in ChopLookbackBars >= 2Inputs: ChopLookbackBars - 5Can read the same averages on a higher timeframe and, if required, only alert when they confirm the bearish side.
Higher timeframe confirms if Fast < Slow thereInputs: UseHigherTF, HigherTFMode, HigherTFManual, RequireHTFConfirm
Specifications
- Platform
- MetaTrader 5
- Version
- 1.03
- Type
- Indicator
- Window
- Main chart
- Draws
- 2 lines, 2 arrows, 1 zone, 1 panel
- Alerts
- popup, push, sound
- Repaints
- No (0 of 36 signals changed)
- Inputs
- 23
- Tested on
- MT5 build 6230 · 2026-10-09
Repaint test
No repaint detected. In a 9 Jul 2026 – 8 Oct 2026 test on EURUSD M15 (Raw Trading Ltd real ticks), 36 signals were logged at bar close and re-read at the end of the test: 0 changed. Arrows print on the bar that closes the signal, with no delay.
IndicatorFree — tested 2026-10-09 · MT5 build 6230 · Raw Trading Ltd real ticks. Results come from historical data, not live trading, and do not guarantee future results.
Signal statistics
Over 9 Jul 2026 – 8 Oct 2026 on EURUSD M15, the indicator printed 36 arrows. After 60% of them, price moved 1×ATR(14) in the arrow's direction before moving 1×ATR against it (median 3 bars). 2.8% reached neither level within 20 bars.
This measures price movement after the arrow, not a trading result. It includes no spread, commission, stop loss or position sizing.
What it draws
- A line (Fast MA) from buffer 0.
- A line (Slow MA) from buffer 1.
- Arrows (Death Cross) from buffer 2, drawn on the closed bar.
- Arrows (Golden Cross) from buffer 3, drawn on the closed bar.
- Rectangles (Regime Zone) drawn as chart objects, not buffers — they are not readable by iCustom() in an EA.
- An on-chart panel (Regime); values shown in the panel are not exposed as buffers.
Inputs
| Input | Default | What it does |
|---|---|---|
| FastPeriod | 50 | Fast MA period (5-100) |
| SlowPeriod | 200 | Slow MA period (50-400) |
| MAMethod | Sma | MA method for both lines (SMA = classic Death Cross) |
| AppliedPrice | Close | Price used by both MAs |
| SeparationMode | ATR (gap / ATR of SlowPeriod, same meaning on every symbol) | How the gap between the MAs is measured for the "Strong" label |
| StrongSeparationATR | 1 | ATR mode: gap in ATR(SlowPeriod) needed for "Strong" (0.1-10) |
| MinSeparationPct | 0.3 | Percent mode: gap in % of the Slow MA needed for "Strong" (0-5) |
| ChopLookbackBars | 50 | Recent bars checked for crosses; 2 or more crosses = whipsaw warning (10-300) |
| UseHigherTF | true | Show whether the higher timeframe is in the same regime |
| HigherTFMode | Auto (D1 up to H4 charts, W1 on D1, off from W1) | Auto picks the higher timeframe; Manual uses HigherTFManual |
| HigherTFManual | D1 | Higher timeframe used when HigherTFMode = Manual |
| RequireHTFConfirm | false | Alert a Death Cross only when the higher timeframe is also bearish |
| ShowMALines | true | Draw the Fast and Slow MA lines |
| ShowRegimeShading | true | Shade each bearish / bullish regime from cross to cross |
| ShowDashboard | true | Show the on-chart status panel |
| PanelScale | 1 | Panel size multiplier (DPI is applied automatically) |
| Theme | Dark | Chart color theme |
| RestoreTheme | true | Restore the original chart colors when removed |
| AlertPopup | true | Popup alert on a new Death Cross |
| AlertPush | false | Push notification on a new Death Cross |
| AlertSound | false | Play a sound on a new Death Cross |
| AlertSoundFile | alert.wav | Sound file played on alert |
| AlertWhipsaw | false | Also alert when the whipsaw warning switches on |
How to read it
Install: copy the file into your MT5 MQL5/Indicators folder, refresh the Navigator and drag Death Cross onto a chart.
When the Death Cross arrow fires
The arrow fires only when two closed bars agree. On the previous closed bar, the fast MA was at or above the slow MA. On the latest closed bar, the fast MA is below it. The Golden Cross arrow uses the same rule in reverse.
Common misread: you watch the lines cross in the middle of a bar and no arrow appears. That is expected. If the bar closes with the lines crossed back, there was never a signal. Wait for the close and judge the arrow, not the live lines.
The chart below shows the typical shape: an uptrend loses steam, price rolls over, and the arrow prints on the closed bar where the bearish shading begins.
In the illustration, price had already fallen from the top before the arrow printed.
How to read the Regime panel
The panel shows the following, from top to bottom:
- Main card. It shows the current regime (Death Cross, Bearish or Bullish), how many bars have passed since the last cross, and a 1-5 bar that fills as more checks pass.
- Last Death Cross. It shows how many bars ago the last Death Cross printed and whether that Death Cross is still active or has ended.
- Checks row. It lists which checks passed: Gap, Widening, Clean and HTF. A Death Cross that passes more checks deserves more trust than one that passes only one.
- MA values and separation. The panel shows both MA values and the gap between them, measured in ATR by default or in %. A label reads Strong, Weak or Early.
- Whipsaw flag. It switches on when the lines have crossed 2 or more times in the last
ChopLookbackBarsbars. - Higher-timeframe confirmation. It shows whether the higher timeframe is in the same regime.
- History row ("Lower +50"). It counts how many past Death Crosses on this chart closed lower
FastPeriodbars later, split by whether the whipsaw flag was on at the cross. This is your own quick back-check for the symbol and timeframe you are looking at.
The regime shading is never removed while the indicator runs. On a long history it builds up into colour bands. Set ShowRegimeShading to false if you only want the arrows.
Inputs to change first
FastPeriod(50, range 5-100) andSlowPeriod(200, range 50-400). These set the classic 50/200 pair. Shorter periods give more crosses and more noise.FastPeriodalso sets how far ahead the history row looks.MAMethod(SMA) andAppliedPrice(Close). These apply to both lines. SMA is the classic Death Cross definition.SeparationMode(ATR). ATR mode divides the gap by the ATR ofSlowPeriod, so the Strong label means the same on every symbol and timeframe.StrongSeparationATR(1, range 0.1-10) sets the Strong threshold in ATR mode.MinSeparationPct(0.3, range 0-5) sets it in percent mode.ChopLookbackBars(50, range 10-300). This sets how many recent bars the whipsaw check scans.UseHigherTF(on) andHigherTFMode(Auto). Auto compares against D1 on charts up to H4 and against W1 on D1. The check is off from W1 up. SetHigherTFModeto Manual and chooseHigherTFManualif you want a different higher timeframe.- Display inputs.
ShowMALines,ShowDashboardandPanelScale(1) control what is visible and how big the panel is.
Alerts and where they appear
AlertPopupis on by default and opens the MT5 alert window.AlertPushis off by default and sends a notification to the MetaTrader app on your phone. Turn it on if you want phone alerts. It also needs push notifications set up in your terminal.AlertSoundis off by default and plays the file named inAlertSoundFile(alert.wav).AlertWhipsawis off by default and also alerts when the whipsaw warning switches on.RequireHTFConfirm(off by default) alerts a Death Cross only when the higher timeframe is also bearish.
A decision rule for each arrow
- Death Cross (the Lab's suggestion, not tested): act on it only if the whipsaw flag is off, the higher timeframe is bearish, and the separation label is not Weak. The Lab did not measure results with these filters; the 58.8% is for every Death Cross arrow. The higher-timeframe part needs
UseHigherTFon, and in Auto mode it does nothing on W1 and higher charts. If the flag is on, treat the arrow as information and wait. If price is already far below both lines when the arrow prints, the easy part of the move may be over. - Golden Cross: use it as the end of the bearish case. Close or stop adding to bearish positions. Do not treat it automatically as a new buy.
Installation
- 1Download DeathCrossIndicator.ex5 from the button above (Google Drive).
- 2In MetaTrader 5: File → Open Data Folder → MQL5 → Indicators. Copy DeathCrossIndicator.ex5 there.
- 3Restart MT5 or right-click Indicators in Navigator → Refresh.
- 4Drag Death Cross onto a chart. For push alerts, enable "Allow push notifications" under Tools → Options → Notifications.
- Tested on MT5 build 6230.
Key terms and guides
- Death cross
- A death cross is when a shorter moving average crosses below a longer one on a price chart, most often the 50-period below the 200-period. It confirms that momentum has already turned down.
- Choppiness index
- The Choppiness Index (CHOP) is a 0–100 indicator that tells you whether a market is trending or moving sideways. High readings mean choppy, range-bound price. Low readings mean a directional move, but the indicator never says which direction.
- Moving average
- A moving average is a line drawn from the average closing price of a set number of recent candles, recalculated on every new candle. It smooths out price noise and shows which way the trend is pointing.
- Golden cross
- A golden cross is when the 50-period simple moving average crosses above the 200-period one and a candle closes with it still above. The classic version is read on the daily chart. Traders take it as a sign that a downtrend may be turning into an uptrend.
- Price Swing
- A price swing is one move in a single direction, from a turning low to a turning high or the reverse. You measure it in pips from one swing point to the next.
More on this subject: Trend & moving averages guide, terms and tools
User reviews
No reviews yet. Members who download the tool can review it here.
Sign in and download the tool to review it.
Build a checklist with it
Death Cross does one job on the chart: entry signal. Put it on the same chart as the tools below and the IndicatorFree panels merge into one checklist card, ordered trend, zone, signal, risk.
- Trend / contextBreak of StructureDeath Cross tells you when; this tells you which way the market leans, so you can skip signals against it.
- Zone / levelBollinger BandsShows the zones and levels, so you can see whether a signal from Death Cross fires at a level worth trading.
The Lab has not tested these combinations. Each tool is tested on its own; the card only lines up what each one says. Free members get 2 new tools a day. If one has to wait until tomorrow, install BlackBox to raise the limit to 5 a day (20 on a live account).
FAQ
Does Death Cross repaint?
No repaint detected. In a 9 Jul 2026 – 8 Oct 2026 test on EURUSD M15 (Raw Trading Ltd real ticks), 36 signals were logged at bar close and re-read at the end of the test: 0 changed. Arrows print on the bar that closes the signal, with no delay.
Can I use Death Cross in an EA?
Yes. Read buffer 2 (Death Cross) with iCustom() on bar 1 — the last closed bar.
Why can’t my EA read the zones?
Zones and the panel are chart objects, not indicator buffers, so iCustom() does not return them.
How do I get alerts on my phone?
Enter your MetaQuotes ID under Tools → Options → Notifications, tick "Enable push notifications", and keep the push alert input on.
Does it work on other pairs?
Tested on EURUSD only; other symbols not tested.
Can I use EMA instead of SMA for the Death Cross?
Yes. Set `MAMethod` to exponential, and both lines will use it. Expect earlier, more frequent crosses than the classic SMA version (not tested by the Lab), and note that the Lab's numbers were measured with the default SMA.
Do I get an alert on the Golden Cross too?
No. Popup, push and sound alerts fire only on a new Death Cross, plus the whipsaw warning if you turn on `AlertWhipsaw`. The Golden Cross arrow is drawn on the chart but does not trigger an alert.
Which timeframe should I use it on?
The classic 50/200 cross is usually watched on daily charts. The Lab only tested EURUSD M15, so results on other timeframes are untested. On charts up to H4, Auto mode checks D1 as the higher timeframe, and on D1 it checks W1.
Does the Strong label work on gold or JPY pairs?
Yes. With the default ATR `SeparationMode`, the gap is measured in ATR of `SlowPeriod`, so the Strong threshold means the same on gold, EURUSD, GBPJPY and any timeframe. Percent mode does not adjust for each market's volatility in the same way.
Why does my chart look different after loading it?
The `Theme` input (Dark by default) recolours the chart. Keep `RestoreTheme` on to get your original colours back when you remove the indicator.
Changelog
- 1.03New history row "Lower +50" on the panel: for every past Death Cross in the loaded history it counts how many times the close FastPeriod bars later (50 by default) was lower than the close of the cross bar, e.g. · 2026-10-09
- 1.02MA separation is now measured in ATR (gap between the MAs divided by ATR of SlowPeriod) by default, so the "Strong" label means the same thing on gold, EURUSD, GBPJPY and on every timeframe. · 2026-10-09
- 1.01Panel main card now always describes the current regime ("Death Cross", "Bearish regime" or "Bullish regime") with bars since the last cross, instead of showing an expired Death Cross with an empty 0/5 bar. · 2026-10-09
- 1.00Initial release: classic 50/200 Death Cross indicator (Fast MA default SMA 50, Slow MA default SMA 200) with a closed-bar, no-repaint Death Cross arrow and a secondary Golden Cross arrow that closes the regime. · 2026-10-09
Final verdict
A clean, non-repainting regime signal with a small edge
The Lab's strongest finding is the reliability of the signal itself. Arrows stay where they print, and the closed-bar rule means an arrow never vanishes or moves after it prints. The lines can still cross back later, which is what the whipsaw flag warns about. The Death Cross arrow's 58.8% result is only modestly better than chance. The real value is the context around the arrow: the whipsaw flag, the higher-timeframe check, the ATR-based Strong label and the history row. Together they help you separate a clean cross from noise.
Limits you should know
- It lags. A 50/200 cross confirms a turn after price has already moved. It cannot catch tops.
- It has no exits. It does not give you stops or targets. You have to decide your risk yourself.
- The test is narrow. The Lab tested only EURUSD M15 over one three-month period. Results on other symbols and timeframes are untested.
The comparison below sums up when the tool helps and when to leave it off.
- –You trade with the trend and want an objective bearish-turn rule
- –The whipsaw flag is off at the cross
- –The higher timeframe shows the same bearish regime
- –The history row shows past Death Crosses on this chart often closed lower
- –The lines keep crossing back and forth (whipsaw flag on)
- –Price is already far below both MAs when the arrow prints
- –You want the indicator to give entries, stops and targets for you
Settings to start with
Start with the defaults. They are the classic SMA 50/200 setup the Lab tested. Then make two changes, both untested by the Lab, so compare each with the default:
- Turn on
RequireHTFConfirmso you are only alerted to Death Crosses that the higher timeframe agrees with. - On M15 or lower, try
ChopLookbackBars100 so the whipsaw check covers a longer stretch of recent chop.
Before you trust either change, look at the history row on your own symbol.
As an idea to try, add Downtrend: its swing structure labels can show whether price structure has actually turned bearish when the Death Cross prints. The Lab has not tested the pair.



















