QA GATE · GOOD 18/18 automated ai-check.js · 18 readability, YMYL and image gates · mechanics verified against vike-indicators · live real-data chart embedded
Burstiness (sentence-length SD)10.9
Lexical diversity (MATTR-50)0.80
Consecutive similar sentences2
Repeated paragraph starts (≥3)0
AI-marker phrases0
Demonstrated experience3
Avg sentence length (words)18.6
Repeated 5-grams0
H2 section balance (50–500w)0 off
YMYL risk disclaimeryes
Mechanics verified vs codeyes
Primary keyword coverageyes
Internal links + CTA4
Content visuals11
Every figure has a caption11/11
Alt / caption text coverage100%
Distributed (≥1 per section)6/7 (86%)
Filenames sluggedn/a (inline)
Live interactive chart7 real
Learn · Trading Indicators · Trend

Golden Cross: The Rule, and What It Actually Returned

A golden cross happens when a 50-bar mean of the closing price rises through the 200-bar mean of the same series. That is the whole event. It is a statement about two summaries of history changing places, made entirely out of bars that already closed, and it is the single most quoted signal in technical analysis.

This page states the rule in full, names the exact code in our trading indicators engine that produces the averages, and then measures 231 real crossings on 30 assets against the one number almost nobody publishes alongside a win rate: the base rate.

What a golden cross actually is

golden crossthe actual lowmedian +71.3%SMA 50SMA 200one price series, two window lengths
The shorter average turns first because it drops old bars sooner. By the time the two swap places, price in this sample had already climbed a median 71.3% off its ninety-bar low.
NEAR/USDT daily — a real moving-average cross detected 2026-05-26, the 50 crossed above the 200 -> +20.9% in 8 days.

Two averages of one price series can only swap places when the recent stretch has outrun the older stretch by enough to move the shorter window past the longer one.

Fifty bars is roughly two and a half months of daily data; two hundred bars is most of a year. When the shorter average climbs through the longer one, the market is saying that the last ten weeks now sit, on average, above the last forty. That is a real fact about the tape and a useful description of regime.

It is also, unavoidably, a description written in arrears. Neither average can move until the bars feeding it have closed, and the longer one is deliberately sluggish.

There is no golden cross detector, and that matters

what the crate shipswhat it does notbatch_smamath::smawindow recomputed as a plain meanbatch_gmma · batch_alligatorstacks of averages, still no eventbatch_golden_crossno such function existsthe crossing rule on this pageis stated here, not imported
The averages come from the engine and the rule does not. Naming a detector that has never been written would cost more credibility than it could possibly buy.
TRX/USDT daily — a real moving-average cross detected 2026-04-07, the 50 crossed above the 200 -> +15.8% in 44 days.

Our engine ships no batch_golden_cross. Nothing in the crate detects this pattern, and inventing a function name to make a page look authoritative would defeat the point of the page.

What the crate does ship is the average itself. batch_sma sits in the base indicator set and calls one shared kernel, math::sma, which recomputes each window as a plain mean of the closes inside it rather than carrying a running sum forward. Several relatives live alongside it — batch_gmma stacks twelve averages, batch_alligator stacks three — but none of them emits a cross event.

So the arithmetic below is the engine's and the rule is mine. Here it is, with nothing left implicit: a golden cross is any bar where the 50-period average was at or below the 200-period average on the previous bar and is strictly above it on this one. A death cross is the mirror. Both averages must exist, which means nothing at all is emitted before bar 199.

One honest caveat about the port. The other numeric indicators broken down here — the MACD, the Stochastic Momentum Index, the Relative Vigor Index — each report a bit-for-bit match against the Python implementation the crate was ported from. This one cannot, and the reason is deliberate: the crate recomputes each window while the Python original carries a sliding sum, so their last bits differ by design. Measured over 154,120 values at both lengths, the largest absolute gap was 1.455e-10 — 6.94e-14 in relative terms — and 95.00% of values differed somewhere in the final bits. Cross decisions changed by that difference: 0 of 473. The recomputed form is the correct one, because it makes a window's value depend only on that window.

The 50 and the 200, and what the lag costs

ZEC/USDT daily — a real moving-average cross detected 2026-05-16, the 50 crossed above the 200 -> +34.9% in 4 days.

Averages this long do not turn quickly, and the cost of that shows up as distance travelled before the signal ever prints.

I've measured that distance rather than assuming it. Across the 231 golden crosses in this sample, price at the crossing bar was already a median 71.3% above its own lowest low of the previous ninety bars. The middle half of the sample ran from 50.2% to 122.2%. Whatever the bottom was, it was a long way behind by the time the averages agreed.

That is not a flaw in the calculation — it is the calculation. A two-hundred-bar mean cannot report a turn that two hundred bars have not yet absorbed. Anyone selling a golden cross as an entry is selling the tail of a move that a slower instrument has only now finished measuring.

What the golden cross actually returned

break-even 50%49.8%golden cross231 signals51.1%base rateany bar, long46.5%death cross238 signals48.7%base rateany bar, short−1.3 pts−2.3 ptssame ±15% bracket, same 60-bar horizon, same 74,810 bars
The comparison that decides it. Both crossings resolved below what entering on an arbitrary bar returned over the same sample, which is the measurement a win rate on its own can never show.
BNB/USDT daily — a real moving-average cross detected 2025-12-29, the 50 crossed below the 200 -> -19.4% in 37 days.
LTC/USDT daily — a real moving-average cross detected 2025-11-12, the 50 crossed below the 200 -> -18.0% in 9 days.

Here is the measurement, and it is not the one the phrase's reputation would lead you to expect.

I scanned thirty liquid Binance pairs from their first daily candle to now — 74,810 bars on which both averages existed — and found 231 golden crosses and 238 death crosses, one roughly every 160 bars. Each was scored first-touch over the next sixty bars using a symmetric 15% bracket, so break-even sits at exactly 50% before fees and the hit rate reads directly. A bar tagging both levels was scored a loss.

Golden crosses resolved 113 wins against 114 losses, which is 49.8% — under break-even before a single fee is paid. Death crosses, scored short, came back 105 to 121, or 46.5%.

Now the number that decides the matter. Applying that identical bracket to every eligible bar in the same sample — no signal, no condition, just entering — returns 51.1% long and 48.7% short. Both crosses therefore came in below the base rate of doing nothing in particular: 1.3 points worse on the long side and 2.3 points worse on the short. The signal did not merely fail to add edge. It subtracted a little.

Where the golden cross fails

ALGO/USDT daily — a real moving-average cross detected 2026-05-30, the 50 crossed above the 200 -> gave up 15.6% first (the cross reports the past, not the next move).
ETH/USDT daily — a real moving-average cross detected 2025-11-30, the 50 crossed below the 200 -> rose 15.3% instead (a slow signal missing a fast turn).
Two real losses, one of each kind. ALGO crossed up after a 56.8% run and gave back 15.6% before it gained anything — late, not wrong. ETH crossed down and rose 15.3% instead, which is the slower failure: a two-hundred-bar mean reporting a turn the tape had already stopped making.

Both failures shown here are real crossings this rule produced, and they fail in the two distinct ways it fails.

Late arrival is the first. A cross that prints after price has already doubled off its low is not wrong about the trend; it is simply reporting something the chart said months earlier, and the remaining move has to be large for the bracket to resolve favorably.

Reversal is the second, and it is rarer than the reputation suggests: only 37 of 439 consecutive cross pairs, or 8.4%, were undone by the opposite cross within thirty bars. Whipsaw is a genuine problem with fast averages and a modest one here. The real damage is the first failure, not the second.

When I see this signal quoted now, the question I ask is what it is being compared against. A 50% hit rate sounds like a coin flip and a 60% one sounds like an edge, and neither means anything until somebody tells you what an unconditional entry did over the same bars. Confirmation from a faster instrument helps more than tuning the lengths: a candlestick reversal carries no smoothing at all, so the two disagree usefully rather than redundantly.

Golden cross and death cross

golden crossdeath cross50 was at or below, now above50 was at or above, now belowsame two averages, same 200-bar warm-up, inequality flipped
One comparison, read in both directions. Treating them as two different instruments is how a single arithmetic fact ends up with two reputations.

The two are one rule with the inequality reversed, so everything true of the first is true of the second in mirror image.

That symmetry is worth holding onto, because the pair get discussed as though they were different instruments — one a buy signal, the other an omen. Both are the same two averages changing places. Both need the full 200-bar warm-up. Both report a change that the bars have already finished making.

One asymmetry is real, and it belongs to the market rather than the rule: crypto's unconditional drift over this sample was positive, which is why the long base rate sits above 50% while the short one sits below it. Any comparison that ignores the drift will flatter every long signal and unfairly punish every short one.

Frequently asked questions

Is the golden cross reliable? Not on the evidence here. Across 231 real crossings it resolved 49.8% on a symmetric bracket against a 51.1% base rate, so it underperformed an unconditional entry over the same bars.

Why 50 and 200? Convention, and nothing deeper. The numbers are inherited from an era of hand-plotted daily charts; nothing in the arithmetic distinguishes them from 45 and 190, and testing many pairs on one dataset is the fastest way to fool yourself.

Does the golden cross work on shorter timeframes? The same rule runs on any bar size, but the lag scales with it, and shorter bars produce more crossings without producing more information. The measurement above is daily.

What is the difference between a golden cross and a death cross? Direction only. One has the 50 rising through the 200, the other has it falling through, and both come from the same pair of averages.

Should I use it at all? As a regime label rather than a trigger, it is defensible — it says the last ten weeks outrank the last forty, which is a fine thing to know. As an entry it did not clear its own base rate here, and the MACD page shows a faster pair of averages failing in a related way.

This is educational material, not financial advice. Every figure here was measured on past bars, past behavior generalizes poorly to future bars, and trading carries real risk of loss — size any position so that being wrong stays survivable.

Read the MACD breakdown